Compare commits
32
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74e3dba98f | ||
|
|
2ebff5f4d7 | ||
|
|
b8e7179a85 | ||
|
|
b1a7155431 | ||
|
|
a303d9ca1b | ||
|
|
579714b62f | ||
|
|
885ab8b444 | ||
|
|
268543a08e | ||
|
|
c854d28d60 | ||
|
|
223943550c | ||
|
|
1c7bda8448 | ||
|
|
391f6c0dab | ||
|
|
81f10c586f | ||
|
|
9438b9869c | ||
|
|
f688db30a9 | ||
|
|
16033e9f99 | ||
|
|
2c73d47555 | ||
|
|
6d5580c6fd | ||
|
|
691c86a4a7 | ||
|
|
1af7ac5fc4 | ||
|
|
72ac10fb7a | ||
|
|
986256f56d | ||
|
|
ade6ed9c32 | ||
|
|
19c710b87f | ||
|
|
7991ce7823 | ||
|
|
fd7387928c | ||
|
|
3733a5a763 | ||
|
|
0b2f4cdb57 | ||
|
|
1622c87b7a | ||
|
|
d225d132f9 | ||
|
|
020000b3c5 | ||
|
|
0a94f93f0c |
+6
-6
@@ -82,11 +82,11 @@
|
||||
"@sentry/types": "^8",
|
||||
"@storybook-community/storybook-addon-cookie": "^5.0.0",
|
||||
"@storybook/addon-coverage": "^3.0.0",
|
||||
"@storybook/addon-docs": "^10.2.13",
|
||||
"@storybook/addon-links": "^10.2.13",
|
||||
"@storybook/addon-vitest": "^10.2.13",
|
||||
"@storybook/addon-docs": "^10.3.3",
|
||||
"@storybook/addon-links": "^10.3.3",
|
||||
"@storybook/addon-vitest": "^10.3.3",
|
||||
"@storybook/icons": "^2.0.1",
|
||||
"@storybook/react-vite": "^10.2.13",
|
||||
"@storybook/react-vite": "^10.3.3",
|
||||
"@storybook/test-runner": "^0.24.2",
|
||||
"@swc-node/register": "^1.11.1",
|
||||
"@swc/cli": "^0.7.10",
|
||||
@@ -154,9 +154,9 @@
|
||||
"raw-loader": "^4.0.2",
|
||||
"rimraf": "^5.0.5",
|
||||
"source-map-support": "^0.5.20",
|
||||
"storybook": "^10.2.13",
|
||||
"storybook": "^10.3.3",
|
||||
"storybook-addon-mock-date": "2.0.0",
|
||||
"storybook-addon-pseudo-states": "^10.2.13",
|
||||
"storybook-addon-pseudo-states": "^10.3.3",
|
||||
"supertest": "^6.1.3",
|
||||
"ts-jest": "^29.1.1",
|
||||
"ts-loader": "^9.2.3",
|
||||
|
||||
@@ -1732,11 +1732,16 @@ enum FeatureFlagKey {
|
||||
IS_DIRECT_GRAPHQL_EXECUTION_ENABLED
|
||||
IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED
|
||||
IS_CONNECTED_ACCOUNT_MIGRATED
|
||||
IS_GRAPHQL_QUERY_TIMING_ENABLED
|
||||
IS_RECORD_TABLE_WIDGET_ENABLED
|
||||
IS_DATASOURCE_MIGRATED
|
||||
}
|
||||
|
||||
type ClientConfigMaintenanceMode {
|
||||
startAt: DateTime!
|
||||
endAt: DateTime!
|
||||
link: String
|
||||
}
|
||||
|
||||
type ClientConfig {
|
||||
appVersion: String
|
||||
authProviders: AuthProviders!
|
||||
@@ -1765,6 +1770,8 @@ type ClientConfig {
|
||||
calendarBookingPageId: String
|
||||
isCloudflareIntegrationEnabled: Boolean!
|
||||
isClickHouseConfigured: Boolean!
|
||||
isWorkspaceSchemaDDLLocked: Boolean!
|
||||
maintenance: ClientConfigMaintenanceMode
|
||||
}
|
||||
|
||||
type UsageBreakdownItem {
|
||||
@@ -1961,6 +1968,12 @@ type AdminPanelHealthServiceData {
|
||||
queues: [AdminPanelWorkerQueueHealth!]
|
||||
}
|
||||
|
||||
type MaintenanceMode {
|
||||
startAt: DateTime!
|
||||
endAt: DateTime!
|
||||
link: String
|
||||
}
|
||||
|
||||
type ModelsDevModelSuggestion {
|
||||
modelId: String!
|
||||
name: String!
|
||||
@@ -2267,6 +2280,33 @@ type FieldConnection {
|
||||
edges: [FieldEdge!]!
|
||||
}
|
||||
|
||||
type AuthToken {
|
||||
token: String!
|
||||
expiresAt: DateTime!
|
||||
}
|
||||
|
||||
type ApplicationTokenPair {
|
||||
applicationAccessToken: AuthToken!
|
||||
applicationRefreshToken: AuthToken!
|
||||
}
|
||||
|
||||
type FrontComponent {
|
||||
id: UUID!
|
||||
name: String!
|
||||
description: String
|
||||
sourceComponentPath: String!
|
||||
builtComponentPath: String!
|
||||
componentName: String!
|
||||
builtComponentChecksum: String!
|
||||
universalIdentifier: UUID
|
||||
applicationId: UUID!
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
isHeadless: Boolean!
|
||||
usesSdkClient: Boolean!
|
||||
applicationTokenPair: ApplicationTokenPair
|
||||
}
|
||||
|
||||
type LogicFunctionLogs {
|
||||
"""Execution Logs"""
|
||||
logs: String!
|
||||
@@ -2289,11 +2329,6 @@ type AuthorizeApp {
|
||||
redirectUrl: String!
|
||||
}
|
||||
|
||||
type AuthToken {
|
||||
token: String!
|
||||
expiresAt: DateTime!
|
||||
}
|
||||
|
||||
type AuthTokenPair {
|
||||
accessOrWorkspaceAgnosticToken: AuthToken!
|
||||
refreshToken: AuthToken!
|
||||
@@ -2402,11 +2437,6 @@ type WorkspaceMigration {
|
||||
actions: JSON!
|
||||
}
|
||||
|
||||
type ApplicationTokenPair {
|
||||
applicationAccessToken: AuthToken!
|
||||
applicationRefreshToken: AuthToken!
|
||||
}
|
||||
|
||||
type File {
|
||||
id: UUID!
|
||||
path: String!
|
||||
@@ -2526,23 +2556,6 @@ type PostgresCredentials {
|
||||
workspaceId: UUID!
|
||||
}
|
||||
|
||||
type FrontComponent {
|
||||
id: UUID!
|
||||
name: String!
|
||||
description: String
|
||||
sourceComponentPath: String!
|
||||
builtComponentPath: String!
|
||||
componentName: String!
|
||||
builtComponentChecksum: String!
|
||||
universalIdentifier: UUID
|
||||
applicationId: UUID!
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
isHeadless: Boolean!
|
||||
usesSdkClient: Boolean!
|
||||
applicationTokenPair: ApplicationTokenPair
|
||||
}
|
||||
|
||||
type CommandMenuItem {
|
||||
id: UUID!
|
||||
workflowVersionId: UUID
|
||||
@@ -2567,20 +2580,15 @@ enum EngineComponentKey {
|
||||
NAVIGATE_TO_NEXT_RECORD
|
||||
NAVIGATE_TO_PREVIOUS_RECORD
|
||||
CREATE_NEW_RECORD
|
||||
DELETE_SINGLE_RECORD
|
||||
DELETE_MULTIPLE_RECORDS
|
||||
RESTORE_SINGLE_RECORD
|
||||
RESTORE_MULTIPLE_RECORDS
|
||||
DESTROY_SINGLE_RECORD
|
||||
DESTROY_MULTIPLE_RECORDS
|
||||
DELETE_RECORDS
|
||||
RESTORE_RECORDS
|
||||
DESTROY_RECORDS
|
||||
ADD_TO_FAVORITES
|
||||
REMOVE_FROM_FAVORITES
|
||||
EXPORT_NOTE_TO_PDF
|
||||
EXPORT_FROM_RECORD_INDEX
|
||||
EXPORT_FROM_RECORD_SHOW
|
||||
EXPORT_RECORDS
|
||||
UPDATE_MULTIPLE_RECORDS
|
||||
MERGE_MULTIPLE_RECORDS
|
||||
EXPORT_MULTIPLE_RECORDS
|
||||
IMPORT_RECORDS
|
||||
EXPORT_VIEW
|
||||
SEE_DELETED_RECORDS
|
||||
@@ -2623,6 +2631,15 @@ enum EngineComponentKey {
|
||||
VIEW_PREVIOUS_AI_CHATS
|
||||
TRIGGER_WORKFLOW_VERSION
|
||||
FRONT_COMPONENT_RENDERER
|
||||
DELETE_SINGLE_RECORD
|
||||
DELETE_MULTIPLE_RECORDS
|
||||
RESTORE_SINGLE_RECORD
|
||||
RESTORE_MULTIPLE_RECORDS
|
||||
DESTROY_SINGLE_RECORD
|
||||
DESTROY_MULTIPLE_RECORDS
|
||||
EXPORT_FROM_RECORD_INDEX
|
||||
EXPORT_FROM_RECORD_SHOW
|
||||
EXPORT_MULTIPLE_RECORDS
|
||||
}
|
||||
|
||||
enum CommandMenuItemAvailabilityType {
|
||||
@@ -2787,10 +2804,12 @@ type AgentChatThread {
|
||||
type AgentMessage {
|
||||
id: UUID!
|
||||
threadId: UUID!
|
||||
turnId: UUID!
|
||||
turnId: UUID
|
||||
agentId: UUID
|
||||
role: String!
|
||||
status: String!
|
||||
parts: [AgentMessagePart!]!
|
||||
processedAt: DateTime
|
||||
createdAt: DateTime!
|
||||
}
|
||||
|
||||
@@ -2805,6 +2824,22 @@ type AISystemPromptPreview {
|
||||
estimatedTokenCount: Int!
|
||||
}
|
||||
|
||||
type ChatStreamCatchupChunks {
|
||||
chunks: [JSON!]!
|
||||
maxSeq: Int!
|
||||
}
|
||||
|
||||
type SendChatMessageResult {
|
||||
messageId: String!
|
||||
queued: Boolean!
|
||||
streamId: String
|
||||
}
|
||||
|
||||
type AgentChatEvent {
|
||||
threadId: String!
|
||||
event: JSON!
|
||||
}
|
||||
|
||||
type AgentChatThreadEdge {
|
||||
"""The node containing the AgentChatThread"""
|
||||
node: AgentChatThread!
|
||||
@@ -3152,6 +3187,7 @@ type Query {
|
||||
minimalMetadata: MinimalMetadata!
|
||||
chatThread(id: UUID!): AgentChatThread!
|
||||
chatMessages(threadId: UUID!): [AgentMessage!]!
|
||||
chatStreamCatchupChunks(threadId: UUID!): ChatStreamCatchupChunks!
|
||||
getAISystemPromptPreview: AISystemPromptPreview!
|
||||
skills: [Skill!]!
|
||||
skill(id: UUID!): Skill
|
||||
@@ -3202,6 +3238,7 @@ type Query {
|
||||
getModelsDevProviders: [ModelsDevProviderSuggestion!]!
|
||||
getModelsDevSuggestions(providerType: String!): [ModelsDevModelSuggestion!]!
|
||||
getAdminAiUsageByWorkspace(periodStart: DateTime, periodEnd: DateTime): [UsageBreakdownItem!]!
|
||||
getMaintenanceMode: MaintenanceMode
|
||||
getUsageAnalytics(input: UsageAnalyticsInput): UsageAnalytics!
|
||||
getPostgresCredentials: PostgresCredentials
|
||||
findManyPublicDomains: [PublicDomain!]!
|
||||
@@ -3452,6 +3489,9 @@ type Mutation {
|
||||
updateWebhook(input: UpdateWebhookInput!): Webhook!
|
||||
deleteWebhook(id: UUID!): Webhook!
|
||||
createChatThread: AgentChatThread!
|
||||
sendChatMessage(threadId: UUID!, text: String!, messageId: UUID!, browsingContext: JSON, modelId: String): SendChatMessageResult!
|
||||
stopAgentChatStream(threadId: UUID!): Boolean!
|
||||
deleteQueuedChatMessage(messageId: UUID!): Boolean!
|
||||
createSkill(input: CreateSkillInput!): Skill!
|
||||
updateSkill(input: UpdateSkillInput!): Skill!
|
||||
deleteSkill(id: UUID!): Skill!
|
||||
@@ -3519,6 +3559,8 @@ type Mutation {
|
||||
removeAiProvider(providerName: String!): Boolean!
|
||||
addModelToProvider(providerName: String!, modelConfig: JSON!): Boolean!
|
||||
removeModelFromProvider(providerName: String!, modelName: String!): Boolean!
|
||||
setMaintenanceMode(startAt: DateTime!, endAt: DateTime!, link: String): Boolean!
|
||||
clearMaintenanceMode: Boolean!
|
||||
enablePostgresProxy: PostgresCredentials!
|
||||
disablePostgresProxy: PostgresCredentials!
|
||||
createPublicDomain(domain: String!): PublicDomain!
|
||||
@@ -4541,6 +4583,7 @@ enum FileFolder {
|
||||
type Subscription {
|
||||
onEventSubscription(eventStreamId: String!): EventSubscription
|
||||
logicFunctionLogs(input: LogicFunctionLogsInput!): LogicFunctionLogs!
|
||||
onAgentChatEvent(threadId: UUID!): AgentChatEvent!
|
||||
}
|
||||
|
||||
input LogicFunctionLogsInput {
|
||||
|
||||
@@ -1422,7 +1422,14 @@ export interface PublicFeatureFlag {
|
||||
__typename: 'PublicFeatureFlag'
|
||||
}
|
||||
|
||||
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_AI_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_MARKETPLACE_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_DRAFT_EMAIL_ENABLED' | 'IS_USAGE_ANALYTICS_ENABLED' | 'IS_RICH_TEXT_V1_MIGRATED' | 'IS_DIRECT_GRAPHQL_EXECUTION_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED' | 'IS_CONNECTED_ACCOUNT_MIGRATED' | 'IS_GRAPHQL_QUERY_TIMING_ENABLED' | 'IS_RECORD_TABLE_WIDGET_ENABLED' | 'IS_DATASOURCE_MIGRATED'
|
||||
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_AI_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_MARKETPLACE_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_DRAFT_EMAIL_ENABLED' | 'IS_USAGE_ANALYTICS_ENABLED' | 'IS_RICH_TEXT_V1_MIGRATED' | 'IS_DIRECT_GRAPHQL_EXECUTION_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED' | 'IS_CONNECTED_ACCOUNT_MIGRATED' | 'IS_RECORD_TABLE_WIDGET_ENABLED' | 'IS_DATASOURCE_MIGRATED'
|
||||
|
||||
export interface ClientConfigMaintenanceMode {
|
||||
startAt: Scalars['DateTime']
|
||||
endAt: Scalars['DateTime']
|
||||
link?: Scalars['String']
|
||||
__typename: 'ClientConfigMaintenanceMode'
|
||||
}
|
||||
|
||||
export interface ClientConfig {
|
||||
appVersion?: Scalars['String']
|
||||
@@ -1452,6 +1459,8 @@ export interface ClientConfig {
|
||||
calendarBookingPageId?: Scalars['String']
|
||||
isCloudflareIntegrationEnabled: Scalars['Boolean']
|
||||
isClickHouseConfigured: Scalars['Boolean']
|
||||
isWorkspaceSchemaDDLLocked: Scalars['Boolean']
|
||||
maintenance?: ClientConfigMaintenanceMode
|
||||
__typename: 'ClientConfig'
|
||||
}
|
||||
|
||||
@@ -1621,6 +1630,13 @@ export interface AdminPanelHealthServiceData {
|
||||
__typename: 'AdminPanelHealthServiceData'
|
||||
}
|
||||
|
||||
export interface MaintenanceMode {
|
||||
startAt: Scalars['DateTime']
|
||||
endAt: Scalars['DateTime']
|
||||
link?: Scalars['String']
|
||||
__typename: 'MaintenanceMode'
|
||||
}
|
||||
|
||||
export interface ModelsDevModelSuggestion {
|
||||
modelId: Scalars['String']
|
||||
name: Scalars['String']
|
||||
@@ -1939,6 +1955,36 @@ export interface FieldConnection {
|
||||
__typename: 'FieldConnection'
|
||||
}
|
||||
|
||||
export interface AuthToken {
|
||||
token: Scalars['String']
|
||||
expiresAt: Scalars['DateTime']
|
||||
__typename: 'AuthToken'
|
||||
}
|
||||
|
||||
export interface ApplicationTokenPair {
|
||||
applicationAccessToken: AuthToken
|
||||
applicationRefreshToken: AuthToken
|
||||
__typename: 'ApplicationTokenPair'
|
||||
}
|
||||
|
||||
export interface FrontComponent {
|
||||
id: Scalars['UUID']
|
||||
name: Scalars['String']
|
||||
description?: Scalars['String']
|
||||
sourceComponentPath: Scalars['String']
|
||||
builtComponentPath: Scalars['String']
|
||||
componentName: Scalars['String']
|
||||
builtComponentChecksum: Scalars['String']
|
||||
universalIdentifier?: Scalars['UUID']
|
||||
applicationId: Scalars['UUID']
|
||||
createdAt: Scalars['DateTime']
|
||||
updatedAt: Scalars['DateTime']
|
||||
isHeadless: Scalars['Boolean']
|
||||
usesSdkClient: Scalars['Boolean']
|
||||
applicationTokenPair?: ApplicationTokenPair
|
||||
__typename: 'FrontComponent'
|
||||
}
|
||||
|
||||
export interface LogicFunctionLogs {
|
||||
/** Execution Logs */
|
||||
logs: Scalars['String']
|
||||
@@ -1966,12 +2012,6 @@ export interface AuthorizeApp {
|
||||
__typename: 'AuthorizeApp'
|
||||
}
|
||||
|
||||
export interface AuthToken {
|
||||
token: Scalars['String']
|
||||
expiresAt: Scalars['DateTime']
|
||||
__typename: 'AuthToken'
|
||||
}
|
||||
|
||||
export interface AuthTokenPair {
|
||||
accessOrWorkspaceAgnosticToken: AuthToken
|
||||
refreshToken: AuthToken
|
||||
@@ -2101,12 +2141,6 @@ export interface WorkspaceMigration {
|
||||
__typename: 'WorkspaceMigration'
|
||||
}
|
||||
|
||||
export interface ApplicationTokenPair {
|
||||
applicationAccessToken: AuthToken
|
||||
applicationRefreshToken: AuthToken
|
||||
__typename: 'ApplicationTokenPair'
|
||||
}
|
||||
|
||||
export interface File {
|
||||
id: Scalars['UUID']
|
||||
path: Scalars['String']
|
||||
@@ -2233,24 +2267,6 @@ export interface PostgresCredentials {
|
||||
__typename: 'PostgresCredentials'
|
||||
}
|
||||
|
||||
export interface FrontComponent {
|
||||
id: Scalars['UUID']
|
||||
name: Scalars['String']
|
||||
description?: Scalars['String']
|
||||
sourceComponentPath: Scalars['String']
|
||||
builtComponentPath: Scalars['String']
|
||||
componentName: Scalars['String']
|
||||
builtComponentChecksum: Scalars['String']
|
||||
universalIdentifier?: Scalars['UUID']
|
||||
applicationId: Scalars['UUID']
|
||||
createdAt: Scalars['DateTime']
|
||||
updatedAt: Scalars['DateTime']
|
||||
isHeadless: Scalars['Boolean']
|
||||
usesSdkClient: Scalars['Boolean']
|
||||
applicationTokenPair?: ApplicationTokenPair
|
||||
__typename: 'FrontComponent'
|
||||
}
|
||||
|
||||
export interface CommandMenuItem {
|
||||
id: Scalars['UUID']
|
||||
workflowVersionId?: Scalars['UUID']
|
||||
@@ -2272,7 +2288,7 @@ export interface CommandMenuItem {
|
||||
__typename: 'CommandMenuItem'
|
||||
}
|
||||
|
||||
export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIOUS_RECORD' | 'CREATE_NEW_RECORD' | 'DELETE_SINGLE_RECORD' | 'DELETE_MULTIPLE_RECORDS' | 'RESTORE_SINGLE_RECORD' | 'RESTORE_MULTIPLE_RECORDS' | 'DESTROY_SINGLE_RECORD' | 'DESTROY_MULTIPLE_RECORDS' | 'ADD_TO_FAVORITES' | 'REMOVE_FROM_FAVORITES' | 'EXPORT_NOTE_TO_PDF' | 'EXPORT_FROM_RECORD_INDEX' | 'EXPORT_FROM_RECORD_SHOW' | 'UPDATE_MULTIPLE_RECORDS' | 'MERGE_MULTIPLE_RECORDS' | 'EXPORT_MULTIPLE_RECORDS' | 'IMPORT_RECORDS' | 'EXPORT_VIEW' | 'SEE_DELETED_RECORDS' | 'CREATE_NEW_VIEW' | 'HIDE_DELETED_RECORDS' | 'GO_TO_PEOPLE' | 'GO_TO_COMPANIES' | 'GO_TO_DASHBOARDS' | 'GO_TO_OPPORTUNITIES' | 'GO_TO_SETTINGS' | 'GO_TO_TASKS' | 'GO_TO_NOTES' | 'EDIT_RECORD_PAGE_LAYOUT' | 'EDIT_DASHBOARD_LAYOUT' | 'SAVE_DASHBOARD_LAYOUT' | 'CANCEL_DASHBOARD_LAYOUT' | 'DUPLICATE_DASHBOARD' | 'GO_TO_WORKFLOWS' | 'ACTIVATE_WORKFLOW' | 'DEACTIVATE_WORKFLOW' | 'DISCARD_DRAFT_WORKFLOW' | 'TEST_WORKFLOW' | 'SEE_ACTIVE_VERSION_WORKFLOW' | 'SEE_RUNS_WORKFLOW' | 'SEE_VERSIONS_WORKFLOW' | 'ADD_NODE_WORKFLOW' | 'TIDY_UP_WORKFLOW' | 'DUPLICATE_WORKFLOW' | 'GO_TO_RUNS' | 'SEE_VERSION_WORKFLOW_RUN' | 'SEE_WORKFLOW_WORKFLOW_RUN' | 'STOP_WORKFLOW_RUN' | 'SEE_RUNS_WORKFLOW_VERSION' | 'SEE_WORKFLOW_WORKFLOW_VERSION' | 'USE_AS_DRAFT_WORKFLOW_VERSION' | 'SEE_VERSIONS_WORKFLOW_VERSION' | 'SEARCH_RECORDS' | 'SEARCH_RECORDS_FALLBACK' | 'ASK_AI' | 'VIEW_PREVIOUS_AI_CHATS' | 'TRIGGER_WORKFLOW_VERSION' | 'FRONT_COMPONENT_RENDERER'
|
||||
export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIOUS_RECORD' | 'CREATE_NEW_RECORD' | 'DELETE_RECORDS' | 'RESTORE_RECORDS' | 'DESTROY_RECORDS' | 'ADD_TO_FAVORITES' | 'REMOVE_FROM_FAVORITES' | 'EXPORT_NOTE_TO_PDF' | 'EXPORT_RECORDS' | 'UPDATE_MULTIPLE_RECORDS' | 'MERGE_MULTIPLE_RECORDS' | 'IMPORT_RECORDS' | 'EXPORT_VIEW' | 'SEE_DELETED_RECORDS' | 'CREATE_NEW_VIEW' | 'HIDE_DELETED_RECORDS' | 'GO_TO_PEOPLE' | 'GO_TO_COMPANIES' | 'GO_TO_DASHBOARDS' | 'GO_TO_OPPORTUNITIES' | 'GO_TO_SETTINGS' | 'GO_TO_TASKS' | 'GO_TO_NOTES' | 'EDIT_RECORD_PAGE_LAYOUT' | 'EDIT_DASHBOARD_LAYOUT' | 'SAVE_DASHBOARD_LAYOUT' | 'CANCEL_DASHBOARD_LAYOUT' | 'DUPLICATE_DASHBOARD' | 'GO_TO_WORKFLOWS' | 'ACTIVATE_WORKFLOW' | 'DEACTIVATE_WORKFLOW' | 'DISCARD_DRAFT_WORKFLOW' | 'TEST_WORKFLOW' | 'SEE_ACTIVE_VERSION_WORKFLOW' | 'SEE_RUNS_WORKFLOW' | 'SEE_VERSIONS_WORKFLOW' | 'ADD_NODE_WORKFLOW' | 'TIDY_UP_WORKFLOW' | 'DUPLICATE_WORKFLOW' | 'GO_TO_RUNS' | 'SEE_VERSION_WORKFLOW_RUN' | 'SEE_WORKFLOW_WORKFLOW_RUN' | 'STOP_WORKFLOW_RUN' | 'SEE_RUNS_WORKFLOW_VERSION' | 'SEE_WORKFLOW_WORKFLOW_VERSION' | 'USE_AS_DRAFT_WORKFLOW_VERSION' | 'SEE_VERSIONS_WORKFLOW_VERSION' | 'SEARCH_RECORDS' | 'SEARCH_RECORDS_FALLBACK' | 'ASK_AI' | 'VIEW_PREVIOUS_AI_CHATS' | 'TRIGGER_WORKFLOW_VERSION' | 'FRONT_COMPONENT_RENDERER' | 'DELETE_SINGLE_RECORD' | 'DELETE_MULTIPLE_RECORDS' | 'RESTORE_SINGLE_RECORD' | 'RESTORE_MULTIPLE_RECORDS' | 'DESTROY_SINGLE_RECORD' | 'DESTROY_MULTIPLE_RECORDS' | 'EXPORT_FROM_RECORD_INDEX' | 'EXPORT_FROM_RECORD_SHOW' | 'EXPORT_MULTIPLE_RECORDS'
|
||||
|
||||
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'RECORD_SELECTION' | 'FALLBACK'
|
||||
|
||||
@@ -2448,10 +2464,12 @@ export interface AgentChatThread {
|
||||
export interface AgentMessage {
|
||||
id: Scalars['UUID']
|
||||
threadId: Scalars['UUID']
|
||||
turnId: Scalars['UUID']
|
||||
turnId?: Scalars['UUID']
|
||||
agentId?: Scalars['UUID']
|
||||
role: Scalars['String']
|
||||
status: Scalars['String']
|
||||
parts: AgentMessagePart[]
|
||||
processedAt?: Scalars['DateTime']
|
||||
createdAt: Scalars['DateTime']
|
||||
__typename: 'AgentMessage'
|
||||
}
|
||||
@@ -2469,6 +2487,25 @@ export interface AISystemPromptPreview {
|
||||
__typename: 'AISystemPromptPreview'
|
||||
}
|
||||
|
||||
export interface ChatStreamCatchupChunks {
|
||||
chunks: Scalars['JSON'][]
|
||||
maxSeq: Scalars['Int']
|
||||
__typename: 'ChatStreamCatchupChunks'
|
||||
}
|
||||
|
||||
export interface SendChatMessageResult {
|
||||
messageId: Scalars['String']
|
||||
queued: Scalars['Boolean']
|
||||
streamId?: Scalars['String']
|
||||
__typename: 'SendChatMessageResult'
|
||||
}
|
||||
|
||||
export interface AgentChatEvent {
|
||||
threadId: Scalars['String']
|
||||
event: Scalars['JSON']
|
||||
__typename: 'AgentChatEvent'
|
||||
}
|
||||
|
||||
export interface AgentChatThreadEdge {
|
||||
/** The node containing the AgentChatThread */
|
||||
node: AgentChatThread
|
||||
@@ -2713,6 +2750,7 @@ export interface Query {
|
||||
minimalMetadata: MinimalMetadata
|
||||
chatThread: AgentChatThread
|
||||
chatMessages: AgentMessage[]
|
||||
chatStreamCatchupChunks: ChatStreamCatchupChunks
|
||||
getAISystemPromptPreview: AISystemPromptPreview
|
||||
skills: Skill[]
|
||||
skill?: Skill
|
||||
@@ -2754,6 +2792,7 @@ export interface Query {
|
||||
getModelsDevProviders: ModelsDevProviderSuggestion[]
|
||||
getModelsDevSuggestions: ModelsDevModelSuggestion[]
|
||||
getAdminAiUsageByWorkspace: UsageBreakdownItem[]
|
||||
getMaintenanceMode?: MaintenanceMode
|
||||
getUsageAnalytics: UsageAnalytics
|
||||
getPostgresCredentials?: PostgresCredentials
|
||||
findManyPublicDomains: PublicDomain[]
|
||||
@@ -2899,6 +2938,9 @@ export interface Mutation {
|
||||
updateWebhook: Webhook
|
||||
deleteWebhook: Webhook
|
||||
createChatThread: AgentChatThread
|
||||
sendChatMessage: SendChatMessageResult
|
||||
stopAgentChatStream: Scalars['Boolean']
|
||||
deleteQueuedChatMessage: Scalars['Boolean']
|
||||
createSkill: Skill
|
||||
updateSkill: Skill
|
||||
deleteSkill: Skill
|
||||
@@ -2966,6 +3008,8 @@ export interface Mutation {
|
||||
removeAiProvider: Scalars['Boolean']
|
||||
addModelToProvider: Scalars['Boolean']
|
||||
removeModelFromProvider: Scalars['Boolean']
|
||||
setMaintenanceMode: Scalars['Boolean']
|
||||
clearMaintenanceMode: Scalars['Boolean']
|
||||
enablePostgresProxy: PostgresCredentials
|
||||
disablePostgresProxy: PostgresCredentials
|
||||
createPublicDomain: PublicDomain
|
||||
@@ -3001,6 +3045,7 @@ export type FileFolder = 'ProfilePicture' | 'WorkspaceLogo' | 'Attachment' | 'Pe
|
||||
export interface Subscription {
|
||||
onEventSubscription?: EventSubscription
|
||||
logicFunctionLogs: LogicFunctionLogs
|
||||
onAgentChatEvent: AgentChatEvent
|
||||
__typename: 'Subscription'
|
||||
}
|
||||
|
||||
@@ -4482,6 +4527,14 @@ export interface PublicFeatureFlagGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ClientConfigMaintenanceModeGenqlSelection{
|
||||
startAt?: boolean | number
|
||||
endAt?: boolean | number
|
||||
link?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ClientConfigGenqlSelection{
|
||||
appVersion?: boolean | number
|
||||
authProviders?: AuthProvidersGenqlSelection
|
||||
@@ -4510,6 +4563,8 @@ export interface ClientConfigGenqlSelection{
|
||||
calendarBookingPageId?: boolean | number
|
||||
isCloudflareIntegrationEnabled?: boolean | number
|
||||
isClickHouseConfigured?: boolean | number
|
||||
isWorkspaceSchemaDDLLocked?: boolean | number
|
||||
maintenance?: ClientConfigMaintenanceModeGenqlSelection
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
@@ -4685,6 +4740,14 @@ export interface AdminPanelHealthServiceDataGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface MaintenanceModeGenqlSelection{
|
||||
startAt?: boolean | number
|
||||
endAt?: boolean | number
|
||||
link?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ModelsDevModelSuggestionGenqlSelection{
|
||||
modelId?: boolean | number
|
||||
name?: boolean | number
|
||||
@@ -5034,6 +5097,39 @@ export interface FieldConnectionGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface AuthTokenGenqlSelection{
|
||||
token?: boolean | number
|
||||
expiresAt?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ApplicationTokenPairGenqlSelection{
|
||||
applicationAccessToken?: AuthTokenGenqlSelection
|
||||
applicationRefreshToken?: AuthTokenGenqlSelection
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface FrontComponentGenqlSelection{
|
||||
id?: boolean | number
|
||||
name?: boolean | number
|
||||
description?: boolean | number
|
||||
sourceComponentPath?: boolean | number
|
||||
builtComponentPath?: boolean | number
|
||||
componentName?: boolean | number
|
||||
builtComponentChecksum?: boolean | number
|
||||
universalIdentifier?: boolean | number
|
||||
applicationId?: boolean | number
|
||||
createdAt?: boolean | number
|
||||
updatedAt?: boolean | number
|
||||
isHeadless?: boolean | number
|
||||
usesSdkClient?: boolean | number
|
||||
applicationTokenPair?: ApplicationTokenPairGenqlSelection
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface LogicFunctionLogsGenqlSelection{
|
||||
/** Execution Logs */
|
||||
logs?: boolean | number
|
||||
@@ -5066,13 +5162,6 @@ export interface AuthorizeAppGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface AuthTokenGenqlSelection{
|
||||
token?: boolean | number
|
||||
expiresAt?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface AuthTokenPairGenqlSelection{
|
||||
accessOrWorkspaceAgnosticToken?: AuthTokenGenqlSelection
|
||||
refreshToken?: AuthTokenGenqlSelection
|
||||
@@ -5223,13 +5312,6 @@ export interface WorkspaceMigrationGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ApplicationTokenPairGenqlSelection{
|
||||
applicationAccessToken?: AuthTokenGenqlSelection
|
||||
applicationRefreshToken?: AuthTokenGenqlSelection
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface FileGenqlSelection{
|
||||
id?: boolean | number
|
||||
path?: boolean | number
|
||||
@@ -5366,25 +5448,6 @@ export interface PostgresCredentialsGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface FrontComponentGenqlSelection{
|
||||
id?: boolean | number
|
||||
name?: boolean | number
|
||||
description?: boolean | number
|
||||
sourceComponentPath?: boolean | number
|
||||
builtComponentPath?: boolean | number
|
||||
componentName?: boolean | number
|
||||
builtComponentChecksum?: boolean | number
|
||||
universalIdentifier?: boolean | number
|
||||
applicationId?: boolean | number
|
||||
createdAt?: boolean | number
|
||||
updatedAt?: boolean | number
|
||||
isHeadless?: boolean | number
|
||||
usesSdkClient?: boolean | number
|
||||
applicationTokenPair?: ApplicationTokenPairGenqlSelection
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface CommandMenuItemGenqlSelection{
|
||||
id?: boolean | number
|
||||
workflowVersionId?: boolean | number
|
||||
@@ -5598,7 +5661,9 @@ export interface AgentMessageGenqlSelection{
|
||||
turnId?: boolean | number
|
||||
agentId?: boolean | number
|
||||
role?: boolean | number
|
||||
status?: boolean | number
|
||||
parts?: AgentMessagePartGenqlSelection
|
||||
processedAt?: boolean | number
|
||||
createdAt?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
@@ -5619,6 +5684,28 @@ export interface AISystemPromptPreviewGenqlSelection{
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface ChatStreamCatchupChunksGenqlSelection{
|
||||
chunks?: boolean | number
|
||||
maxSeq?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface SendChatMessageResultGenqlSelection{
|
||||
messageId?: boolean | number
|
||||
queued?: boolean | number
|
||||
streamId?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface AgentChatEventGenqlSelection{
|
||||
threadId?: boolean | number
|
||||
event?: boolean | number
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
|
||||
export interface AgentChatThreadEdgeGenqlSelection{
|
||||
/** The node containing the AgentChatThread */
|
||||
node?: AgentChatThreadGenqlSelection
|
||||
@@ -5868,6 +5955,7 @@ export interface QueryGenqlSelection{
|
||||
minimalMetadata?: MinimalMetadataGenqlSelection
|
||||
chatThread?: (AgentChatThreadGenqlSelection & { __args: {id: Scalars['UUID']} })
|
||||
chatMessages?: (AgentMessageGenqlSelection & { __args: {threadId: Scalars['UUID']} })
|
||||
chatStreamCatchupChunks?: (ChatStreamCatchupChunksGenqlSelection & { __args: {threadId: Scalars['UUID']} })
|
||||
getAISystemPromptPreview?: AISystemPromptPreviewGenqlSelection
|
||||
skills?: SkillGenqlSelection
|
||||
skill?: (SkillGenqlSelection & { __args: {id: Scalars['UUID']} })
|
||||
@@ -5915,6 +6003,7 @@ export interface QueryGenqlSelection{
|
||||
getModelsDevProviders?: ModelsDevProviderSuggestionGenqlSelection
|
||||
getModelsDevSuggestions?: (ModelsDevModelSuggestionGenqlSelection & { __args: {providerType: Scalars['String']} })
|
||||
getAdminAiUsageByWorkspace?: (UsageBreakdownItemGenqlSelection & { __args?: {periodStart?: (Scalars['DateTime'] | null), periodEnd?: (Scalars['DateTime'] | null)} })
|
||||
getMaintenanceMode?: MaintenanceModeGenqlSelection
|
||||
getUsageAnalytics?: (UsageAnalyticsGenqlSelection & { __args?: {input?: (UsageAnalyticsInput | null)} })
|
||||
getPostgresCredentials?: PostgresCredentialsGenqlSelection
|
||||
findManyPublicDomains?: PublicDomainGenqlSelection
|
||||
@@ -6079,6 +6168,9 @@ export interface MutationGenqlSelection{
|
||||
updateWebhook?: (WebhookGenqlSelection & { __args: {input: UpdateWebhookInput} })
|
||||
deleteWebhook?: (WebhookGenqlSelection & { __args: {id: Scalars['UUID']} })
|
||||
createChatThread?: AgentChatThreadGenqlSelection
|
||||
sendChatMessage?: (SendChatMessageResultGenqlSelection & { __args: {threadId: Scalars['UUID'], text: Scalars['String'], messageId: Scalars['UUID'], browsingContext?: (Scalars['JSON'] | null), modelId?: (Scalars['String'] | null)} })
|
||||
stopAgentChatStream?: { __args: {threadId: Scalars['UUID']} }
|
||||
deleteQueuedChatMessage?: { __args: {messageId: Scalars['UUID']} }
|
||||
createSkill?: (SkillGenqlSelection & { __args: {input: CreateSkillInput} })
|
||||
updateSkill?: (SkillGenqlSelection & { __args: {input: UpdateSkillInput} })
|
||||
deleteSkill?: (SkillGenqlSelection & { __args: {id: Scalars['UUID']} })
|
||||
@@ -6146,6 +6238,8 @@ export interface MutationGenqlSelection{
|
||||
removeAiProvider?: { __args: {providerName: Scalars['String']} }
|
||||
addModelToProvider?: { __args: {providerName: Scalars['String'], modelConfig: Scalars['JSON']} }
|
||||
removeModelFromProvider?: { __args: {providerName: Scalars['String'], modelName: Scalars['String']} }
|
||||
setMaintenanceMode?: { __args: {startAt: Scalars['DateTime'], endAt: Scalars['DateTime'], link?: (Scalars['String'] | null)} }
|
||||
clearMaintenanceMode?: boolean | number
|
||||
enablePostgresProxy?: PostgresCredentialsGenqlSelection
|
||||
disablePostgresProxy?: PostgresCredentialsGenqlSelection
|
||||
createPublicDomain?: (PublicDomainGenqlSelection & { __args: {domain: Scalars['String']} })
|
||||
@@ -6496,6 +6590,7 @@ export interface WorkspaceMigrationDeleteActionInput {type: WorkspaceMigrationAc
|
||||
export interface SubscriptionGenqlSelection{
|
||||
onEventSubscription?: (EventSubscriptionGenqlSelection & { __args: {eventStreamId: Scalars['String']} })
|
||||
logicFunctionLogs?: (LogicFunctionLogsGenqlSelection & { __args: {input: LogicFunctionLogsInput} })
|
||||
onAgentChatEvent?: (AgentChatEventGenqlSelection & { __args: {threadId: Scalars['UUID']} })
|
||||
__typename?: boolean | number
|
||||
__scalar?: boolean | number
|
||||
}
|
||||
@@ -7447,6 +7542,14 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const ClientConfigMaintenanceMode_possibleTypes: string[] = ['ClientConfigMaintenanceMode']
|
||||
export const isClientConfigMaintenanceMode = (obj?: { __typename?: any } | null): obj is ClientConfigMaintenanceMode => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isClientConfigMaintenanceMode"')
|
||||
return ClientConfigMaintenanceMode_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const ClientConfig_possibleTypes: string[] = ['ClientConfig']
|
||||
export const isClientConfig = (obj?: { __typename?: any } | null): obj is ClientConfig => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isClientConfig"')
|
||||
@@ -7607,6 +7710,14 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const MaintenanceMode_possibleTypes: string[] = ['MaintenanceMode']
|
||||
export const isMaintenanceMode = (obj?: { __typename?: any } | null): obj is MaintenanceMode => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isMaintenanceMode"')
|
||||
return MaintenanceMode_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const ModelsDevModelSuggestion_possibleTypes: string[] = ['ModelsDevModelSuggestion']
|
||||
export const isModelsDevModelSuggestion = (obj?: { __typename?: any } | null): obj is ModelsDevModelSuggestion => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isModelsDevModelSuggestion"')
|
||||
@@ -7919,6 +8030,30 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const AuthToken_possibleTypes: string[] = ['AuthToken']
|
||||
export const isAuthToken = (obj?: { __typename?: any } | null): obj is AuthToken => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isAuthToken"')
|
||||
return AuthToken_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const ApplicationTokenPair_possibleTypes: string[] = ['ApplicationTokenPair']
|
||||
export const isApplicationTokenPair = (obj?: { __typename?: any } | null): obj is ApplicationTokenPair => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isApplicationTokenPair"')
|
||||
return ApplicationTokenPair_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const FrontComponent_possibleTypes: string[] = ['FrontComponent']
|
||||
export const isFrontComponent = (obj?: { __typename?: any } | null): obj is FrontComponent => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isFrontComponent"')
|
||||
return FrontComponent_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const LogicFunctionLogs_possibleTypes: string[] = ['LogicFunctionLogs']
|
||||
export const isLogicFunctionLogs = (obj?: { __typename?: any } | null): obj is LogicFunctionLogs => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isLogicFunctionLogs"')
|
||||
@@ -7959,14 +8094,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const AuthToken_possibleTypes: string[] = ['AuthToken']
|
||||
export const isAuthToken = (obj?: { __typename?: any } | null): obj is AuthToken => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isAuthToken"')
|
||||
return AuthToken_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const AuthTokenPair_possibleTypes: string[] = ['AuthTokenPair']
|
||||
export const isAuthTokenPair = (obj?: { __typename?: any } | null): obj is AuthTokenPair => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isAuthTokenPair"')
|
||||
@@ -8135,14 +8262,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const ApplicationTokenPair_possibleTypes: string[] = ['ApplicationTokenPair']
|
||||
export const isApplicationTokenPair = (obj?: { __typename?: any } | null): obj is ApplicationTokenPair => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isApplicationTokenPair"')
|
||||
return ApplicationTokenPair_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const File_possibleTypes: string[] = ['File']
|
||||
export const isFile = (obj?: { __typename?: any } | null): obj is File => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isFile"')
|
||||
@@ -8255,14 +8374,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const FrontComponent_possibleTypes: string[] = ['FrontComponent']
|
||||
export const isFrontComponent = (obj?: { __typename?: any } | null): obj is FrontComponent => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isFrontComponent"')
|
||||
return FrontComponent_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const CommandMenuItem_possibleTypes: string[] = ['CommandMenuItem']
|
||||
export const isCommandMenuItem = (obj?: { __typename?: any } | null): obj is CommandMenuItem => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isCommandMenuItem"')
|
||||
@@ -8423,6 +8534,30 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
|
||||
|
||||
|
||||
|
||||
const ChatStreamCatchupChunks_possibleTypes: string[] = ['ChatStreamCatchupChunks']
|
||||
export const isChatStreamCatchupChunks = (obj?: { __typename?: any } | null): obj is ChatStreamCatchupChunks => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isChatStreamCatchupChunks"')
|
||||
return ChatStreamCatchupChunks_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const SendChatMessageResult_possibleTypes: string[] = ['SendChatMessageResult']
|
||||
export const isSendChatMessageResult = (obj?: { __typename?: any } | null): obj is SendChatMessageResult => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isSendChatMessageResult"')
|
||||
return SendChatMessageResult_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const AgentChatEvent_possibleTypes: string[] = ['AgentChatEvent']
|
||||
export const isAgentChatEvent = (obj?: { __typename?: any } | null): obj is AgentChatEvent => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isAgentChatEvent"')
|
||||
return AgentChatEvent_possibleTypes.includes(obj.__typename)
|
||||
}
|
||||
|
||||
|
||||
|
||||
const AgentChatThreadEdge_possibleTypes: string[] = ['AgentChatThreadEdge']
|
||||
export const isAgentChatThreadEdge = (obj?: { __typename?: any } | null): obj is AgentChatThreadEdge => {
|
||||
if (!obj?.__typename) throw new Error('__typename is missing in "isAgentChatThreadEdge"')
|
||||
@@ -8961,7 +9096,6 @@ export const enumFeatureFlagKey = {
|
||||
IS_DIRECT_GRAPHQL_EXECUTION_ENABLED: 'IS_DIRECT_GRAPHQL_EXECUTION_ENABLED' as const,
|
||||
IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED: 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED' as const,
|
||||
IS_CONNECTED_ACCOUNT_MIGRATED: 'IS_CONNECTED_ACCOUNT_MIGRATED' as const,
|
||||
IS_GRAPHQL_QUERY_TIMING_ENABLED: 'IS_GRAPHQL_QUERY_TIMING_ENABLED' as const,
|
||||
IS_RECORD_TABLE_WIDGET_ENABLED: 'IS_RECORD_TABLE_WIDGET_ENABLED' as const,
|
||||
IS_DATASOURCE_MIGRATED: 'IS_DATASOURCE_MIGRATED' as const
|
||||
}
|
||||
@@ -9061,20 +9195,15 @@ export const enumEngineComponentKey = {
|
||||
NAVIGATE_TO_NEXT_RECORD: 'NAVIGATE_TO_NEXT_RECORD' as const,
|
||||
NAVIGATE_TO_PREVIOUS_RECORD: 'NAVIGATE_TO_PREVIOUS_RECORD' as const,
|
||||
CREATE_NEW_RECORD: 'CREATE_NEW_RECORD' as const,
|
||||
DELETE_SINGLE_RECORD: 'DELETE_SINGLE_RECORD' as const,
|
||||
DELETE_MULTIPLE_RECORDS: 'DELETE_MULTIPLE_RECORDS' as const,
|
||||
RESTORE_SINGLE_RECORD: 'RESTORE_SINGLE_RECORD' as const,
|
||||
RESTORE_MULTIPLE_RECORDS: 'RESTORE_MULTIPLE_RECORDS' as const,
|
||||
DESTROY_SINGLE_RECORD: 'DESTROY_SINGLE_RECORD' as const,
|
||||
DESTROY_MULTIPLE_RECORDS: 'DESTROY_MULTIPLE_RECORDS' as const,
|
||||
DELETE_RECORDS: 'DELETE_RECORDS' as const,
|
||||
RESTORE_RECORDS: 'RESTORE_RECORDS' as const,
|
||||
DESTROY_RECORDS: 'DESTROY_RECORDS' as const,
|
||||
ADD_TO_FAVORITES: 'ADD_TO_FAVORITES' as const,
|
||||
REMOVE_FROM_FAVORITES: 'REMOVE_FROM_FAVORITES' as const,
|
||||
EXPORT_NOTE_TO_PDF: 'EXPORT_NOTE_TO_PDF' as const,
|
||||
EXPORT_FROM_RECORD_INDEX: 'EXPORT_FROM_RECORD_INDEX' as const,
|
||||
EXPORT_FROM_RECORD_SHOW: 'EXPORT_FROM_RECORD_SHOW' as const,
|
||||
EXPORT_RECORDS: 'EXPORT_RECORDS' as const,
|
||||
UPDATE_MULTIPLE_RECORDS: 'UPDATE_MULTIPLE_RECORDS' as const,
|
||||
MERGE_MULTIPLE_RECORDS: 'MERGE_MULTIPLE_RECORDS' as const,
|
||||
EXPORT_MULTIPLE_RECORDS: 'EXPORT_MULTIPLE_RECORDS' as const,
|
||||
IMPORT_RECORDS: 'IMPORT_RECORDS' as const,
|
||||
EXPORT_VIEW: 'EXPORT_VIEW' as const,
|
||||
SEE_DELETED_RECORDS: 'SEE_DELETED_RECORDS' as const,
|
||||
@@ -9116,7 +9245,16 @@ export const enumEngineComponentKey = {
|
||||
ASK_AI: 'ASK_AI' as const,
|
||||
VIEW_PREVIOUS_AI_CHATS: 'VIEW_PREVIOUS_AI_CHATS' as const,
|
||||
TRIGGER_WORKFLOW_VERSION: 'TRIGGER_WORKFLOW_VERSION' as const,
|
||||
FRONT_COMPONENT_RENDERER: 'FRONT_COMPONENT_RENDERER' as const
|
||||
FRONT_COMPONENT_RENDERER: 'FRONT_COMPONENT_RENDERER' as const,
|
||||
DELETE_SINGLE_RECORD: 'DELETE_SINGLE_RECORD' as const,
|
||||
DELETE_MULTIPLE_RECORDS: 'DELETE_MULTIPLE_RECORDS' as const,
|
||||
RESTORE_SINGLE_RECORD: 'RESTORE_SINGLE_RECORD' as const,
|
||||
RESTORE_MULTIPLE_RECORDS: 'RESTORE_MULTIPLE_RECORDS' as const,
|
||||
DESTROY_SINGLE_RECORD: 'DESTROY_SINGLE_RECORD' as const,
|
||||
DESTROY_MULTIPLE_RECORDS: 'DESTROY_MULTIPLE_RECORDS' as const,
|
||||
EXPORT_FROM_RECORD_INDEX: 'EXPORT_FROM_RECORD_INDEX' as const,
|
||||
EXPORT_FROM_RECORD_SHOW: 'EXPORT_FROM_RECORD_SHOW' as const,
|
||||
EXPORT_MULTIPLE_RECORDS: 'EXPORT_MULTIPLE_RECORDS' as const
|
||||
}
|
||||
|
||||
export const enumCommandMenuItemAvailabilityType = {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,24 +4,24 @@ description: Defina objetos, funções de lógica, componentes de front-end e mu
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Os aplicativos estão atualmente em testes alfa. O recurso é funcional, mas ainda está evoluindo.
|
||||
</Warning>
|
||||
|
||||
The `twenty-sdk` package provides typed building blocks to create your app. This page covers every entity type and API client available in the SDK.
|
||||
O pacote `twenty-sdk` fornece blocos de construção tipados para criar seu app. Esta página cobre todos os tipos de entidade e clientes de API disponíveis no SDK.
|
||||
|
||||
## DefineEntity functions
|
||||
## Funções DefineEntity
|
||||
|
||||
The SDK provides functions to define your app entities. You must use `export default defineEntity({...})` for the SDK to detect your entities. Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos.
|
||||
O SDK fornece funções para definir as entidades do seu app. Você deve usar `export default defineEntity({...})` para que o SDK detecte suas entidades. Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos.
|
||||
|
||||
<Note>
|
||||
**File organization is up to you.**
|
||||
Entity detection is AST-based — the SDK finds `export default defineEntity(...)` calls regardless of where the file lives. Grouping files by type (e.g., `logic-functions/`, `roles/`) is just a convention, not a requirement.
|
||||
**A organização de arquivos fica a seu critério.**
|
||||
A detecção de entidades é baseada em AST — o SDK encontra chamadas a `export default defineEntity(...)` independentemente de onde o arquivo esteja. Agrupar arquivos por tipo (por exemplo, `logic-functions/`, `roles/`) é apenas uma convenção, não um requisito.
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="defineRole" description="Configura permissões de papéis e acesso a objetos">
|
||||
|
||||
Roles encapsulate permissions on your workspace's objects and actions.
|
||||
Papéis encapsulam permissões sobre os objetos e ações do seu espaço de trabalho.
|
||||
|
||||
```ts restricted-company-role.ts
|
||||
import {
|
||||
@@ -69,12 +69,12 @@ export default defineRole({
|
||||
</Accordion>
|
||||
<Accordion title="defineApplication" description="Configurar metadados do aplicativo (obrigatório, um por app)">
|
||||
|
||||
Every app must have exactly one `defineApplication` call that describes:
|
||||
Todo app deve ter exatamente uma chamada a `defineApplication` que descreve:
|
||||
|
||||
* **Identity**: identifiers, display name, and description.
|
||||
* **Permissions**: which role its functions and front components use.
|
||||
* **(Optional) Variables**: key–value pairs exposed to your functions as environment variables.
|
||||
* **(Optional) Pre-install / post-install functions**: logic functions that run before or after installation.
|
||||
* **Identidade**: identificadores, nome de exibição e descrição.
|
||||
* **Permissões**: qual papel é usado por suas funções e componentes de front-end.
|
||||
* **Variáveis (opcional)**: pares chave–valor expostos às suas funções como variáveis de ambiente.
|
||||
* **(Opcional) Funções de pré-instalação/pós-instalação**: funções de lógica que são executadas antes ou depois da instalação.
|
||||
|
||||
```ts src/application-config.ts
|
||||
import { defineApplication } from 'twenty-sdk';
|
||||
@@ -98,21 +98,21 @@ export default defineApplication({
|
||||
```
|
||||
|
||||
Notas:
|
||||
* `universalIdentifier` fields are deterministic IDs you own. Generate them once and keep them stable across syncs.
|
||||
* `applicationVariables` become environment variables for your functions and front components (e.g., `DEFAULT_RECIPIENT_NAME` is available as `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` must reference a role defined with `defineRole()` (see above).
|
||||
* Pre-install and post-install functions are detected automatically during the manifest build — you do not need to reference them in `defineApplication()`.
|
||||
* Os campos `universalIdentifier` são IDs determinísticos que você controla. Gere-os uma vez e mantenha-os estáveis entre sincronizações.
|
||||
* `applicationVariables` tornam-se variáveis de ambiente para suas funções e componentes de front-end (por exemplo, `DEFAULT_RECIPIENT_NAME` fica disponível como `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` deve fazer referência a um papel definido com `defineRole()` (veja acima).
|
||||
* As funções de pré-instalação e pós-instalação são detectadas automaticamente durante a construção do manifesto — você não precisa referenciá-las em `defineApplication()`.
|
||||
|
||||
#### Metadados do Marketplace
|
||||
|
||||
If you plan to [publish your app](/l/pt/developers/extend/apps/publishing), these optional fields control how it appears in the marketplace:
|
||||
Se você planeja [publicar seu app](/l/pt/developers/extend/apps/publishing), estes campos opcionais controlam como seu app aparece no marketplace:
|
||||
|
||||
| Campo | Descrição |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| `autor` | Nome do autor ou da empresa |
|
||||
| `categoria` | Categoria do app para filtragem no marketplace |
|
||||
| `logoUrl` | Path to your app logo (e.g., `public/logo.png`) |
|
||||
| `screenshots` | Array of screenshot paths (e.g., `public/screenshot-1.png`) |
|
||||
| `logoUrl` | Caminho para o logo do seu app (por exemplo, `public/logo.png`) |
|
||||
| `screenshots` | Array de caminhos de capturas de tela (por exemplo, `public/screenshot-1.png`) |
|
||||
| `aboutDescription` | Descrição em markdown mais longa para a aba "Sobre". Se omitido, o marketplace usa o `README.md` do pacote no npm |
|
||||
| `websiteUrl` | Link para seu site |
|
||||
| `termsUrl` | Link para os Termos de Serviço |
|
||||
@@ -121,15 +121,15 @@ If you plan to [publish your app](/l/pt/developers/extend/apps/publishing), thes
|
||||
|
||||
#### Papéis e permissões
|
||||
|
||||
The `defaultRoleUniversalIdentifier` in `application-config.ts` designates the default role used by your app's logic functions and front components. See `defineRole` above for details.
|
||||
O campo `defaultRoleUniversalIdentifier` em `application-config.ts` designa o papel padrão usado pelas funções de lógica e pelos componentes de front-end do seu app. Veja `defineRole` acima para detalhes.
|
||||
|
||||
* The runtime token injected as `TWENTY_APP_ACCESS_TOKEN` is derived from this role.
|
||||
* The typed client is restricted to the permissions granted to that role.
|
||||
* Follow least-privilege: create a dedicated role with only the permissions your functions need.
|
||||
* O token em tempo de execução injetado como `TWENTY_APP_ACCESS_TOKEN` é derivado desse papel.
|
||||
* O cliente tipado é restrito às permissões concedidas a esse papel.
|
||||
* Siga o princípio do menor privilégio: crie um papel dedicado com apenas as permissões de que suas funções precisam.
|
||||
|
||||
##### Default function role
|
||||
##### Papel de função padrão
|
||||
|
||||
When you scaffold a new app, the CLI creates a default role file:
|
||||
Ao criar um novo app com o scaffold, a CLI cria um arquivo de papel padrão:
|
||||
|
||||
```ts src/roles/default-role.ts
|
||||
import { defineRole, PermissionFlag } from 'twenty-sdk';
|
||||
@@ -155,16 +155,16 @@ export default defineRole({
|
||||
});
|
||||
```
|
||||
|
||||
This role's `universalIdentifier` is referenced in `application-config.ts` as `defaultRoleUniversalIdentifier`:
|
||||
O `universalIdentifier` desse papel é referenciado em `application-config.ts` como `defaultRoleUniversalIdentifier`:
|
||||
|
||||
* **\*.role.ts** defines what the role can do.
|
||||
* **\*.role.ts** define o que o papel pode fazer.
|
||||
* **application-config.ts** aponta para esse papel para que suas funções herdem suas permissões.
|
||||
|
||||
Notas:
|
||||
* Comece pelo papel gerado pelo scaffold e depois restrinja-o progressivamente seguindo o princípio do menor privilégio.
|
||||
* Replace `objectPermissions` and `fieldPermissions` with the objects and fields your functions actually need.
|
||||
* `permissionFlags` controlam o acesso a recursos em nível de plataforma. Keep them minimal.
|
||||
* See a working example: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
* Substitua `objectPermissions` e `fieldPermissions` pelos objetos e campos de que suas funções realmente precisam.
|
||||
* `permissionFlags` controlam o acesso a recursos em nível de plataforma. Mantenha-os no mínimo necessário.
|
||||
* Veja um exemplo funcional: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineObject" description="Define objetos personalizados com campos">
|
||||
@@ -256,7 +256,7 @@ mas isso não é recomendado.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Standard fields" description="Estender objetos existentes com campos adicionais">
|
||||
<Accordion title="defineField — Campos padrão" description="Estender objetos existentes com campos adicionais">
|
||||
|
||||
Use `defineField()` para adicionar campos a objetos que não são seus — como objetos padrão do Twenty (Person, Company, etc.). ou a objetos de outros apps. Ao contrário dos campos inline em `defineObject()`, os campos independentes exigem um `objectUniversalIdentifier` para especificar qual objeto eles estendem:
|
||||
|
||||
@@ -284,7 +284,7 @@ Pontos-chave:
|
||||
* `defineField()` é a única forma de adicionar campos a objetos que você não criou com `defineObject()`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Relation fields" description="Connect objects together with bidirectional relations">
|
||||
<Accordion title="defineField — Campos de relação" description="Conecte objetos com relações bidirecionais">
|
||||
|
||||
As relações conectam objetos entre si. No Twenty, as relações são sempre **bidirecionais** — você define ambos os lados, e cada lado faz referência ao outro.
|
||||
|
||||
@@ -443,7 +443,7 @@ export default defineObject({
|
||||
});
|
||||
```
|
||||
</Accordion>
|
||||
<Accordion title="defineLogicFunction" description="Define logic functions and their triggers">
|
||||
<Accordion title="defineLogicFunction" description="Defina funções de lógica e seus gatilhos">
|
||||
|
||||
Cada arquivo de função usa `defineLogicFunction()` para exportar uma configuração com um handler e gatilhos opcionais.
|
||||
|
||||
@@ -487,15 +487,15 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
Available trigger types:
|
||||
* **httpRoute**: Exposes your function on an HTTP path and method **under the `/s/` endpoint**:
|
||||
> e.g. `path: '/post-card/create'` is callable at `https://your-twenty-server.com/s/post-card/create`
|
||||
Tipos de gatilho disponíveis:
|
||||
* **httpRoute**: Expõe sua função em um caminho e método HTTP **no endpoint `/s/`**:
|
||||
> por exemplo, `path: '/post-card/create'` é acessível em `https://your-twenty-server.com/s/post-card/create`
|
||||
* **cron**: Executa sua função em um agendamento usando uma expressão CRON.
|
||||
* **databaseEvent**: Executa em eventos do ciclo de vida de objetos do espaço de trabalho. Quando a operação do evento é `updated`, campos específicos a serem observados podem ser especificados no array `updatedFields`. Se deixar indefinido ou vazio, qualquer atualização acionará a função.
|
||||
> e.g. `person.updated`, `*.created`, `company.*`
|
||||
> por exemplo, `person.updated`, `*.created`, `company.*`
|
||||
|
||||
<Note>
|
||||
You can also manually execute a function using the CLI:
|
||||
Você também pode executar manualmente uma função usando a CLI:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
@@ -505,7 +505,7 @@ yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
yarn twenty exec -y e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
You can watch logs with:
|
||||
Você pode acompanhar os logs com:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty logs
|
||||
@@ -514,9 +514,8 @@ yarn twenty logs
|
||||
|
||||
#### Payload de gatilho de rota
|
||||
|
||||
When a route trigger invokes your logic function, it receives a `RoutePayload` object that follows the
|
||||
[AWS HTTP API v2 format](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Import the `RoutePayload` type from `twenty-sdk`:
|
||||
Quando um gatilho de rota invoca sua função de lógica, ela recebe um objeto `RoutePayload` que segue o [formato HTTP API v2 da AWS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Importe o tipo `RoutePayload` de `twenty-sdk`:
|
||||
|
||||
```ts
|
||||
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
|
||||
@@ -533,9 +532,9 @@ O tipo `RoutePayload` tem a seguinte estrutura:
|
||||
|
||||
| Propriedade | Tipo | Descrição | Exemplo |
|
||||
| ---------------------------- | ------------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `headers` | `Record<string, string \| undefined>` | Cabeçalhos HTTP (apenas aqueles listados em `forwardedRequestHeaders`) | see section below |
|
||||
| `headers` | `Record<string, string \| undefined>` | Cabeçalhos HTTP (apenas aqueles listados em `forwardedRequestHeaders`) | veja a seção abaixo |
|
||||
| `queryStringParameters` | `Record<string, string \| undefined>` | Parâmetros de query string (valores múltiplos unidos por vírgulas) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Path parameters extracted from the route pattern | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Parâmetros de caminho extraídos do padrão de rota | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `body` | `object \| null` | Corpo da requisição analisado (JSON) | `{ id: 1 }` -> `{ id: 1 }` |
|
||||
| `isBase64Encoded` | `boolean` | Se o corpo está codificado em base64 | |
|
||||
| `requestContext.http.method` | `string` | Método HTTP (GET, POST, PUT, PATCH, DELETE) | |
|
||||
@@ -545,7 +544,7 @@ O tipo `RoutePayload` tem a seguinte estrutura:
|
||||
#### forwardedRequestHeaders
|
||||
|
||||
Por padrão, os cabeçalhos HTTP das requisições recebidas **não** são repassados para sua função de lógica por motivos de segurança.
|
||||
To access specific headers, list them in the `forwardedRequestHeaders` array:
|
||||
Para acessar cabeçalhos específicos, liste-os explicitamente no array `forwardedRequestHeaders`:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -561,7 +560,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
In your handler, access the forwarded headers like this:
|
||||
No seu handler, acesse os cabeçalhos encaminhados assim:
|
||||
|
||||
```ts
|
||||
const handler = async (event: RoutePayload) => {
|
||||
@@ -574,14 +573,14 @@ const handler = async (event: RoutePayload) => {
|
||||
```
|
||||
|
||||
<Note>
|
||||
Os nomes dos cabeçalhos são normalizados para minúsculas. Access them using lowercase keys (e.g., `event.headers['content-type']`).
|
||||
Os nomes dos cabeçalhos são normalizados para minúsculas. Acesse-os usando chaves em minúsculas (por exemplo, `event.headers['content-type']`).
|
||||
</Note>
|
||||
|
||||
#### Exposing a function as a tool
|
||||
#### Expor uma função como ferramenta
|
||||
|
||||
Funções lógicas podem ser expostas como **ferramentas** para agentes de IA e fluxos de trabalho. When marked as a tool, a function becomes discoverable by Twenty's AI features and can be used in workflow automations.
|
||||
Funções lógicas podem ser expostas como **ferramentas** para agentes de IA e fluxos de trabalho. Quando marcada como ferramenta, uma função fica detectável pelos recursos de IA do Twenty e pode ser usada em automações de fluxos de trabalho.
|
||||
|
||||
To mark a logic function as a tool, set `isTool: true`:
|
||||
Para marcar uma função de lógica como ferramenta, defina `isTool: true`:
|
||||
|
||||
```ts src/logic-functions/enrich-company.logic-function.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -617,8 +616,8 @@ export default defineLogicFunction({
|
||||
|
||||
Pontos-chave:
|
||||
|
||||
* You can combine `isTool` with triggers — a function can be both a tool (callable by AI agents) and triggered by events at the same time.
|
||||
* **`toolInputSchema`** (optional): A JSON Schema object describing the parameters your function accepts. The schema is computed automatically from source code static analysis, but you can set it explicitly:
|
||||
* Você pode combinar `isTool` com gatilhos — uma função pode ser ao mesmo tempo uma ferramenta (chamável por agentes de IA) e acionada por eventos.
|
||||
* **`toolInputSchema`** (opcional): Um objeto JSON Schema que descreve os parâmetros que sua função aceita. O schema é calculado automaticamente a partir da análise estática do código-fonte, mas você pode defini-lo explicitamente:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -715,11 +714,11 @@ Pontos-chave:
|
||||
</Accordion>
|
||||
<Accordion title="defineFrontComponent" description="Definir componentes de front-end para UI personalizada">
|
||||
|
||||
Front components are React components that render directly inside Twenty's UI. They run in an **isolated Web Worker** using Remote DOM — your code is sandboxed but renders natively in the page, not in an iframe.
|
||||
Componentes de front-end são componentes React que renderizam diretamente dentro da UI do Twenty. Eles são executados em um Web Worker isolado usando Remote DOM — seu código é sandboxed, mas renderiza nativamente na página, não em um iframe.
|
||||
|
||||
#### Basic example
|
||||
#### Exemplo básico
|
||||
|
||||
The quickest way to see a front component in action is to register it as a **command**. Adding a `command` field with `isPinned: true` makes it appear as a quick-action button in the top-right corner of the page — no page layout needed:
|
||||
A maneira mais rápida de ver um componente de front-end em ação é registrá-lo como um **comando**. Adicionar um campo `command` com `isPinned: true` faz com que ele apareça como um botão de ação rápida no canto superior direito da página — não é necessário layout de página:
|
||||
|
||||
```tsx src/front-components/hello-world.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -749,34 +748,34 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
After syncing with `yarn twenty dev`, the quick action appears in the top-right corner of the page:
|
||||
Após sincronizar com `yarn twenty dev`, a ação rápida aparece no canto superior direito da página:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Quick action button in the top-right corner" />
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Botão de ação rápida no canto superior direito" />
|
||||
</div>
|
||||
|
||||
Click it to render the component inline.
|
||||
Clique nele para renderizar o componente inline.
|
||||
|
||||
{/* TODO: add screenshot of the rendered front component */}
|
||||
|
||||
#### Configuration fields
|
||||
#### Campos de configuração
|
||||
|
||||
| Campo | Obrigatório | Descrição |
|
||||
| --------------------- | ----------- | ----------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Sim | Stable unique ID for this component |
|
||||
| `component` | Sim | A React component function |
|
||||
| `name` | Não | Display name |
|
||||
| `description` | Não | Description of what the component does |
|
||||
| `isHeadless` | Não | Set to `true` if the component has no visible UI (see below) |
|
||||
| `command` | Não | Register the component as a command (see [command options](#command-options) below) |
|
||||
| Campo | Obrigatório | Descrição |
|
||||
| --------------------- | ----------- | ----------------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Sim | ID único e estável para este componente |
|
||||
| `component` | Sim | Uma função de componente React |
|
||||
| `name` | Não | Nome de Exibição |
|
||||
| `description` | Não | Descrição do que o componente faz |
|
||||
| `isHeadless` | Não | Defina como `true` se o componente não tiver interface visível (veja abaixo) |
|
||||
| `command` | Não | Registre o componente como um comando (veja [opções de comando](#command-options) abaixo) |
|
||||
|
||||
#### Placing a front component on a page
|
||||
#### Colocando um componente de front-end em uma página
|
||||
|
||||
Beyond commands, you can embed a front component directly into a record page by adding it as a widget in a **page layout**. See the [definePageLayout](#definepagelayout) section for details.
|
||||
Além de comandos, você pode incorporar um componente de front-end diretamente em uma página de registro adicionando-o como um widget em um **layout de página**. Veja a seção [definePageLayout](#definepagelayout) para obter detalhes.
|
||||
|
||||
#### Headless components (`isHeadless: true`)
|
||||
#### Componentes sem interface (`isHeadless: true`)
|
||||
|
||||
Headless components render no visible UI but still run React logic. This is useful for **effect components** — components that perform side effects when mounted, such as syncing data, starting a timer, listening to events, or triggering a notification.
|
||||
Componentes sem interface não renderizam nenhuma UI visível, mas ainda executam a lógica do React. Isso é útil para **componentes de efeito** — componentes que executam efeitos colaterais quando montados, como sincronizar dados, iniciar um temporizador, ouvir eventos ou disparar uma notificação.
|
||||
|
||||
```tsx src/front-components/sync-tracker.tsx
|
||||
import { defineFrontComponent, useRecordId, enqueueSnackbar } from 'twenty-sdk';
|
||||
@@ -801,11 +800,11 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Because the component returns `null`, Twenty skips rendering a container for it — no empty space appears in the layout. The component still has access to all hooks and the host communication API.
|
||||
Como o componente retorna `null`, o Twenty ignora renderizar um contêiner para ele — nenhum espaço vazio aparece no layout. O componente ainda tem acesso a todos os hooks e à API de comunicação do host.
|
||||
|
||||
#### Accessing runtime context
|
||||
#### Acessando o contexto de execução
|
||||
|
||||
Inside your component, use SDK hooks to access the current user, record, and component instance:
|
||||
Dentro do seu componente, use hooks do SDK para acessar o usuário atual, o registro e a instância do componente:
|
||||
|
||||
```tsx src/front-components/record-info.tsx
|
||||
import {
|
||||
@@ -836,47 +835,47 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Available hooks:
|
||||
Hooks disponíveis:
|
||||
|
||||
| Hook | Returns | Descrição |
|
||||
| --------------------------------------------- | ------------------ | ---------------------------------------------------------- |
|
||||
| `useUserId()` | `string` or `null` | The current user's ID |
|
||||
| `useRecordId()` | `string` or `null` | The current record's ID (when placed on a record page) |
|
||||
| `useFrontComponentId()` | `string` | This component instance's ID |
|
||||
| `useFrontComponentExecutionContext(selector)` | varia | Access the full execution context with a selector function |
|
||||
| Hook | Retorna | Descrição |
|
||||
| --------------------------------------------- | ------------------ | ------------------------------------------------------------------ |
|
||||
| `useUserId()` | `string` ou `null` | O ID do usuário atual |
|
||||
| `useRecordId()` | `string` ou `null` | O ID do registro atual (quando colocado em uma página de registro) |
|
||||
| `useFrontComponentId()` | `string` | O ID desta instância do componente |
|
||||
| `useFrontComponentExecutionContext(selector)` | varia | Acesse o contexto de execução completo com uma função seletora |
|
||||
|
||||
#### Host communication API
|
||||
#### API de comunicação do host
|
||||
|
||||
Front components can trigger navigation, modals, and notifications using functions from `twenty-sdk`:
|
||||
Componentes de front-end podem acionar navegação, modais e notificações usando funções de `twenty-sdk`:
|
||||
|
||||
| Função | Descrição |
|
||||
| ----------------------------------------------- | ----------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Navigate to a page in the app |
|
||||
| `openSidePanelPage(params)` | Open a side panel |
|
||||
| `closeSidePanel()` | Fecha o painel lateral |
|
||||
| `openCommandConfirmationModal(params)` | Show a confirmation dialog |
|
||||
| `enqueueSnackbar(params)` | Show a toast notification |
|
||||
| `unmountFrontComponent()` | Unmount the component |
|
||||
| `updateProgress(progress)` | Update a progress indicator |
|
||||
| Função | Descrição |
|
||||
| ----------------------------------------------- | ------------------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Navegar para uma página no app |
|
||||
| `openSidePanelPage(params)` | Abrir um painel lateral |
|
||||
| `closeSidePanel()` | Fecha o painel lateral |
|
||||
| `openCommandConfirmationModal(params)` | Mostrar um diálogo de confirmação |
|
||||
| `enqueueSnackbar(params)` | Mostrar uma notificação do tipo toast |
|
||||
| `unmountFrontComponent()` | Desmontar o componente |
|
||||
| `updateProgress(progress)` | Atualizar um indicador de progresso |
|
||||
|
||||
#### Command options
|
||||
#### Opções de comando
|
||||
|
||||
Adding a `command` field to `defineFrontComponent` registers the component in the command menu (Cmd+K). If `isPinned` is `true`, it also appears as a quick-action button in the top-right corner of the page.
|
||||
Adicionar um campo `command` a `defineFrontComponent` registra o componente no menu de comandos (Cmd+K). Se `isPinned` for `true`, ele também aparece como um botão de ação rápida no canto superior direito da página.
|
||||
|
||||
| Campo | Obrigatório | Descrição |
|
||||
| --------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `universalIdentifier` | Sim | Stable unique ID for the command |
|
||||
| `label` | Sim | Full label shown in the command menu (Cmd+K) |
|
||||
| `shortLabel` | Não | Shorter label displayed on the pinned quick-action button |
|
||||
| `icon` | Não | Icon name displayed next to the label (e.g. `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Não | When `true`, shows the command as a quick-action button in the top-right corner of the page |
|
||||
| `availabilityType` | Não | Controls where the command appears: `'GLOBAL'` (always available), `'RECORD_SELECTION'` (only when records are selected), or `'FALLBACK'` (shown when no other commands match) |
|
||||
| `availabilityObjectUniversalIdentifier` | Não | Restrict the command to pages of a specific object type (e.g. only on Company records) |
|
||||
| `conditionalAvailabilityExpression` | Não | A boolean expression to dynamically control whether the command is visible (see below) |
|
||||
| Campo | Obrigatório | Descrição |
|
||||
| --------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Sim | ID exclusivo e estável para o comando |
|
||||
| `label` | Sim | Rótulo completo exibido no menu de comandos (Cmd+K) |
|
||||
| `shortLabel` | Não | Rótulo mais curto exibido no botão fixado de ação rápida |
|
||||
| `icon` | Não | Nome do ícone exibido ao lado do rótulo (por exemplo, `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Não | Quando `true`, mostra o comando como um botão de ação rápida no canto superior direito da página |
|
||||
| `availabilityType` | Não | Controla onde o comando aparece: `'GLOBAL'` (sempre disponível), `'RECORD_SELECTION'` (apenas quando registros estão selecionados) ou `'FALLBACK'` (exibido quando nenhum outro comando corresponde) |
|
||||
| `availabilityObjectUniversalIdentifier` | Não | Restringe o comando a páginas de um tipo específico de objeto (por exemplo, somente em registros de Company) |
|
||||
| `conditionalAvailabilityExpression` | Não | Uma expressão booleana para controlar dinamicamente se o comando é visível (veja abaixo) |
|
||||
|
||||
#### Conditional availability expressions
|
||||
#### Expressões de disponibilidade condicional
|
||||
|
||||
The `conditionalAvailabilityExpression` field lets you control when a command is visible based on the current page context. Import typed variables and operators from `twenty-sdk` to build expressions:
|
||||
O campo `conditionalAvailabilityExpression` permite controlar quando um comando é visível com base no contexto da página atual. Importe variáveis tipadas e operadores de `twenty-sdk` para construir expressões:
|
||||
|
||||
```tsx
|
||||
import {
|
||||
@@ -905,45 +904,45 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
**Context variables** — these represent the current state of the page:
|
||||
**Variáveis de contexto** — representam o estado atual da página:
|
||||
|
||||
| Variável | Tipo | Descrição |
|
||||
| ------------------------------ | --------- | ---------------------------------------------------------------- |
|
||||
| `pageType` | `string` | Current page type (e.g. `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Whether the component is rendered in a side panel |
|
||||
| `numberOfSelectedRecords` | `number` | Number of currently selected records |
|
||||
| `isSelectAll` | `boolean` | Whether "select all" is active |
|
||||
| `selectedRecords` | `array` | The selected record objects |
|
||||
| `favoriteRecordIds` | `array` | IDs of favorited records |
|
||||
| `objectPermissions` | `object` | Permissions for the current object type |
|
||||
| `targetObjectReadPermissions` | `object` | Read permissions for the target object |
|
||||
| `targetObjectWritePermissions` | `object` | Write permissions for the target object |
|
||||
| `featureFlags` | `object` | Active feature flags |
|
||||
| `objectMetadataItem` | `object` | Metadata of the current object type |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Whether the current view has a soft-delete filter |
|
||||
| Variável | Tipo | Descrição |
|
||||
| ------------------------------ | --------- | --------------------------------------------------------------------------- |
|
||||
| `pageType` | `string` | Tipo de página atual (por exemplo, `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Se o componente é renderizado em um painel lateral |
|
||||
| `numberOfSelectedRecords` | `number` | Número de registros atualmente selecionados |
|
||||
| `isSelectAll` | `boolean` | Se "selecionar tudo" está ativo |
|
||||
| `selectedRecords` | `array` | Os objetos de registro selecionados |
|
||||
| `favoriteRecordIds` | `array` | IDs dos registros marcados como favoritos |
|
||||
| `objectPermissions` | `object` | Permissões para o tipo de objeto atual |
|
||||
| `targetObjectReadPermissions` | `object` | Permissões de leitura para o objeto alvo |
|
||||
| `targetObjectWritePermissions` | `object` | Permissões de escrita para o objeto alvo |
|
||||
| `featureFlags` | `object` | Flags de recurso ativas |
|
||||
| `objectMetadataItem` | `object` | Metadados do tipo de objeto atual |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Se a visualização atual tem um filtro de soft-delete |
|
||||
|
||||
**Operators** — combine variables into boolean expressions:
|
||||
**Operadores** — combine variáveis em expressões booleanas:
|
||||
|
||||
| Operator | Descrição |
|
||||
| ----------------------------------- | ----------------------------------------------------------------- |
|
||||
| `isDefined(value)` | `true` if the value is not null/undefined |
|
||||
| `isNonEmptyString(value)` | `true` if the value is a non-empty string |
|
||||
| `includes(array, value)` | `true` if the array contains the value |
|
||||
| `includesEvery(array, prop, value)` | `true` if every item's property includes the value |
|
||||
| `every(array, prop)` | `true` if the property is truthy on every item |
|
||||
| `everyDefined(array, prop)` | `true` if the property is defined on every item |
|
||||
| `everyEquals(array, prop, value)` | `true` if the property equals the value on every item |
|
||||
| `some(array, prop)` | `true` if the property is truthy on at least one item |
|
||||
| `someDefined(array, prop)` | `true` if the property is defined on at least one item |
|
||||
| `someEquals(array, prop, value)` | `true` if the property equals the value on at least one item |
|
||||
| `someNonEmptyString(array, prop)` | `true` if the property is a non-empty string on at least one item |
|
||||
| `none(array, prop)` | `true` if the property is falsy on every item |
|
||||
| `noneDefined(array, prop)` | `true` if the property is undefined on every item |
|
||||
| `noneEquals(array, prop, value)` | `true` if the property does not equal the value on any item |
|
||||
| Operador | Descrição |
|
||||
| ----------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `isDefined(value)` | `true` se o valor não for null/undefined |
|
||||
| `isNonEmptyString(value)` | `true` se o valor for uma string não vazia |
|
||||
| `includes(array, value)` | `true` se o array contiver o valor |
|
||||
| `includesEvery(array, prop, value)` | `true` se a propriedade de cada item incluir o valor |
|
||||
| `every(array, prop)` | `true` se a propriedade for truthy em cada item |
|
||||
| `everyDefined(array, prop)` | `true` se a propriedade estiver definida em cada item |
|
||||
| `everyEquals(array, prop, value)` | `true` se a propriedade for igual ao valor em cada item |
|
||||
| `some(array, prop)` | `true` se a propriedade for truthy em pelo menos um item |
|
||||
| `someDefined(array, prop)` | `true` se a propriedade estiver definida em pelo menos um item |
|
||||
| `someEquals(array, prop, value)` | `true` se a propriedade for igual ao valor em pelo menos um item |
|
||||
| `someNonEmptyString(array, prop)` | `true` se a propriedade for uma string não vazia em pelo menos um item |
|
||||
| `none(array, prop)` | `true` se a propriedade for falsy em cada item |
|
||||
| `noneDefined(array, prop)` | `true` se a propriedade for undefined em cada item |
|
||||
| `noneEquals(array, prop, value)` | `true` se a propriedade não for igual ao valor em nenhum item |
|
||||
|
||||
#### Public assets
|
||||
#### Recursos públicos
|
||||
|
||||
Front components can access files from the app's `public/` directory using `getPublicAssetUrl`:
|
||||
Componentes de front-end podem acessar arquivos do diretório `public/` do app usando `getPublicAssetUrl`:
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -957,18 +956,18 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
See the [public assets section](#accessing-public-assets-with-getpublicasseturl) for details.
|
||||
Veja a [seção de recursos públicos](#accessing-public-assets-with-getpublicasseturl) para obter detalhes.
|
||||
|
||||
#### Estilização
|
||||
|
||||
Front components support multiple styling approaches. You can use:
|
||||
Componentes de front-end suportam várias abordagens de estilização. Você pode usar:
|
||||
|
||||
* **Inline styles** — `style={{ color: 'red' }}`
|
||||
* **Twenty UI components** — import from `twenty-sdk/ui` (Button, Tag, Status, Chip, Avatar, and more)
|
||||
* **Emotion** — CSS-in-JS with `@emotion/react`
|
||||
* **Styled-components** — `styled.div` patterns
|
||||
* **Tailwind CSS** — utility classes
|
||||
* **Any CSS-in-JS library** compatible with React
|
||||
* **Estilos inline** — `style={{ color: 'red' }}`
|
||||
* **Componentes de UI do Twenty** — importe de `twenty-sdk/ui` (Button, Tag, Status, Chip, Avatar e mais)
|
||||
* **Emotion** — CSS-in-JS com `@emotion/react`
|
||||
* **Styled-components** — padrões `styled.div`
|
||||
* **Tailwind CSS** — classes utilitárias
|
||||
* **Qualquer biblioteca CSS-in-JS** compatível com React
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1022,9 +1021,9 @@ Pontos-chave:
|
||||
* `description` (opcional) fornece contexto adicional sobre a finalidade da habilidade.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineAgent" description="Define AI agents with custom prompts">
|
||||
<Accordion title="defineAgent" description="Defina agentes de IA com prompts personalizados">
|
||||
|
||||
Agents are AI assistants that live inside your workspace. Use `defineAgent()` to create agents with a custom system prompt:
|
||||
Agentes são assistentes de IA que vivem dentro do seu espaço de trabalho. Use `defineAgent()` para criar agentes com um prompt de sistema personalizado:
|
||||
|
||||
```ts src/agents/example-agent.ts
|
||||
import { defineAgent } from 'twenty-sdk';
|
||||
@@ -1040,17 +1039,17 @@ export default defineAgent({
|
||||
```
|
||||
|
||||
Pontos-chave:
|
||||
* `name` is the unique identifier string for the agent (kebab-case recommended).
|
||||
* `label` is the display name shown in the UI.
|
||||
* `prompt` is the system prompt that defines the agent's behavior.
|
||||
* `description` (optional) provides context about what the agent does.
|
||||
* `name` é a string de identificador exclusiva do agente (recomenda-se kebab-case).
|
||||
* `label` é o nome de exibição mostrado na UI.
|
||||
* `prompt` é o prompt do sistema que define o comportamento do agente.
|
||||
* `description` (opcional) fornece contexto sobre o que o agente faz.
|
||||
* `icon` (opcional) define o ícone exibido na UI.
|
||||
* `modelId` (optional) overrides the default AI model used by the agent.
|
||||
* `modelId` (opcional) substitui o modelo de IA padrão usado pelo agente.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineView" description="Define visualizações salvas para objetos">
|
||||
|
||||
Views are saved configurations for how records of an object are displayed — including which fields are visible, their order, and any filters or groups applied. Use `defineView()` to ship pre-configured views with your app:
|
||||
As visualizações são configurações salvas de como os registros de um objeto são exibidos — incluindo quais campos são visíveis, sua ordem e quaisquer filtros ou grupos aplicados. Use `defineView()` para enviar visualizações pré-configuradas com seu app:
|
||||
|
||||
```ts src/views/example-view.ts
|
||||
import { defineView, ViewKey } from 'twenty-sdk';
|
||||
@@ -1077,16 +1076,16 @@ export default defineView({
|
||||
```
|
||||
|
||||
Pontos-chave:
|
||||
* `objectUniversalIdentifier` specifies which object this view applies to.
|
||||
* `key` determines the view type (e.g., `ViewKey.INDEX` for the main list view).
|
||||
* `fields` controls which columns appear and their order. Each field references a `fieldMetadataUniversalIdentifier`.
|
||||
* You can also define `filters`, `filterGroups`, `groups`, and `fieldGroups` for more advanced configurations.
|
||||
* `position` controls the ordering when multiple views exist for the same object.
|
||||
* `objectUniversalIdentifier` especifica a qual objeto esta visualização se aplica.
|
||||
* `key` determina o tipo de visualização (por exemplo, `ViewKey.INDEX` para a visualização de lista principal).
|
||||
* `fields` controla quais colunas aparecem e sua ordem. Cada campo referencia um `fieldMetadataUniversalIdentifier`.
|
||||
* Você também pode definir `filters`, `filterGroups`, `groups` e `fieldGroups` para configurações mais avançadas.
|
||||
* `position` controla a ordenação quando existem várias visualizações para o mesmo objeto.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineNavigationMenuItem" description="Define links de navegação da barra lateral">
|
||||
|
||||
Navigation menu items add custom entries to the workspace sidebar. Use `defineNavigationMenuItem()` to link to views, external URLs, or objects:
|
||||
Os itens do menu de navegação adicionam entradas personalizadas à barra lateral do espaço de trabalho. Use `defineNavigationMenuItem()` para vincular a visualizações, URLs externas ou objetos:
|
||||
|
||||
```ts src/navigation-menu-items/example-navigation-menu-item.ts
|
||||
import { defineNavigationMenuItem, NavigationMenuItemType } from 'twenty-sdk';
|
||||
@@ -1104,15 +1103,15 @@ export default defineNavigationMenuItem({
|
||||
```
|
||||
|
||||
Pontos-chave:
|
||||
* `type` determines what the menu item links to: `NavigationMenuItemType.VIEW` for a saved view, or `NavigationMenuItemType.LINK` for an external URL.
|
||||
* For view links, set `viewUniversalIdentifier`. For external links, set `link`.
|
||||
* `position` controls the ordering in the sidebar.
|
||||
* `icon` and `color` (optional) customize the appearance.
|
||||
* `type` determina para o que o item de menu aponta: `NavigationMenuItemType.VIEW` para uma visualização salva ou `NavigationMenuItemType.LINK` para uma URL externa.
|
||||
* Para links de visualização, defina `viewUniversalIdentifier`. Para links externos, defina `link`.
|
||||
* `position` controla a ordenação na barra lateral.
|
||||
* `icon` e `color` (opcionais) personalizam a aparência.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="definePageLayout" description="Define custom page layouts for record views">
|
||||
<Accordion title="definePageLayout" description="Defina layouts de página personalizados para visualizações de registro">
|
||||
|
||||
Page layouts let you customize how a record detail page looks — which tabs appear, what widgets are inside each tab, and how they are arranged. Use `definePageLayout()` to ship custom layouts with your app:
|
||||
Layouts de página permitem personalizar como uma página de detalhes do registro se parece — quais abas aparecem, quais widgets estão dentro de cada aba e como eles são organizados. Use `definePageLayout()` para enviar layouts personalizados com seu app:
|
||||
|
||||
```ts src/page-layouts/example-record-page-layout.ts
|
||||
import { definePageLayout, PageLayoutTabLayoutMode } from 'twenty-sdk';
|
||||
@@ -1149,33 +1148,33 @@ export default definePageLayout({
|
||||
```
|
||||
|
||||
Pontos-chave:
|
||||
* `type` is typically `'RECORD_PAGE'` to customize the detail view of a specific object.
|
||||
* `objectUniversalIdentifier` specifies which object this layout applies to.
|
||||
* Each `tab` defines a section of the page with a `title`, `position`, and `layoutMode` (`CANVAS` for free-form layout).
|
||||
* Each `widget` inside a tab can render a front component, a relation list, or other built-in widget types.
|
||||
* `position` on tabs controls their order. Use higher values (e.g., 50) to place custom tabs after built-in ones.
|
||||
* `type` geralmente é `'RECORD_PAGE'` para personalizar a visualização de detalhes de um objeto específico.
|
||||
* `objectUniversalIdentifier` especifica a qual objeto este layout se aplica.
|
||||
* Cada `tab` define uma seção da página com um `title`, `position` e `layoutMode` (`CANVAS` para layout livre).
|
||||
* Cada `widget` dentro de uma aba pode renderizar um componente de front-end, uma lista de relações ou outros tipos de widget incorporados.
|
||||
* `position` nas abas controla sua ordem. Use valores mais altos (por exemplo, 50) para colocar abas personalizadas após as nativas.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Public assets (`public/` folder)
|
||||
## Recursos públicos (pasta `public/`)
|
||||
|
||||
The `public/` folder at the root of your app holds static files — images, icons, fonts, or any other assets your app needs at runtime. These files are automatically included in builds, synced during dev mode, and uploaded to the server.
|
||||
A pasta `public/` na raiz do seu app contém arquivos estáticos — imagens, ícones, fontes ou quaisquer outros recursos de que seu app precisa em tempo de execução. Esses arquivos são incluídos automaticamente nas compilações, sincronizados durante o modo de desenvolvimento e enviados para o servidor.
|
||||
|
||||
Files placed in `public/` are:
|
||||
Arquivos colocados em `public/` são:
|
||||
|
||||
* **Publicly accessible** — once synced to the server, assets are served at a public URL. No authentication is needed to access them.
|
||||
* **Available in front components** — use asset URLs to display images, icons, or any media inside your React components.
|
||||
* **Available in logic functions** — reference asset URLs in emails, API responses, or any server-side logic.
|
||||
* **Used for marketplace metadata** — the `logoUrl` and `screenshots` fields in `defineApplication()` reference files from this folder (e.g., `public/logo.png`). These are displayed in the marketplace when your app is published.
|
||||
* **Auto-synced in dev mode** — when you add, update, or delete a file in `public/`, it is synced to the server automatically. No restart needed.
|
||||
* **Included in builds** — `yarn twenty build` bundles all public assets into the distribution output.
|
||||
* **Publicamente acessíveis** — depois de sincronizados com o servidor, os recursos são servidos em uma URL pública. Não é necessária autenticação para acessá-los.
|
||||
* **Disponíveis em componentes de front-end** — use URLs de recursos para exibir imagens, ícones ou qualquer mídia dentro de seus componentes React.
|
||||
* **Disponíveis em funções lógicas** — referencie URLs de recursos em e-mails, respostas de API ou qualquer lógica no lado do servidor.
|
||||
* **Usados para metadados do marketplace** — os campos `logoUrl` e `screenshots` em `defineApplication()` referenciam arquivos desta pasta (por exemplo, `public/logo.png`). Eles são exibidos no marketplace quando seu app é publicado.
|
||||
* **Sincronizados automaticamente no modo de desenvolvimento** — quando você adiciona, atualiza ou exclui um arquivo em `public/`, ele é sincronizado automaticamente com o servidor. Não é necessário reiniciar.
|
||||
* **Incluídos nas compilações** — `yarn twenty build` agrupa todos os recursos públicos na saída de distribuição.
|
||||
|
||||
### Accessing public assets with `getPublicAssetUrl`
|
||||
### Acessando recursos públicos com `getPublicAssetUrl`
|
||||
|
||||
Use the `getPublicAssetUrl` helper from `twenty-sdk` to get the full URL of a file in your `public/` directory. It works in both **logic functions** and **front components**.
|
||||
Use o helper `getPublicAssetUrl` de `twenty-sdk` para obter a URL completa de um arquivo no seu diretório `public/`. Funciona tanto em **funções lógicas** quanto em **componentes de front-end**.
|
||||
|
||||
**In a logic function:**
|
||||
**Em uma função lógica:**
|
||||
|
||||
```ts src/logic-functions/send-invoice.ts
|
||||
import { defineLogicFunction, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1200,7 +1199,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
**In a front component:**
|
||||
**Em um componente de front-end:**
|
||||
|
||||
```tsx src/front-components/company-card.tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1212,19 +1211,19 @@ export default defineFrontComponent(() => {
|
||||
});
|
||||
```
|
||||
|
||||
The `path` argument is relative to your app's `public/` folder. Both `getPublicAssetUrl('logo.png')` and `getPublicAssetUrl('public/logo.png')` resolve to the same URL — the `public/` prefix is stripped automatically if present.
|
||||
O argumento `path` é relativo à pasta `public/` do seu app. Tanto `getPublicAssetUrl('logo.png')` quanto `getPublicAssetUrl('public/logo.png')` resolvem para a mesma URL — o prefixo `public/` é removido automaticamente, se presente.
|
||||
|
||||
## Using npm packages
|
||||
## Usando pacotes npm
|
||||
|
||||
You can install and use any npm package in your app. Both logic functions and front components are bundled with [esbuild](https://esbuild.github.io/), which inlines all dependencies into the output — no `node_modules` are needed at runtime.
|
||||
Você pode instalar e usar qualquer pacote npm no seu app. Tanto funções lógicas quanto componentes de front-end são empacotados com [esbuild](https://esbuild.github.io/), que incorpora todas as dependências na saída — nenhum `node_modules` é necessário em tempo de execução.
|
||||
|
||||
### Installing a package
|
||||
### Instalando um pacote
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add axios
|
||||
```
|
||||
|
||||
Then import it in your code:
|
||||
Em seguida, importe-o no seu código:
|
||||
|
||||
```ts src/logic-functions/fetch-data.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -1245,7 +1244,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
The same works for front components:
|
||||
O mesmo vale para componentes de front-end:
|
||||
|
||||
```tsx src/front-components/chart.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1262,27 +1261,27 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
### How bundling works
|
||||
### Como o empacotamento funciona
|
||||
|
||||
The build step (`yarn twenty dev` or `yarn twenty build`) uses esbuild to produce a single self-contained file per logic function and per front component. All imported packages are inlined into the bundle.
|
||||
A etapa de build (`yarn twenty dev` ou `yarn twenty build`) usa o esbuild para produzir um único arquivo independente por função lógica e por componente de front-end. Todos os pacotes importados são incorporados ao bundle.
|
||||
|
||||
**Logic functions** run in a Node.js environment. Node built-in modules (`fs`, `path`, `crypto`, `http`, etc.) are available and do not need to be installed.
|
||||
**Funções lógicas** são executadas em um ambiente Node.js. Módulos nativos do Node (`fs`, `path`, `crypto`, `http`, etc.) estão disponíveis e não precisam ser instalados.
|
||||
|
||||
**Front components** run in a Web Worker. Node built-in modules are **not** available — only browser APIs and npm packages that work in a browser environment.
|
||||
**Componentes de front-end** são executados em um Web Worker. Módulos nativos do Node **não** estão disponíveis — apenas APIs do navegador e pacotes npm que funcionam em um ambiente de navegador.
|
||||
|
||||
Both environments have `twenty-client-sdk/core` and `twenty-client-sdk/metadata` available as pre-provided modules — these are not bundled but resolved at runtime by the server.
|
||||
Ambos os ambientes têm `twenty-client-sdk/core` e `twenty-client-sdk/metadata` disponíveis como módulos pré-fornecidos — eles não são empacotados, mas resolvidos em tempo de execução pelo servidor.
|
||||
|
||||
## Scaffolding entities with `yarn twenty add`
|
||||
## Gerando entidades com `yarn twenty add`
|
||||
|
||||
Instead of creating entity files by hand, you can use the interactive scaffolder:
|
||||
Em vez de criar arquivos de entidade manualmente, você pode usar o scaffolder interativo:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add
|
||||
```
|
||||
|
||||
This prompts you to pick an entity type and walks you through the required fields. It generates a ready-to-use file with a stable `universalIdentifier` and the correct `defineEntity()` call.
|
||||
Isso solicita que você escolha um tipo de entidade e orienta você pelos campos obrigatórios. Ele gera um arquivo pronto para uso com um `universalIdentifier` estável e a chamada correta de `defineEntity()`.
|
||||
|
||||
You can also pass the entity type directly to skip the first prompt:
|
||||
Você também pode passar o tipo de entidade diretamente para pular o primeiro prompt:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add object
|
||||
@@ -1290,44 +1289,44 @@ yarn twenty add logicFunction
|
||||
yarn twenty add frontComponent
|
||||
```
|
||||
|
||||
### Available entity types
|
||||
### Tipos de entidade disponíveis
|
||||
|
||||
| Tipo de entidade | Comando | Generated file |
|
||||
| -------------------- | ------------------------------------ | ------------------------------------- |
|
||||
| Objeto | `yarn twenty add object` | `src/objects/<name>.ts` |
|
||||
| Campo | `yarn twenty add field` | `src/fields/<name>.ts` |
|
||||
| Logic function | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Front component | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Função | `yarn twenty add role` | `src/roles/<name>.ts` |
|
||||
| Habilidade | `yarn twenty add skill` | `src/skills/<name>.ts` |
|
||||
| Agente | `yarn twenty add agent` | `src/agents/<name>.ts` |
|
||||
| Vista | `yarn twenty add view` | `src/views/<name>.ts` |
|
||||
| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
| Tipo de entidade | Comando | Arquivo gerado |
|
||||
| ------------------------- | ------------------------------------ | ------------------------------------- |
|
||||
| Objeto | `yarn twenty add object` | `src/objects/<name>.ts` |
|
||||
| Campo | `yarn twenty add field` | `src/fields/<name>.ts` |
|
||||
| Função lógica | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Componente de front-end | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Função | `yarn twenty add role` | `src/roles/<name>.ts` |
|
||||
| Habilidade | `yarn twenty add skill` | `src/skills/<name>.ts` |
|
||||
| Agente | `yarn twenty add agent` | `src/agents/<name>.ts` |
|
||||
| Vista | `yarn twenty add view` | `src/views/<name>.ts` |
|
||||
| Item do menu de navegação | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Layout da página | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
|
||||
### What the scaffolder generates
|
||||
### O que o scaffolder gera
|
||||
|
||||
Each entity type has its own template. For example, `yarn twenty add object` asks for:
|
||||
Cada tipo de entidade tem seu próprio modelo. Por exemplo, `yarn twenty add object` solicita:
|
||||
|
||||
1. **Name (singular)** — e.g., `invoice`
|
||||
2. **Name (plural)** — e.g., `invoices`
|
||||
3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`)
|
||||
4. **Label (plural)** — auto-populated (e.g., `Invoices`)
|
||||
5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object.
|
||||
1. **Nome (singular)** — por exemplo, `invoice`
|
||||
2. **Nome (plural)** — por exemplo, `invoices`
|
||||
3. **Rótulo (singular)** — preenchido automaticamente a partir do nome (por exemplo, `Invoice`)
|
||||
4. **Rótulo (plural)** — preenchido automaticamente (por exemplo, `Invoices`)
|
||||
5. **Criar uma view e um item de navegação?** — se você responder sim, o scaffolder também gera uma view correspondente e um link na barra lateral para o novo objeto.
|
||||
|
||||
Other entity types have simpler prompts — most only ask for a name.
|
||||
Outros tipos de entidade têm prompts mais simples — a maioria pede apenas um nome.
|
||||
|
||||
The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`.
|
||||
O tipo de entidade `field` é mais detalhado: ele solicita o nome do campo, rótulo, tipo (a partir de uma lista de todos os tipos de campo disponíveis como `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.) e o `universalIdentifier` do objeto de destino.
|
||||
|
||||
### Custom output path
|
||||
### Caminho de saída personalizado
|
||||
|
||||
Use the `--path` flag to place the generated file in a custom location:
|
||||
Use a opção `--path` para colocar o arquivo gerado em um local personalizado:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add logicFunction --path src/custom-folder
|
||||
```
|
||||
|
||||
## Typed API clients (twenty-client-sdk)
|
||||
## Clientes de API tipados (twenty-client-sdk)
|
||||
|
||||
O pacote `twenty-client-sdk` fornece dois clientes GraphQL tipados para interagir com a API do Twenty a partir das suas funções de lógica e componentes de front-end.
|
||||
|
||||
@@ -1337,9 +1336,9 @@ O pacote `twenty-client-sdk` fornece dois clientes GraphQL tipados para interagi
|
||||
| `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — configuração do espaço de trabalho, upload de arquivos | Não, vem pré-compilado |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="CoreApiClient" description="Query and mutate workspace data (records, objects)">
|
||||
<Accordion title="CoreApiClient" description="Consultar e modificar dados do espaço de trabalho (registros, objetos)">
|
||||
|
||||
`CoreApiClient` é o cliente principal para consultar e mutar dados do espaço de trabalho. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields.
|
||||
`CoreApiClient` é o cliente principal para consultar e mutar dados do espaço de trabalho. Ele é **gerado a partir do schema do seu espaço de trabalho** durante `yarn twenty dev` ou `yarn twenty build`, então é totalmente tipado para corresponder aos seus objetos e campos.
|
||||
|
||||
```ts
|
||||
import { CoreApiClient } from 'twenty-client-sdk/core';
|
||||
@@ -1379,12 +1378,12 @@ const { createCompany } = await client.mutation({
|
||||
O cliente usa uma sintaxe de selection-set: passe `true` para incluir um campo, use `__args` para argumentos e aninhe objetos para relações. Você tem preenchimento automático e verificação de tipos completos com base no schema do seu espaço de trabalho.
|
||||
|
||||
<Note>
|
||||
**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`.
|
||||
**CoreApiClient é gerado em tempo de dev/build.** Se você usá-lo sem executar primeiro `yarn twenty dev` ou `yarn twenty build`, ele lançará um erro. A geração ocorre automaticamente — a CLI analisa o schema GraphQL do seu espaço de trabalho e gera um cliente tipado usando `@genql/cli`.
|
||||
</Note>
|
||||
|
||||
#### Usando CoreSchema para anotações de tipo
|
||||
|
||||
`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters:
|
||||
`CoreSchema` fornece tipos TypeScript que correspondem aos objetos do seu espaço de trabalho — útil para tipar o estado de componentes ou parâmetros de função:
|
||||
|
||||
```ts
|
||||
import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core';
|
||||
@@ -1406,7 +1405,7 @@ setCompany(result.company);
|
||||
```
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="MetadataApiClient" description="Workspace config, applications, and file uploads">
|
||||
<Accordion title="MetadataApiClient" description="Configuração do espaço de trabalho, aplicativos e upload de arquivos">
|
||||
|
||||
`MetadataApiClient` é fornecido pré-compilado com o SDK (não é necessário gerar). Ele consulta o endpoint `/metadata` para configuração do espaço de trabalho, aplicativos e upload de arquivos.
|
||||
|
||||
@@ -1462,7 +1461,7 @@ console.log(uploadedFile);
|
||||
| ---------------------------------- | -------- | -------------------------------------------------------------- |
|
||||
| `fileBuffer` | `Buffer` | O conteúdo bruto do arquivo |
|
||||
| `filename` | `string` | O nome do arquivo (usado para armazenamento e exibição) |
|
||||
| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) |
|
||||
| `contentType` | `string` | Tipo MIME (padrão para `application/octet-stream` se omitido) |
|
||||
| `fieldMetadataUniversalIdentifier` | `string` | O `universalIdentifier` do campo do tipo arquivo no seu objeto |
|
||||
|
||||
Pontos-chave:
|
||||
@@ -1476,24 +1475,24 @@ Pontos-chave:
|
||||
Quando seu código é executado no Twenty (funções de lógica ou componentes de front-end), a plataforma injeta credenciais como variáveis de ambiente:
|
||||
|
||||
* `TWENTY_API_URL` — URL base da API do Twenty
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — Chave de curta duração com escopo para o papel de função padrão do seu aplicativo
|
||||
|
||||
Você **não** precisa passá-las para os clientes — eles leem de `process.env` automaticamente. As permissões da chave de API são determinadas pelo papel referenciado em `defaultRoleUniversalIdentifier` no seu `application-config.ts`.
|
||||
</Note>
|
||||
|
||||
## Testing your app
|
||||
## Testando seu aplicativo
|
||||
|
||||
The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server.
|
||||
O SDK fornece APIs programáticas que permitem compilar, implantar, instalar e desinstalar seu aplicativo a partir de código de teste. Em conjunto com [Vitest](https://vitest.dev/) e os clientes de API tipados, você pode escrever testes de integração que verificam que seu aplicativo funciona de ponta a ponta em um servidor Twenty real.
|
||||
|
||||
### Configuração
|
||||
|
||||
The scaffolded app already includes Vitest. If you set it up manually, install the dependencies:
|
||||
O aplicativo gerado pelo scaffolder já inclui o Vitest. Se você configurá-lo manualmente, instale as dependências:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add -D vitest vite-tsconfig-paths
|
||||
```
|
||||
|
||||
Create a `vitest.config.ts` at the root of your app:
|
||||
Crie um `vitest.config.ts` na raiz do seu aplicativo:
|
||||
|
||||
```ts vitest.config.ts
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
@@ -1519,7 +1518,7 @@ export default defineConfig({
|
||||
});
|
||||
```
|
||||
|
||||
Create a setup file that verifies the server is reachable before tests run:
|
||||
Crie um arquivo de configuração que verifique se o servidor está acessível antes da execução dos testes:
|
||||
|
||||
```ts src/__tests__/setup-test.ts
|
||||
import * as fs from 'fs';
|
||||
@@ -1559,22 +1558,22 @@ beforeAll(async () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Programmatic SDK APIs
|
||||
### APIs programáticas do SDK
|
||||
|
||||
The `twenty-sdk/cli` subpath exports functions you can call directly from test code:
|
||||
O subcaminho `twenty-sdk/cli` exporta funções que você pode chamar diretamente a partir do código de teste:
|
||||
|
||||
| Função | Descrição |
|
||||
| -------------- | ------------------------------------------- |
|
||||
| `appBuild` | Build the app and optionally pack a tarball |
|
||||
| `appDeploy` | Upload a tarball to the server |
|
||||
| `appInstall` | Install the app on the active workspace |
|
||||
| `appUninstall` | Uninstall the app from the active workspace |
|
||||
| Função | Descrição |
|
||||
| -------------- | ------------------------------------------------------------ |
|
||||
| `appBuild` | Compilar o aplicativo e, opcionalmente, empacotar um tarball |
|
||||
| `appDeploy` | Enviar um tarball para o servidor |
|
||||
| `appInstall` | Instalar o aplicativo no espaço de trabalho ativo |
|
||||
| `appUninstall` | Desinstalar o aplicativo do espaço de trabalho ativo |
|
||||
|
||||
Each function returns a result object with `success: boolean` and either `data` or `error`.
|
||||
Cada função retorna um objeto de resultado com `success: boolean` e `data` ou `error`.
|
||||
|
||||
### Writing an integration test
|
||||
### Escrevendo um teste de integração
|
||||
|
||||
Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace:
|
||||
Aqui está um exemplo completo que compila, implanta e instala o aplicativo e, em seguida, verifica se ele aparece no espaço de trabalho:
|
||||
|
||||
```ts src/__tests__/app-install.integration-test.ts
|
||||
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config';
|
||||
@@ -1637,37 +1636,37 @@ describe('App installation', () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Running tests
|
||||
### Executando testes
|
||||
|
||||
Make sure your local Twenty server is running, then:
|
||||
Certifique-se de que seu servidor Twenty local esteja em execução e, em seguida:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test
|
||||
```
|
||||
|
||||
Or in watch mode during development:
|
||||
Ou no modo watch durante o desenvolvimento:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test:watch
|
||||
```
|
||||
|
||||
### Type checking
|
||||
### Verificação de tipos
|
||||
|
||||
You can also run type checking on your app without running tests:
|
||||
Você também pode executar a verificação de tipos no seu aplicativo sem executar os testes:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty typecheck
|
||||
```
|
||||
|
||||
This runs `tsc --noEmit` and reports any type errors.
|
||||
Isso executa `tsc --noEmit` e informa quaisquer erros de tipo.
|
||||
|
||||
## Referência da CLI
|
||||
|
||||
Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations.
|
||||
Além de `dev`, `build`, `add` e `typecheck`, a CLI fornece comandos para executar funções, visualizar logs e gerenciar instalações de aplicativos.
|
||||
|
||||
### Executing functions (`yarn twenty exec`)
|
||||
### Executando funções (`yarn twenty exec`)
|
||||
|
||||
Run a logic function manually without triggering it via HTTP, cron, or database event:
|
||||
Execute manualmente uma função de lógica sem acioná-la via HTTP, cron ou evento de banco de dados:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Execute by function name
|
||||
@@ -1684,9 +1683,9 @@ yarn twenty exec --preInstall
|
||||
yarn twenty exec --postInstall
|
||||
```
|
||||
|
||||
### Viewing function logs (`yarn twenty logs`)
|
||||
### Visualizando logs de funções (`yarn twenty logs`)
|
||||
|
||||
Stream execution logs for your app's logic functions:
|
||||
Transmita os logs de execução das funções de lógica do seu aplicativo:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Stream all function logs
|
||||
@@ -1700,12 +1699,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
<Note>
|
||||
This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server.
|
||||
Isso é diferente de `yarn twenty server logs`, que mostra os logs do contêiner Docker. `yarn twenty logs` mostra os logs de execução de funções do seu aplicativo a partir do servidor Twenty.
|
||||
</Note>
|
||||
|
||||
### Uninstalling an app (`yarn twenty uninstall`)
|
||||
### Desinstalando um aplicativo (`yarn twenty uninstall`)
|
||||
|
||||
Remove your app from the active workspace:
|
||||
Remova seu aplicativo do espaço de trabalho ativo:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty uninstall
|
||||
|
||||
@@ -4,142 +4,142 @@ description: Crie seu primeiro app do Twenty em minutos.
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Os aplicativos estão atualmente em testes alfa. O recurso é funcional, mas ainda está evoluindo.
|
||||
</Warning>
|
||||
|
||||
Os apps permitem que você estenda o Twenty com objetos, campos, funções de lógica, habilidades de IA e componentes de UI personalizados — tudo gerenciado como código.
|
||||
|
||||
## Pré-requisitos
|
||||
|
||||
Before you begin, make sure the following is installed on your machine:
|
||||
Antes de começar, verifique se o seguinte está instalado na sua máquina:
|
||||
|
||||
* **Node.js 24+** — [Download here](https://nodejs.org/)
|
||||
* **Yarn 4** — Comes with Node.js via Corepack. Enable it by running `corepack enable`
|
||||
* **Docker** — [Download here](https://www.docker.com/products/docker-desktop/). Required to run a local Twenty instance. Not needed if you already have a Twenty server running.
|
||||
* **Node.js 24+** — [Baixe aqui](https://nodejs.org/)
|
||||
* **Yarn 4** — Vem com o Node.js via Corepack. Ative-o executando `corepack enable`
|
||||
* **Docker** — [Baixe aqui](https://www.docker.com/products/docker-desktop/). Necessário para executar uma instância local do Twenty. Não é necessário se você já tiver um servidor Twenty em execução.
|
||||
|
||||
## Step 1: Scaffold your app
|
||||
## Passo 1: Gere o scaffold do seu aplicativo
|
||||
|
||||
Open a terminal and run:
|
||||
Abra um terminal e execute:
|
||||
|
||||
```bash filename="Terminal"
|
||||
npx create-twenty-app@latest my-twenty-app
|
||||
```
|
||||
|
||||
You will be prompted to enter a name and a description for your app. Press **Enter** to accept the defaults.
|
||||
Será solicitado que você informe um nome e uma descrição para o seu aplicativo. Pressione **Enter** para aceitar os valores padrão.
|
||||
|
||||
This creates a new folder called `my-twenty-app` with everything you need.
|
||||
Isso cria uma nova pasta chamada `my-twenty-app` com tudo de que você precisa.
|
||||
|
||||
<Note>
|
||||
The scaffolder supports these flags:
|
||||
O gerador de scaffold oferece suporte a estas flags:
|
||||
|
||||
* `--minimal` — scaffold only the essential files, no examples (default)
|
||||
* `--exhaustive` — scaffold all example entities
|
||||
* `--name <name>` — set the app name (skips the prompt)
|
||||
* `--display-name <displayName>` — set the display name (skips the prompt)
|
||||
* `--description <description>` — set the description (skips the prompt)
|
||||
* `--skip-local-instance` — skip the local server setup prompt
|
||||
* `--minimal` — gera apenas os arquivos essenciais, sem exemplos (padrão)
|
||||
* `--exhaustive` — gera todas as entidades de exemplo
|
||||
* `--name <name>` — define o nome do aplicativo (pula o prompt)
|
||||
* `--display-name <displayName>` — define o nome de exibição (pula o prompt)
|
||||
* `--description <description>` — define a descrição (pula o prompt)
|
||||
* `--skip-local-instance` — ignora o prompt de configuração do servidor local
|
||||
</Note>
|
||||
|
||||
## Step 2: Set up a local Twenty instance
|
||||
## Passo 2: Configure uma instância local do Twenty
|
||||
|
||||
The scaffolder will ask:
|
||||
O gerador de scaffold perguntará:
|
||||
|
||||
> **Would you like to set up a local Twenty instance?**
|
||||
> **Você gostaria de configurar uma instância local do Twenty?**
|
||||
|
||||
* **Type `yes`** (recommended) — This pulls the `twenty-app-dev` Docker image and starts a local Twenty server on port `2020`. Make sure Docker is running before you continue.
|
||||
* **Type `no`** — Choose this if you already have a Twenty server running locally.
|
||||
* **Digite `yes`** (recomendado) — Isso baixa a imagem Docker `twenty-app-dev` e inicia um servidor Twenty local na porta `2020`. Certifique-se de que o Docker esteja em execução antes de continuar.
|
||||
* **Digite `no`** — Escolha esta opção se você já tiver um servidor Twenty em execução localmente.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Should start local instance?" />
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Deve iniciar instância local?" />
|
||||
</div>
|
||||
|
||||
## Step 3: Sign in to your workspace
|
||||
## Passo 3: Faça login no seu espaço de trabalho
|
||||
|
||||
Next, a browser window will open with the Twenty login page. Sign in with the pre-seeded demo account:
|
||||
Em seguida, uma janela do navegador será aberta com a página de login do Twenty. Faça login com a conta de demonstração pré-configurada:
|
||||
|
||||
* **Email:** `tim@apple.dev`
|
||||
* **Password:** `tim@apple.dev`
|
||||
* **E-mail:** `tim@apple.dev`
|
||||
* **Senha:** `tim@apple.dev`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty login screen" />
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Tela de login do Twenty" />
|
||||
</div>
|
||||
|
||||
## Step 4: Authorize the app
|
||||
## Passo 4: Autorize o aplicativo
|
||||
|
||||
After you sign in, you will see an authorization screen. This lets your app interact with your workspace.
|
||||
Após fazer login, você verá uma tela de autorização. Isso permite que seu aplicativo interaja com seu espaço de trabalho.
|
||||
|
||||
Click **Authorize** to continue.
|
||||
Clique em **Authorize** para continuar.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI authorization screen" />
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Tela de autorização da CLI do Twenty" />
|
||||
</div>
|
||||
|
||||
Once authorized, your terminal will confirm that everything is set up.
|
||||
Depois de autorizado, seu terminal confirmará que tudo está configurado.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="App scaffolded successfully" />
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="Scaffold do aplicativo criado com sucesso" />
|
||||
</div>
|
||||
|
||||
## Step 5: Start developing
|
||||
## Passo 5: Comece a desenvolver
|
||||
|
||||
Go into your new app folder and start the development server:
|
||||
Entre na nova pasta do seu aplicativo e inicie o servidor de desenvolvimento:
|
||||
|
||||
```bash filename="Terminal"
|
||||
cd my-twenty-app
|
||||
yarn twenty dev
|
||||
```
|
||||
|
||||
This watches your source files, rebuilds on every change, and syncs your app to the local Twenty server automatically. You should see a live status panel in your terminal.
|
||||
Isso observa seus arquivos-fonte, recompila a cada alteração e sincroniza seu aplicativo com o servidor Twenty local automaticamente. Você deverá ver um painel de status em tempo real no seu terminal.
|
||||
|
||||
For more detailed output (build logs, sync requests, error traces), use the `--verbose` flag:
|
||||
Para uma saída mais detalhada (logs de build, solicitações de sincronização, rastros de erro), use a flag `--verbose`:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --verbose
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests. Use `yarn twenty deploy` to deploy to production servers — see [Publishing Apps](/l/pt/developers/extend/apps/publishing) for details.
|
||||
O modo de desenvolvimento só está disponível em instâncias do Twenty em modo de desenvolvimento (`NODE_ENV=development`). Instâncias de produção rejeitam solicitações de sincronização de desenvolvimento. Use `yarn twenty deploy` para fazer o deploy em servidores de produção — veja [Publicando aplicativos](/l/pt/developers/extend/apps/publishing) para detalhes.
|
||||
</Warning>
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Dev mode terminal output" />
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Saída do terminal no modo de desenvolvimento" />
|
||||
</div>
|
||||
|
||||
## Step 6: See your app in Twenty
|
||||
## Passo 6: Veja seu aplicativo no Twenty
|
||||
|
||||
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
|
||||
Abra [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) no seu navegador. Navegue até **Settings > Apps** e selecione a aba **Developer**. Você deverá ver seu aplicativo listado em **Your Apps**:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Lista Your Apps exibindo My twenty app" />
|
||||
</div>
|
||||
|
||||
Click on **My twenty app** to open its **application registration**. A registration is a server-level record that describes your app — its name, unique identifier, OAuth credentials, and source (local, npm, or tarball). It lives on the server, not inside any specific workspace. When you install an app into a workspace, Twenty creates a workspace-scoped **application** that points back to this registration. One registration can be installed across multiple workspaces on the same server.
|
||||
Clique em **My twenty app** para abrir o seu **registro do aplicativo**. Um registro é um registro em nível de servidor que descreve seu aplicativo — seu nome, identificador exclusivo, credenciais OAuth e origem (local, npm ou tarball). Ele reside no servidor, não dentro de nenhum espaço de trabalho específico. Quando você instala um aplicativo em um espaço de trabalho, o Twenty cria uma **aplicação** com escopo do espaço de trabalho que aponta para esse registro. Um registro pode ser instalado em vários espaços de trabalho no mesmo servidor.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Detalhes do registro do aplicativo" />
|
||||
</div>
|
||||
|
||||
Click **View installed app** to see the installed app. The **About** tab shows the current version and management options:
|
||||
Clique em **View installed app** para ver o aplicativo instalado. A aba **About** mostra a versão atual e as opções de gerenciamento:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app — About tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Aplicativo instalado — aba About" />
|
||||
</div>
|
||||
|
||||
Switch to the **Content** tab to see everything your app provides — objects, fields, logic functions, and agents:
|
||||
Altere para a aba **Content** para ver tudo o que seu aplicativo oferece — objetos, campos, funções de lógica e agentes:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Installed app — Content tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Aplicativo instalado — aba Content" />
|
||||
</div>
|
||||
|
||||
You are all set! Edit any file in `src/` and the changes will be picked up automatically.
|
||||
Tudo pronto! Edite qualquer arquivo em `src/` e as alterações serão detectadas automaticamente.
|
||||
|
||||
Head over to [Building Apps](/l/pt/developers/extend/apps/building) for a detailed guide on creating objects, logic functions, front components, skills, and more.
|
||||
Acesse [Criando aplicativos](/l/pt/developers/extend/apps/building) para um guia detalhado sobre criação de objetos, funções de lógica, componentes de front-end, habilidades e mais.
|
||||
|
||||
---
|
||||
|
||||
## Project structure
|
||||
## Estrutura do projeto
|
||||
|
||||
The scaffolder generates the following file structure (shown with `--exhaustive` mode, which includes examples for every entity type):
|
||||
O gerador de scaffold cria a seguinte estrutura de arquivos (mostrada com o modo `--exhaustive`, que inclui exemplos para cada tipo de entidade):
|
||||
|
||||
```text filename="my-twenty-app/"
|
||||
my-twenty-app/
|
||||
@@ -190,30 +190,30 @@ my-twenty-app/
|
||||
└── example-agent.ts # Example AI agent definition
|
||||
```
|
||||
|
||||
By default (`--minimal`), only the core files are created: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts`, and `logic-functions/post-install.ts`. Use `--exhaustive` to include all the example files shown above.
|
||||
Por padrão (`--minimal`), apenas os arquivos principais são criados: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts` e `logic-functions/post-install.ts`. Use `--exhaustive` para incluir todos os arquivos de exemplo mostrados acima.
|
||||
|
||||
### Key files
|
||||
### Arquivos principais
|
||||
|
||||
| File / Folder | Finalidade |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `package.json` | Declares your app name, version, and dependencies. Includes a `twenty` script so you can run `yarn twenty help` to see all commands. |
|
||||
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
|
||||
| `src/roles/` | Defines roles that control what your logic functions can access. |
|
||||
| `src/logic-functions/` | Server-side functions triggered by routes, cron schedules, or database events. |
|
||||
| `src/front-components/` | React components that render inside Twenty's UI. |
|
||||
| `src/objects/` | Custom object definitions to extend your data model. |
|
||||
| `src/fields/` | Custom fields added to existing objects. |
|
||||
| `src/views/` | Saved view configurations. |
|
||||
| `src/navigation-menu-items/` | Custom links in the sidebar navigation. |
|
||||
| `src/skills/` | Habilidades que estendem os agentes de IA do Twenty. |
|
||||
| `src/agents/` | AI agents with custom prompts. |
|
||||
| `src/page-layouts/` | Custom page layouts for record views. |
|
||||
| `src/__tests__/` | Integration tests (setup + example test). |
|
||||
| `public/` | Static assets (images, fonts) served with your app. |
|
||||
| Arquivo / Pasta | Finalidade |
|
||||
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `package.json` | Declara o nome, a versão e as dependências do seu aplicativo. Inclui um script `twenty` para que você possa executar `yarn twenty help` e ver todos os comandos. |
|
||||
| `src/application-config.ts` | **Obrigatório.** O principal arquivo de configuração do seu aplicativo. |
|
||||
| `src/roles/` | Define papéis que controlam o que suas funções de lógica podem acessar. |
|
||||
| `src/logic-functions/` | Funções do lado do servidor acionadas por rotas, agendamentos do cron ou eventos de banco de dados. |
|
||||
| `src/front-components/` | Componentes React que renderizam dentro da interface do Twenty. |
|
||||
| `src/objects/` | Definições de objetos personalizados para estender seu modelo de dados. |
|
||||
| `src/fields/` | Campos personalizados adicionados a objetos existentes. |
|
||||
| `src/views/` | Configurações de visualizações salvas. |
|
||||
| `src/navigation-menu-items/` | Links personalizados na navegação da barra lateral. |
|
||||
| `src/skills/` | Habilidades que estendem os agentes de IA do Twenty. |
|
||||
| `src/agents/` | Agentes de IA com prompts personalizados. |
|
||||
| `src/page-layouts/` | Layouts de página personalizados para visualizações de registros. |
|
||||
| `src/__tests__/` | Testes de integração (configuração + teste de exemplo). |
|
||||
| `public/` | Recursos estáticos (imagens, fontes) servidos com seu aplicativo. |
|
||||
|
||||
## Managing remotes
|
||||
## Gerenciando remotos
|
||||
|
||||
A **remote** is a Twenty server that your app connects to. During setup, the scaffolder creates one for you automatically. You can add more remotes or switch between them at any time.
|
||||
Um **remoto** é um servidor Twenty ao qual seu aplicativo se conecta. Durante a configuração, o gerador de scaffold cria um para você automaticamente. Você pode adicionar mais remotos ou alternar entre eles a qualquer momento.
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Add a new remote (opens a browser for OAuth login)
|
||||
@@ -232,11 +232,11 @@ yarn twenty remote list
|
||||
yarn twenty remote switch <name>
|
||||
```
|
||||
|
||||
Your credentials are stored in `~/.twenty/config.json`.
|
||||
Suas credenciais são armazenadas em `~/.twenty/config.json`.
|
||||
|
||||
## Local development server (`yarn twenty server`)
|
||||
## Servidor de desenvolvimento local (`yarn twenty server`)
|
||||
|
||||
The CLI can manage a local Twenty server running in Docker. This is the same server started automatically when you scaffold an app with `create-twenty-app`, but you can also manage it manually.
|
||||
A CLI pode gerenciar um servidor Twenty local em execução no Docker. Este é o mesmo servidor iniciado automaticamente quando você cria o scaffold de um aplicativo com `create-twenty-app`, mas você também pode gerenciá-lo manualmente.
|
||||
|
||||
### Iniciando o servidor
|
||||
|
||||
@@ -244,85 +244,85 @@ The CLI can manage a local Twenty server running in Docker. This is the same ser
|
||||
yarn twenty server start
|
||||
```
|
||||
|
||||
This pulls the `twentycrm/twenty-app-dev:latest` Docker image (if not already present), creates a container named `twenty-app-dev`, and starts it on port **2020**. The CLI waits until the server passes its health check before returning.
|
||||
Isso baixa a imagem Docker `twentycrm/twenty-app-dev:latest` (se ainda não estiver presente), cria um contêiner chamado `twenty-app-dev` e o inicia na porta **2020**. A CLI aguarda até que o servidor passe na verificação de integridade antes de retornar.
|
||||
|
||||
Two Docker volumes are created to persist data between restarts:
|
||||
Dois volumes do Docker são criados para persistir os dados entre reinicializações:
|
||||
|
||||
* `twenty-app-dev-data` — PostgreSQL database
|
||||
* `twenty-app-dev-storage` — file storage
|
||||
* `twenty-app-dev-data` — banco de dados PostgreSQL
|
||||
* `twenty-app-dev-storage` — armazenamento de arquivos
|
||||
|
||||
If port 2020 is already in use, you can start on a different port:
|
||||
Se a porta 2020 já estiver em uso, você pode iniciar em uma porta diferente:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server start --port 3030
|
||||
```
|
||||
|
||||
The CLI automatically configures the container's internal `NODE_PORT` and `SERVER_URL` to match the chosen port, so logic functions, OAuth, and all other internal networking work correctly.
|
||||
A CLI configura automaticamente as variáveis internas do contêiner `NODE_PORT` e `SERVER_URL` para corresponderem à porta escolhida, para que as funções de lógica, o OAuth e toda a comunicação interna de rede funcionem corretamente.
|
||||
|
||||
Once started, the server is automatically registered as the `local` remote in your CLI config.
|
||||
Depois de iniciado, o servidor é registrado automaticamente como o remoto `local` na configuração da sua CLI.
|
||||
|
||||
### Checking server status
|
||||
### Verificando o status do servidor
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server status
|
||||
```
|
||||
|
||||
Displays whether the server is running, its URL, and the default login credentials (`tim@apple.dev` / `tim@apple.dev`).
|
||||
Exibe se o servidor está em execução, sua URL e as credenciais de login padrão (`tim@apple.dev` / `tim@apple.dev`).
|
||||
|
||||
### Viewing server logs
|
||||
### Visualizando os logs do servidor
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs
|
||||
```
|
||||
|
||||
Streams the container logs. Use `--lines` to control how many recent lines to show:
|
||||
Transmite os logs do contêiner. Use `--lines` para controlar quantas linhas recentes mostrar:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs --lines 100
|
||||
```
|
||||
|
||||
### Stopping the server
|
||||
### Parando o servidor
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server stop
|
||||
```
|
||||
|
||||
Stops the container. Your data is preserved in the Docker volumes — the next `start` picks up where you left off.
|
||||
Interrompe o contêiner. Seus dados são preservados nos volumes do Docker — o próximo `start` continua de onde você parou.
|
||||
|
||||
### Resetting the server
|
||||
### Redefinindo o servidor
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server reset
|
||||
```
|
||||
|
||||
Removes the container **and** deletes both Docker volumes, wiping all data. The next `start` creates a fresh instance.
|
||||
Remove o contêiner **e** exclui os dois volumes do Docker, apagando todos os dados. O próximo `start` cria uma instância nova.
|
||||
|
||||
<Note>
|
||||
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
|
||||
O servidor requer que o **Docker** esteja em execução. Se você vir um erro "Docker not running", certifique-se de que o Docker Desktop (ou o daemon do Docker) esteja iniciado.
|
||||
</Note>
|
||||
|
||||
### Command reference
|
||||
### Referência de comandos
|
||||
|
||||
| Comando | Descrição |
|
||||
| -------------------------------------- | ---------------------------------------------- |
|
||||
| `yarn twenty server start` | Start the local server (pulls image if needed) |
|
||||
| `yarn twenty server start --port 3030` | Start on a custom port |
|
||||
| `yarn twenty server stop` | Stop the server (preserves data) |
|
||||
| `yarn twenty server status` | Show server status, URL, and credentials |
|
||||
| `yarn twenty server logs` | Stream server logs |
|
||||
| `yarn twenty server logs --lines 100` | Show the last 100 log lines |
|
||||
| `yarn twenty server reset` | Delete all data and start fresh |
|
||||
| Comando | Descrição |
|
||||
| -------------------------------------- | ------------------------------------------------------ |
|
||||
| `yarn twenty server start` | Inicia o servidor local (baixa a imagem se necessário) |
|
||||
| `yarn twenty server start --port 3030` | Iniciar em uma porta personalizada |
|
||||
| `yarn twenty server stop` | Interrompe o servidor (preserva os dados) |
|
||||
| `yarn twenty server status` | Mostra o status do servidor, a URL e as credenciais |
|
||||
| `yarn twenty server logs` | Transmite os logs do servidor |
|
||||
| `yarn twenty server logs --lines 100` | Mostra as últimas 100 linhas de log |
|
||||
| `yarn twenty server reset` | Exclui todos os dados e inicia do zero |
|
||||
|
||||
## CI with GitHub Actions
|
||||
## CI com GitHub Actions
|
||||
|
||||
The scaffolder generates a ready-to-use GitHub Actions workflow at `.github/workflows/ci.yml`. It runs your integration tests automatically on every push to `main` and on pull requests.
|
||||
O gerador de scaffold cria um workflow do GitHub Actions pronto para uso em `.github/workflows/ci.yml`. Ele executa seus testes de integração automaticamente a cada push para `main` e em pull requests.
|
||||
|
||||
The workflow:
|
||||
O workflow:
|
||||
|
||||
1. Checks out your code
|
||||
2. Spins up a temporary Twenty server using the `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` action
|
||||
3. Installs dependencies with `yarn install --immutable`
|
||||
4. Runs `yarn test` with `TWENTY_API_URL` and `TWENTY_API_KEY` injected from the action outputs
|
||||
1. Faz checkout do seu código
|
||||
2. Inicializa um servidor Twenty temporário usando a ação `twentyhq/twenty/.github/actions/spawn-twenty-docker-image`
|
||||
3. Instala as dependências com `yarn install --immutable`
|
||||
4. Executa `yarn test` com `TWENTY_API_URL` e `TWENTY_API_KEY` injetados a partir das saídas da ação
|
||||
|
||||
```yaml .github/workflows/ci.yml
|
||||
name: CI
|
||||
@@ -369,21 +369,21 @@ jobs:
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
```
|
||||
|
||||
You don't need to configure any secrets — the `spawn-twenty-docker-image` action starts an ephemeral Twenty server directly in the runner and outputs the connection details. The `GITHUB_TOKEN` secret is provided automatically by GitHub.
|
||||
Você não precisa configurar nenhum segredo — a ação `spawn-twenty-docker-image` inicia um servidor Twenty efêmero diretamente no runner e fornece os detalhes de conexão. O segredo `GITHUB_TOKEN` é fornecido automaticamente pelo GitHub.
|
||||
|
||||
To pin a specific Twenty version instead of `latest`, change the `TWENTY_VERSION` environment variable at the top of the workflow.
|
||||
Para fixar uma versão específica do Twenty em vez de `latest`, altere a variável de ambiente `TWENTY_VERSION` no topo do workflow.
|
||||
|
||||
## Configuração manual (sem o gerador)
|
||||
|
||||
If you prefer to set things up yourself instead of using `create-twenty-app`, you can do it in two steps.
|
||||
Se preferir configurar tudo por conta própria em vez de usar `create-twenty-app`, você pode fazer isso em duas etapas.
|
||||
|
||||
**1. Add `twenty-sdk` and `twenty-client-sdk` as dependencies:**
|
||||
**1. Adicione `twenty-sdk` e `twenty-client-sdk` como dependências:**
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add twenty-sdk twenty-client-sdk
|
||||
```
|
||||
|
||||
**2. Add a `twenty` script to your `package.json`:**
|
||||
**2. Adicione um script `twenty` ao seu `package.json`:**
|
||||
|
||||
```json filename="package.json"
|
||||
{
|
||||
@@ -393,19 +393,19 @@ yarn add twenty-sdk twenty-client-sdk
|
||||
}
|
||||
```
|
||||
|
||||
You can now run `yarn twenty dev`, `yarn twenty help`, and all other commands.
|
||||
Agora você pode executar `yarn twenty dev`, `yarn twenty help` e todos os outros comandos.
|
||||
|
||||
<Note>
|
||||
Do not install `twenty-sdk` globally. Always use it as a local project dependency so that each project can pin its own version.
|
||||
Não instale o `twenty-sdk` globalmente. Use-o sempre como uma dependência local do projeto para que cada projeto possa fixar sua própria versão.
|
||||
</Note>
|
||||
|
||||
## Resolução de Problemas
|
||||
|
||||
If you run into issues:
|
||||
Se você tiver problemas:
|
||||
|
||||
* Make sure **Docker is running** before starting the scaffolder with a local instance.
|
||||
* Make sure you are using **Node.js 24+** (`node -v` to check).
|
||||
* Make sure **Corepack is enabled** (`corepack enable`) so Yarn 4 is available.
|
||||
* Try deleting `node_modules` and running `yarn install` again if dependencies seem broken.
|
||||
* Certifique-se de que o **Docker está em execução** antes de iniciar o scaffolder com uma instância local.
|
||||
* Certifique-se de que está usando **Node.js 24+** (`node -v` para verificar).
|
||||
* Certifique-se de que o **Corepack está ativado** (`corepack enable`) para que o Yarn 4 esteja disponível.
|
||||
* Tente excluir `node_modules` e executar `yarn install` novamente se as dependências parecerem corrompidas.
|
||||
|
||||
Still stuck? Ask for help on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
Ainda com dificuldades? Peça ajuda no [Discord da Twenty](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
|
||||
@@ -4,24 +4,24 @@ description: Определяйте объекты, функции логики,
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Приложения сейчас проходят альфа-тестирование. Функция работает, но продолжает развиваться.
|
||||
</Warning>
|
||||
|
||||
The `twenty-sdk` package provides typed building blocks to create your app. This page covers every entity type and API client available in the SDK.
|
||||
Пакет `twenty-sdk` предоставляет типизированные строительные блоки для создания вашего приложения. На этой странице описаны все типы сущностей и клиенты API, доступные в SDK.
|
||||
|
||||
## DefineEntity functions
|
||||
## Функции DefineEntity
|
||||
|
||||
The SDK provides functions to define your app entities. You must use `export default defineEntity({...})` for the SDK to detect your entities. Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов.
|
||||
SDK предоставляет функции для определения сущностей вашего приложения. Вы должны использовать `export default defineEntity({...})`, чтобы SDK обнаруживал ваши сущности. Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов.
|
||||
|
||||
<Note>
|
||||
**File organization is up to you.**
|
||||
Entity detection is AST-based — the SDK finds `export default defineEntity(...)` calls regardless of where the file lives. Grouping files by type (e.g., `logic-functions/`, `roles/`) is just a convention, not a requirement.
|
||||
**Организация файлов — на ваше усмотрение.**
|
||||
Обнаружение сущностей основано на AST — SDK находит вызовы `export default defineEntity(...)` независимо от расположения файла. Группировка файлов по типу (например, `logic-functions/`, `roles/`) — это лишь соглашение, а не требование.
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="defineRole" description="Настраивает права роли и доступ к объектам">
|
||||
|
||||
Roles encapsulate permissions on your workspace's objects and actions.
|
||||
Роли инкапсулируют права на объекты и действия вашего рабочего пространства.
|
||||
|
||||
```ts restricted-company-role.ts
|
||||
import {
|
||||
@@ -69,12 +69,12 @@ export default defineRole({
|
||||
</Accordion>
|
||||
<Accordion title="defineApplication" description="Настройка метаданных приложения (обязательно, по одному на приложение)">
|
||||
|
||||
Every app must have exactly one `defineApplication` call that describes:
|
||||
В каждом приложении должен быть ровно один вызов `defineApplication`, который описывает:
|
||||
|
||||
* **Identity**: identifiers, display name, and description.
|
||||
* **Permissions**: which role its functions and front components use.
|
||||
* **(Optional) Variables**: key–value pairs exposed to your functions as environment variables.
|
||||
* **(Optional) Pre-install / post-install functions**: logic functions that run before or after installation.
|
||||
* **Идентификация**: идентификаторы, отображаемое имя и описание.
|
||||
* **Разрешения**: какую роль используют его функции и фронтенд-компоненты.
|
||||
* **(Необязательно) Переменные**: пары ключ–значение, доступные вашим функциям как переменные окружения.
|
||||
* **(Необязательно) Предустановочные / постустановочные функции**: логические функции, которые запускаются до или после установки.
|
||||
|
||||
```ts src/application-config.ts
|
||||
import { defineApplication } from 'twenty-sdk';
|
||||
@@ -98,21 +98,21 @@ export default defineApplication({
|
||||
```
|
||||
|
||||
Заметки:
|
||||
* `universalIdentifier` fields are deterministic IDs you own. Generate them once and keep them stable across syncs.
|
||||
* `applicationVariables` become environment variables for your functions and front components (e.g., `DEFAULT_RECIPIENT_NAME` is available as `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` must reference a role defined with `defineRole()` (see above).
|
||||
* Pre-install and post-install functions are detected automatically during the manifest build — you do not need to reference them in `defineApplication()`.
|
||||
* Поля `universalIdentifier` — это детерминированные идентификаторы, которые принадлежат вам. Сгенерируйте их один раз и сохраняйте неизменными между синхронизациями.
|
||||
* `applicationVariables` становятся переменными окружения для ваших функций и фронтенд-компонентов (например, `DEFAULT_RECIPIENT_NAME` доступна как `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` должен ссылаться на роль, определённую с помощью `defineRole()` (см. выше).
|
||||
* Предустановочные и постустановочные функции обнаруживаются автоматически во время сборки манифеста — вам не нужно указывать их в `defineApplication()`.
|
||||
|
||||
#### Метаданные маркетплейса
|
||||
|
||||
If you plan to [publish your app](/l/ru/developers/extend/apps/publishing), these optional fields control how it appears in the marketplace:
|
||||
Если вы планируете [опубликовать приложение](/l/ru/developers/extend/apps/publishing), эти необязательные поля определяют, как оно отображается в маркетплейсе:
|
||||
|
||||
| Поле | Описание |
|
||||
| ------------------ | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `author` | Имя автора или название компании |
|
||||
| `category` | Категория приложения для фильтрации в маркетплейсе |
|
||||
| `logoUrl` | Path to your app logo (e.g., `public/logo.png`) |
|
||||
| `screenshots` | Array of screenshot paths (e.g., `public/screenshot-1.png`) |
|
||||
| `logoUrl` | Путь к логотипу вашего приложения (например, `public/logo.png`) |
|
||||
| `screenshots` | Массив путей к скриншотам (например, `public/screenshot-1.png`) |
|
||||
| `aboutDescription` | Расширенное описание в Markdown для вкладки "About". Если опущено, маркетплейс использует `README.md` пакета из npm |
|
||||
| `websiteUrl` | Ссылка на ваш сайт |
|
||||
| `termsUrl` | Ссылка на условия предоставления услуг |
|
||||
@@ -121,15 +121,15 @@ If you plan to [publish your app](/l/ru/developers/extend/apps/publishing), thes
|
||||
|
||||
#### Роли и разрешения
|
||||
|
||||
The `defaultRoleUniversalIdentifier` in `application-config.ts` designates the default role used by your app's logic functions and front components. See `defineRole` above for details.
|
||||
Поле `defaultRoleUniversalIdentifier` в `application-config.ts` обозначает роль по умолчанию, используемую логическими функциями и фронтенд-компонентами вашего приложения. Подробности см. в `defineRole` выше.
|
||||
|
||||
* The runtime token injected as `TWENTY_APP_ACCESS_TOKEN` is derived from this role.
|
||||
* The typed client is restricted to the permissions granted to that role.
|
||||
* Follow least-privilege: create a dedicated role with only the permissions your functions need.
|
||||
* Токен времени выполнения, подставляемый как `TWENTY_APP_ACCESS_TOKEN`, формируется из этой роли.
|
||||
* Типизированный клиент ограничен правами, предоставленными этой ролью.
|
||||
* Следуйте принципу наименьших привилегий: создайте отдельную роль только с теми правами, которые нужны вашим функциям.
|
||||
|
||||
##### Default function role
|
||||
##### Роль функции по умолчанию
|
||||
|
||||
When you scaffold a new app, the CLI creates a default role file:
|
||||
Когда вы генерируете новое приложение, CLI создаёт файл роли по умолчанию:
|
||||
|
||||
```ts src/roles/default-role.ts
|
||||
import { defineRole, PermissionFlag } from 'twenty-sdk';
|
||||
@@ -155,16 +155,16 @@ export default defineRole({
|
||||
});
|
||||
```
|
||||
|
||||
This role's `universalIdentifier` is referenced in `application-config.ts` as `defaultRoleUniversalIdentifier`:
|
||||
Значение `universalIdentifier` этой роли указывается в `application-config.ts` как `defaultRoleUniversalIdentifier`:
|
||||
|
||||
* **\*.role.ts** defines what the role can do.
|
||||
* **\*.role.ts** определяет, что может делать роль.
|
||||
* **application-config.ts** указывает на эту роль, чтобы ваши функции наследовали её права.
|
||||
|
||||
Заметки:
|
||||
* Начните со сгенерированной роли, затем постепенно ограничивайте её, следуя принципу наименьших привилегий.
|
||||
* Replace `objectPermissions` and `fieldPermissions` with the objects and fields your functions actually need.
|
||||
* `permissionFlags` управляют доступом к возможностям на уровне платформы. Keep them minimal.
|
||||
* See a working example: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
* Замените `objectPermissions` и `fieldPermissions` на объекты и поля, которые действительно нужны вашим функциям.
|
||||
* `permissionFlags` управляют доступом к возможностям на уровне платформы. Сведите их к минимуму.
|
||||
* См. рабочий пример: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineObject" description="Определяет пользовательские объекты с полями">
|
||||
@@ -256,7 +256,7 @@ export default defineObject({
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Standard fields" description="Расширение существующих объектов дополнительными полями">
|
||||
<Accordion title="defineField — Стандартные поля" description="Расширение существующих объектов дополнительными полями">
|
||||
|
||||
Используйте `defineField()` для добавления полей к объектам, которые вам не принадлежат — например, к стандартным объектам Twenty (Person, Company и т. д.). или к объектам из других приложений. В отличие от встроенных полей в `defineObject()`, отдельные поля требуют `objectUniversalIdentifier`, чтобы указать, какой объект они расширяют:
|
||||
|
||||
@@ -284,7 +284,7 @@ export default defineField({
|
||||
* `defineField()` — единственный способ добавить поля к объектам, которые вы не создавали с помощью `defineObject()`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Relation fields" description="Connect objects together with bidirectional relations">
|
||||
<Accordion title="defineField — Поля связей" description="Связывайте объекты двунаправленными связями">
|
||||
|
||||
Отношения связывают объекты между собой. В Twenty отношения всегда двунаправленные — вы определяете обе стороны, и каждая сторона ссылается на другую.
|
||||
|
||||
@@ -443,7 +443,7 @@ export default defineObject({
|
||||
});
|
||||
```
|
||||
</Accordion>
|
||||
<Accordion title="defineLogicFunction" description="Define logic functions and their triggers">
|
||||
<Accordion title="defineLogicFunction" description="Определяйте логические функции и их триггеры">
|
||||
|
||||
Каждый файл функции использует `defineLogicFunction()` для экспорта конфигурации с обработчиком и необязательными триггерами.
|
||||
|
||||
@@ -487,15 +487,15 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
Available trigger types:
|
||||
* **httpRoute**: Exposes your function on an HTTP path and method **under the `/s/` endpoint**:
|
||||
> e.g. `path: '/post-card/create'` is callable at `https://your-twenty-server.com/s/post-card/create`
|
||||
Доступные типы триггеров:
|
||||
* **httpRoute**: Публикует вашу функцию по HTTP-пути и методу **под конечной точкой `/s/`**:
|
||||
> например, `path: '/post-card/create'` вызывается по адресу `https://your-twenty-server.com/s/post-card/create`
|
||||
* **cron**: Запускает вашу функцию по расписанию с использованием выражения CRON.
|
||||
* **databaseEvent**: Запускается при событиях жизненного цикла объектов рабочего пространства. Когда операция события — `updated`, можно указать конкретные поля для отслеживания в массиве `updatedFields`. Если оставить не заданным или пустым, любое обновление будет вызывать функцию.
|
||||
> e.g. `person.updated`, `*.created`, `company.*`
|
||||
> например, `person.updated`, `*.created`, `company.*`
|
||||
|
||||
<Note>
|
||||
You can also manually execute a function using the CLI:
|
||||
Вы также можете вручную выполнить функцию с помощью CLI:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
@@ -505,7 +505,7 @@ yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
yarn twenty exec -y e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
You can watch logs with:
|
||||
Вы можете просматривать логи с помощью:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty logs
|
||||
@@ -514,9 +514,8 @@ yarn twenty logs
|
||||
|
||||
#### Полезная нагрузка триггера маршрута
|
||||
|
||||
When a route trigger invokes your logic function, it receives a `RoutePayload` object that follows the
|
||||
[AWS HTTP API v2 format](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Import the `RoutePayload` type from `twenty-sdk`:
|
||||
Когда триггер маршрута вызывает вашу логическую функцию, она получает объект `RoutePayload`, который соответствует [формату AWS HTTP API v2](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Импортируйте тип `RoutePayload` из `twenty-sdk`:
|
||||
|
||||
```ts
|
||||
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
|
||||
@@ -533,9 +532,9 @@ const handler = async (event: RoutePayload) => {
|
||||
|
||||
| Свойство | Тип | Описание | Пример |
|
||||
| ---------------------------- | ------------------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP-заголовки (только перечисленные в `forwardedRequestHeaders`) | see section below |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP-заголовки (только перечисленные в `forwardedRequestHeaders`) | см. раздел ниже |
|
||||
| `queryStringParameters` | `Record<string, string \| undefined>` | Параметры строки запроса (несколько значений объединяются запятыми) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Path parameters extracted from the route pattern | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Параметры пути, извлечённые из шаблона маршрута | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `body` | `object \| null` | Разобранное тело запроса (JSON) | `{ id: 1 }` -> `{ id: 1 }` |
|
||||
| `isBase64Encoded` | `логический тип` | Является ли тело закодированным в base64 | |
|
||||
| `requestContext.http.method` | `строка` | Метод HTTP (GET, POST, PUT, PATCH, DELETE) | |
|
||||
@@ -545,7 +544,7 @@ const handler = async (event: RoutePayload) => {
|
||||
#### forwardedRequestHeaders
|
||||
|
||||
По умолчанию HTTP-заголовки из входящих запросов **не** передаются в вашу логическую функцию по соображениям безопасности.
|
||||
To access specific headers, list them in the `forwardedRequestHeaders` array:
|
||||
Чтобы получить доступ к определённым заголовкам, перечислите их в массиве `forwardedRequestHeaders`:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -561,7 +560,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
In your handler, access the forwarded headers like this:
|
||||
В обработчике обращайтесь к переданным заголовкам следующим образом:
|
||||
|
||||
```ts
|
||||
const handler = async (event: RoutePayload) => {
|
||||
@@ -574,14 +573,14 @@ const handler = async (event: RoutePayload) => {
|
||||
```
|
||||
|
||||
<Note>
|
||||
Имена заголовков приводятся к нижнему регистру. Access them using lowercase keys (e.g., `event.headers['content-type']`).
|
||||
Имена заголовков приводятся к нижнему регистру. Обращайтесь к ним, используя ключи в нижнем регистре (например, `event.headers['content-type']`).
|
||||
</Note>
|
||||
|
||||
#### Exposing a function as a tool
|
||||
#### Предоставление функции как инструмента
|
||||
|
||||
Логические функции можно предоставлять как **инструменты** для ИИ-агентов и рабочих процессов. When marked as a tool, a function becomes discoverable by Twenty's AI features and can be used in workflow automations.
|
||||
Логические функции можно предоставлять как **инструменты** для ИИ-агентов и рабочих процессов. Когда функция помечена как инструмент, она становится доступной для функций ИИ Twenty и может использоваться в автоматизациях рабочих процессов.
|
||||
|
||||
To mark a logic function as a tool, set `isTool: true`:
|
||||
Чтобы пометить логическую функцию как инструмент, установите `isTool: true`:
|
||||
|
||||
```ts src/logic-functions/enrich-company.logic-function.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -617,8 +616,8 @@ export default defineLogicFunction({
|
||||
|
||||
Основные моменты:
|
||||
|
||||
* You can combine `isTool` with triggers — a function can be both a tool (callable by AI agents) and triggered by events at the same time.
|
||||
* **`toolInputSchema`** (optional): A JSON Schema object describing the parameters your function accepts. The schema is computed automatically from source code static analysis, but you can set it explicitly:
|
||||
* Вы можете комбинировать `isTool` с триггерами — функция может одновременно быть инструментом (вызываемым агентами ИИ) и запускаться событиями.
|
||||
* **`toolInputSchema`** (необязательно): объект JSON Schema, описывающий параметры, которые принимает ваша функция. Схема вычисляется автоматически на основе статического анализа исходного кода, но вы можете задать её явно:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -715,11 +714,11 @@ yarn twenty exec --postInstall
|
||||
</Accordion>
|
||||
<Accordion title="defineFrontComponent" description="Определение фронт-компонентов для настраиваемого интерфейса">
|
||||
|
||||
Front components are React components that render directly inside Twenty's UI. They run in an **isolated Web Worker** using Remote DOM — your code is sandboxed but renders natively in the page, not in an iframe.
|
||||
Фронтенд-компоненты — это компоненты React, которые отображаются непосредственно внутри интерфейса Twenty. Они выполняются в изолированном Web Worker с использованием Remote DOM — ваш код изолирован (sandboxed), но рендерится нативно на странице, а не в iframe.
|
||||
|
||||
#### Basic example
|
||||
#### Простой пример
|
||||
|
||||
The quickest way to see a front component in action is to register it as a **command**. Adding a `command` field with `isPinned: true` makes it appear as a quick-action button in the top-right corner of the page — no page layout needed:
|
||||
Самый быстрый способ увидеть фронтенд-компонент в действии — зарегистрировать его как **команду**. Добавление поля `command` с `isPinned: true` делает его кнопкой быстрого действия в правом верхнем углу страницы — макет страницы не требуется:
|
||||
|
||||
```tsx src/front-components/hello-world.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -749,34 +748,34 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
After syncing with `yarn twenty dev`, the quick action appears in the top-right corner of the page:
|
||||
После синхронизации с помощью `yarn twenty dev` быстрое действие появится в правом верхнем углу страницы:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Quick action button in the top-right corner" />
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Кнопка быстрого действия в правом верхнем углу" />
|
||||
</div>
|
||||
|
||||
Click it to render the component inline.
|
||||
Нажмите её, чтобы отобразить компонент инлайн.
|
||||
|
||||
{/* TODO: add screenshot of the rendered front component */}
|
||||
|
||||
#### Configuration fields
|
||||
#### Поля конфигурации
|
||||
|
||||
| Поле | Обязательно | Описание |
|
||||
| --------------------- | ----------- | ----------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Да | Stable unique ID for this component |
|
||||
| `component` | Да | A React component function |
|
||||
| `name` | Нет | Display name |
|
||||
| `description` | Нет | Description of what the component does |
|
||||
| `isHeadless` | Нет | Set to `true` if the component has no visible UI (see below) |
|
||||
| `command` | Нет | Register the component as a command (see [command options](#command-options) below) |
|
||||
| Поле | Обязательно | Описание |
|
||||
| --------------------- | ----------- | -------------------------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Да | Стабильный уникальный идентификатор для этого компонента |
|
||||
| `component` | Да | Функция компонента React |
|
||||
| `name` | Нет | Отображаемое имя |
|
||||
| `description` | Нет | Описание того, что делает компонент |
|
||||
| `isHeadless` | Нет | Установите значение `true`, если у компонента нет видимого пользовательского интерфейса (см. ниже) |
|
||||
| `command` | Нет | Зарегистрируйте компонент как команду (см. [параметры команды](#command-options) ниже) |
|
||||
|
||||
#### Placing a front component on a page
|
||||
#### Размещение фронт-компонента на странице
|
||||
|
||||
Beyond commands, you can embed a front component directly into a record page by adding it as a widget in a **page layout**. See the [definePageLayout](#definepagelayout) section for details.
|
||||
Помимо команд, вы можете встроить фронт-компонент непосредственно на страницу записи, добавив его как виджет в **макет страницы**. См. раздел [definePageLayout](#definepagelayout) для подробностей.
|
||||
|
||||
#### Headless components (`isHeadless: true`)
|
||||
#### Headless-компоненты (`isHeadless: true`)
|
||||
|
||||
Headless components render no visible UI but still run React logic. This is useful for **effect components** — components that perform side effects when mounted, such as syncing data, starting a timer, listening to events, or triggering a notification.
|
||||
Headless-компоненты не отображают видимый UI, но при этом выполняют логику React. Это полезно для **компонентов-эффектов** — компонентов, которые выполняют побочные эффекты при монтировании, например синхронизацию данных, запуск таймера, прослушивание событий или показ уведомления.
|
||||
|
||||
```tsx src/front-components/sync-tracker.tsx
|
||||
import { defineFrontComponent, useRecordId, enqueueSnackbar } from 'twenty-sdk';
|
||||
@@ -801,11 +800,11 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Because the component returns `null`, Twenty skips rendering a container for it — no empty space appears in the layout. The component still has access to all hooks and the host communication API.
|
||||
Поскольку компонент возвращает `null`, Twenty пропускает рендеринг контейнера для него — в макете не появляется пустое место. Компонент по-прежнему имеет доступ ко всем хукам и API взаимодействия с хостом.
|
||||
|
||||
#### Accessing runtime context
|
||||
#### Доступ к контексту времени выполнения
|
||||
|
||||
Inside your component, use SDK hooks to access the current user, record, and component instance:
|
||||
Внутри вашего компонента используйте хуки SDK для доступа к текущему пользователю, записи и экземпляру компонента:
|
||||
|
||||
```tsx src/front-components/record-info.tsx
|
||||
import {
|
||||
@@ -836,47 +835,47 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Available hooks:
|
||||
Доступные хуки:
|
||||
|
||||
| Хук | Returns | Описание |
|
||||
| --------------------------------------------- | ------------------ | ---------------------------------------------------------- |
|
||||
| `useUserId()` | `string` or `null` | The current user's ID |
|
||||
| `useRecordId()` | `string` or `null` | The current record's ID (when placed on a record page) |
|
||||
| `useFrontComponentId()` | `строка` | This component instance's ID |
|
||||
| `useFrontComponentExecutionContext(selector)` | различается | Access the full execution context with a selector function |
|
||||
| Хук | Возвращает | Описание |
|
||||
| --------------------------------------------- | ------------------- | ----------------------------------------------------------------- |
|
||||
| `useUserId()` | `string` или `null` | ID текущего пользователя |
|
||||
| `useRecordId()` | `string` или `null` | ID текущей записи (при размещении на странице записи) |
|
||||
| `useFrontComponentId()` | `строка` | ID этого экземпляра компонента |
|
||||
| `useFrontComponentExecutionContext(selector)` | различается | Доступ к полному контексту выполнения с помощью функции-селектора |
|
||||
|
||||
#### Host communication API
|
||||
#### API взаимодействия с хостом
|
||||
|
||||
Front components can trigger navigation, modals, and notifications using functions from `twenty-sdk`:
|
||||
Компоненты фронтенда могут вызывать навигацию, модальные окна и уведомления с помощью функций из `twenty-sdk`:
|
||||
|
||||
| Функция | Описание |
|
||||
| ----------------------------------------------- | ----------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Navigate to a page in the app |
|
||||
| `openSidePanelPage(params)` | Open a side panel |
|
||||
| `closeSidePanel()` | Закрыть боковую панель |
|
||||
| `openCommandConfirmationModal(params)` | Show a confirmation dialog |
|
||||
| `enqueueSnackbar(params)` | Show a toast notification |
|
||||
| `unmountFrontComponent()` | Unmount the component |
|
||||
| `updateProgress(progress)` | Update a progress indicator |
|
||||
| Функция | Описание |
|
||||
| ----------------------------------------------- | -------------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Перейти на страницу в приложении |
|
||||
| `openSidePanelPage(params)` | Открыть боковую панель |
|
||||
| `closeSidePanel()` | Закрыть боковую панель |
|
||||
| `openCommandConfirmationModal(params)` | Показать диалог подтверждения |
|
||||
| `enqueueSnackbar(params)` | Показать всплывающее уведомление |
|
||||
| `unmountFrontComponent()` | Размонтировать компонент |
|
||||
| `updateProgress(progress)` | Обновить индикатор прогресса |
|
||||
|
||||
#### Command options
|
||||
#### Параметры команды
|
||||
|
||||
Adding a `command` field to `defineFrontComponent` registers the component in the command menu (Cmd+K). If `isPinned` is `true`, it also appears as a quick-action button in the top-right corner of the page.
|
||||
Добавление поля `command` в `defineFrontComponent` регистрирует компонент в меню команд (Cmd+K). Если `isPinned` имеет значение `true`, команда также отображается как кнопка быстрого действия в правом верхнем углу страницы.
|
||||
|
||||
| Поле | Обязательно | Описание |
|
||||
| --------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `universalIdentifier` | Да | Stable unique ID for the command |
|
||||
| `label` | Да | Full label shown in the command menu (Cmd+K) |
|
||||
| `shortLabel` | Нет | Shorter label displayed on the pinned quick-action button |
|
||||
| `icon` | Нет | Icon name displayed next to the label (e.g. `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Нет | When `true`, shows the command as a quick-action button in the top-right corner of the page |
|
||||
| `availabilityType` | Нет | Controls where the command appears: `'GLOBAL'` (always available), `'RECORD_SELECTION'` (only when records are selected), or `'FALLBACK'` (shown when no other commands match) |
|
||||
| `availabilityObjectUniversalIdentifier` | Нет | Restrict the command to pages of a specific object type (e.g. only on Company records) |
|
||||
| `conditionalAvailabilityExpression` | Нет | A boolean expression to dynamically control whether the command is visible (see below) |
|
||||
| Поле | Обязательно | Описание |
|
||||
| --------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Да | Стабильный уникальный идентификатор для команды |
|
||||
| `label` | Да | Полная метка, отображаемая в меню команд (Cmd+K) |
|
||||
| `shortLabel` | Нет | Короткая метка, отображаемая на закреплённой кнопке быстрого действия |
|
||||
| `icon` | Нет | Имя значка, отображаемое рядом с меткой (например, `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Нет | При значении `true` показывает команду как кнопку быстрого действия в правом верхнем углу страницы |
|
||||
| `availabilityType` | Нет | Определяет, где отображается команда: `'GLOBAL'` (доступна всегда), `'RECORD_SELECTION'` (только при выборе записей) или `'FALLBACK'` (показывается, когда другие команды не подходят) |
|
||||
| `availabilityObjectUniversalIdentifier` | Нет | Ограничивает команду страницами определённого типа объектов (например, только для записей Company) |
|
||||
| `conditionalAvailabilityExpression` | Нет | Логическое выражение для динамического управления видимостью команды (см. ниже) |
|
||||
|
||||
#### Conditional availability expressions
|
||||
#### Выражения условной доступности
|
||||
|
||||
The `conditionalAvailabilityExpression` field lets you control when a command is visible based on the current page context. Import typed variables and operators from `twenty-sdk` to build expressions:
|
||||
Поле `conditionalAvailabilityExpression` позволяет управлять видимостью команды в зависимости от текущего контекста страницы. Импортируйте типизированные переменные и операторы из `twenty-sdk`, чтобы составлять выражения:
|
||||
|
||||
```tsx
|
||||
import {
|
||||
@@ -905,45 +904,45 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
**Context variables** — these represent the current state of the page:
|
||||
**Переменные контекста** — представляют текущее состояние страницы:
|
||||
|
||||
| Переменная | Тип | Описание |
|
||||
| ------------------------------ | --------- | ---------------------------------------------------------------- |
|
||||
| `pageType` | `строка` | Current page type (e.g. `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Whether the component is rendered in a side panel |
|
||||
| `numberOfSelectedRecords` | `number` | Number of currently selected records |
|
||||
| `isSelectAll` | `boolean` | Whether "select all" is active |
|
||||
| `selectedRecords` | `array` | The selected record objects |
|
||||
| `favoriteRecordIds` | `array` | IDs of favorited records |
|
||||
| `objectPermissions` | `object` | Permissions for the current object type |
|
||||
| `targetObjectReadPermissions` | `object` | Read permissions for the target object |
|
||||
| `targetObjectWritePermissions` | `object` | Write permissions for the target object |
|
||||
| `featureFlags` | `object` | Active feature flags |
|
||||
| `objectMetadataItem` | `object` | Metadata of the current object type |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Whether the current view has a soft-delete filter |
|
||||
| Переменная | Тип | Описание |
|
||||
| ------------------------------ | --------- | ------------------------------------------------------------------------ |
|
||||
| `pageType` | `строка` | Текущий тип страницы (например, `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Указывает, рендерится ли компонент в боковой панели |
|
||||
| `numberOfSelectedRecords` | `number` | Количество выбранных в данный момент записей |
|
||||
| `isSelectAll` | `boolean` | Активен ли режим "выбрать все" |
|
||||
| `selectedRecords` | `массив` | Объекты выбранных записей |
|
||||
| `favoriteRecordIds` | `массив` | ID избранных записей |
|
||||
| `objectPermissions` | `object` | Разрешения для текущего типа объекта |
|
||||
| `targetObjectReadPermissions` | `object` | Права на чтение для целевого объекта |
|
||||
| `targetObjectWritePermissions` | `object` | Права на запись для целевого объекта |
|
||||
| `featureFlags` | `object` | Активные флаги функций |
|
||||
| `objectMetadataItem` | `object` | Метаданные текущего типа объекта |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Есть ли у текущего представления фильтр мягкого удаления |
|
||||
|
||||
**Operators** — combine variables into boolean expressions:
|
||||
**Операторы** — комбинируют переменные в логические выражения:
|
||||
|
||||
| Operator | Описание |
|
||||
| ----------------------------------- | ----------------------------------------------------------------- |
|
||||
| `isDefined(value)` | `true` if the value is not null/undefined |
|
||||
| `isNonEmptyString(value)` | `true` if the value is a non-empty string |
|
||||
| `includes(array, value)` | `true` if the array contains the value |
|
||||
| `includesEvery(array, prop, value)` | `true` if every item's property includes the value |
|
||||
| `every(array, prop)` | `true` if the property is truthy on every item |
|
||||
| `everyDefined(array, prop)` | `true` if the property is defined on every item |
|
||||
| `everyEquals(array, prop, value)` | `true` if the property equals the value on every item |
|
||||
| `some(array, prop)` | `true` if the property is truthy on at least one item |
|
||||
| `someDefined(array, prop)` | `true` if the property is defined on at least one item |
|
||||
| `someEquals(array, prop, value)` | `true` if the property equals the value on at least one item |
|
||||
| `someNonEmptyString(array, prop)` | `true` if the property is a non-empty string on at least one item |
|
||||
| `none(array, prop)` | `true` if the property is falsy on every item |
|
||||
| `noneDefined(array, prop)` | `true` if the property is undefined on every item |
|
||||
| `noneEquals(array, prop, value)` | `true` if the property does not equal the value on any item |
|
||||
| Оператор | Описание |
|
||||
| ----------------------------------- | ------------------------------------------------------------------------- |
|
||||
| `isDefined(value)` | `true`, если значение не null/undefined |
|
||||
| `isNonEmptyString(value)` | `true`, если значение — непустая строка |
|
||||
| `includes(array, value)` | `true`, если массив содержит значение |
|
||||
| `includesEvery(array, prop, value)` | `true`, если свойство каждого элемента включает значение |
|
||||
| `every(array, prop)` | `true`, если свойство истинно для каждого элемента |
|
||||
| `everyDefined(array, prop)` | `true`, если свойство определено у каждого элемента |
|
||||
| `everyEquals(array, prop, value)` | `true`, если свойство равно значению у каждого элемента |
|
||||
| `some(array, prop)` | `true`, если свойство истинно хотя бы у одного элемента |
|
||||
| `someDefined(array, prop)` | `true`, если свойство определено хотя бы у одного элемента |
|
||||
| `someEquals(array, prop, value)` | `true`, если свойство равно значению хотя бы у одного элемента |
|
||||
| `someNonEmptyString(array, prop)` | `true`, если свойство является непустой строкой хотя бы у одного элемента |
|
||||
| `none(array, prop)` | `true`, если свойство ложно для каждого элемента |
|
||||
| `noneDefined(array, prop)` | `true`, если свойство не определено ни у одного элемента |
|
||||
| `noneEquals(array, prop, value)` | `true`, если свойство не равно значению ни у одного элемента |
|
||||
|
||||
#### Public assets
|
||||
#### Публичные ресурсы
|
||||
|
||||
Front components can access files from the app's `public/` directory using `getPublicAssetUrl`:
|
||||
Компоненты фронтенда могут получать доступ к файлам из каталога приложения `public/` с помощью `getPublicAssetUrl`:
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -957,18 +956,18 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
See the [public assets section](#accessing-public-assets-with-getpublicasseturl) for details.
|
||||
См. [раздел о публичных ресурсах](#accessing-public-assets-with-getpublicasseturl) для подробностей.
|
||||
|
||||
#### Стилизация
|
||||
|
||||
Front components support multiple styling approaches. You can use:
|
||||
Компоненты фронтенда поддерживают несколько подходов к стилизации. Вы можете использовать:
|
||||
|
||||
* **Inline styles** — `style={{ color: 'red' }}`
|
||||
* **Twenty UI components** — import from `twenty-sdk/ui` (Button, Tag, Status, Chip, Avatar, and more)
|
||||
* **Emotion** — CSS-in-JS with `@emotion/react`
|
||||
* **Styled-components** — `styled.div` patterns
|
||||
* **Tailwind CSS** — utility classes
|
||||
* **Any CSS-in-JS library** compatible with React
|
||||
* **Встроенные стили** — `style={{ color: 'red' }}`
|
||||
* **Компоненты Twenty UI** — импорт из `twenty-sdk/ui` (Button, Tag, Status, Chip, Avatar и другие)
|
||||
* **Emotion** — CSS-in-JS с `@emotion/react`
|
||||
* **Styled-components** — паттерны `styled.div`
|
||||
* **Tailwind CSS** — утилитарные классы
|
||||
* **Любая библиотека CSS-in-JS**, совместимая с React
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1022,9 +1021,9 @@ export default defineSkill({
|
||||
* `description` (необязательно) предоставляет дополнительный контекст о назначении навыка.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineAgent" description="Define AI agents with custom prompts">
|
||||
<Accordion title="defineAgent" description="Определяйте ИИ-агентов с пользовательскими промптами">
|
||||
|
||||
Agents are AI assistants that live inside your workspace. Use `defineAgent()` to create agents with a custom system prompt:
|
||||
Агенты — это ИИ-помощники, работающие в вашем рабочем пространстве. Используйте `defineAgent()` для создания агентов с пользовательским системным промптом:
|
||||
|
||||
```ts src/agents/example-agent.ts
|
||||
import { defineAgent } from 'twenty-sdk';
|
||||
@@ -1040,17 +1039,17 @@ export default defineAgent({
|
||||
```
|
||||
|
||||
Основные моменты:
|
||||
* `name` is the unique identifier string for the agent (kebab-case recommended).
|
||||
* `label` is the display name shown in the UI.
|
||||
* `prompt` is the system prompt that defines the agent's behavior.
|
||||
* `description` (optional) provides context about what the agent does.
|
||||
* `name` — уникальная строка-идентификатор агента (рекомендуется kebab-case).
|
||||
* `label` — отображаемое имя, показываемое в UI.
|
||||
* `prompt` — это системный промпт, определяющий поведение агента.
|
||||
* `description` (необязательно) предоставляет контекст о том, что делает агент.
|
||||
* `icon` (необязательно) задаёт значок, отображаемый в UI.
|
||||
* `modelId` (optional) overrides the default AI model used by the agent.
|
||||
* `modelId` (необязательно) переопределяет модель ИИ по умолчанию, используемую агентом.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineView" description="Определяйте сохранённые представления для объектов">
|
||||
|
||||
Views are saved configurations for how records of an object are displayed — including which fields are visible, their order, and any filters or groups applied. Use `defineView()` to ship pre-configured views with your app:
|
||||
Представления — это сохранённые конфигурации отображения записей объекта: какие поля видны, их порядок, а также применённые фильтры и группы. Используйте `defineView()` для поставки преднастроенных представлений вместе с вашим приложением:
|
||||
|
||||
```ts src/views/example-view.ts
|
||||
import { defineView, ViewKey } from 'twenty-sdk';
|
||||
@@ -1077,16 +1076,16 @@ export default defineView({
|
||||
```
|
||||
|
||||
Основные моменты:
|
||||
* `objectUniversalIdentifier` specifies which object this view applies to.
|
||||
* `key` determines the view type (e.g., `ViewKey.INDEX` for the main list view).
|
||||
* `fields` controls which columns appear and their order. Each field references a `fieldMetadataUniversalIdentifier`.
|
||||
* You can also define `filters`, `filterGroups`, `groups`, and `fieldGroups` for more advanced configurations.
|
||||
* `position` controls the ordering when multiple views exist for the same object.
|
||||
* `objectUniversalIdentifier` указывает, к какому объекту применяется это представление.
|
||||
* `key` определяет тип представления (например, `ViewKey.INDEX` для основного списка).
|
||||
* `fields` управляет тем, какие столбцы отображаются и в каком порядке. Каждое поле ссылается на `fieldMetadataUniversalIdentifier`.
|
||||
* Также вы можете определить `filters`, `filterGroups`, `groups` и `fieldGroups` для более продвинутых конфигураций.
|
||||
* `position` управляет порядком, когда для одного и того же объекта существует несколько представлений.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineNavigationMenuItem" description="Определяйте ссылки боковой панели навигации">
|
||||
|
||||
Navigation menu items add custom entries to the workspace sidebar. Use `defineNavigationMenuItem()` to link to views, external URLs, or objects:
|
||||
Пункты навигационного меню добавляют пользовательские элементы в боковую панель рабочего пространства. Используйте `defineNavigationMenuItem()` для ссылок на представления, внешние URL или объекты:
|
||||
|
||||
```ts src/navigation-menu-items/example-navigation-menu-item.ts
|
||||
import { defineNavigationMenuItem, NavigationMenuItemType } from 'twenty-sdk';
|
||||
@@ -1104,15 +1103,15 @@ export default defineNavigationMenuItem({
|
||||
```
|
||||
|
||||
Основные моменты:
|
||||
* `type` determines what the menu item links to: `NavigationMenuItemType.VIEW` for a saved view, or `NavigationMenuItemType.LINK` for an external URL.
|
||||
* For view links, set `viewUniversalIdentifier`. For external links, set `link`.
|
||||
* `position` controls the ordering in the sidebar.
|
||||
* `icon` and `color` (optional) customize the appearance.
|
||||
* `type` определяет, на что ссылается пункт меню: `NavigationMenuItemType.VIEW` для сохранённого представления или `NavigationMenuItemType.LINK` для внешнего URL.
|
||||
* Для ссылок на представления укажите `viewUniversalIdentifier`. Для внешних ссылок укажите `link`.
|
||||
* `position` управляет порядком в боковой панели.
|
||||
* `icon` и `color` (необязательно) настраивают внешний вид.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="definePageLayout" description="Define custom page layouts for record views">
|
||||
<Accordion title="definePageLayout" description="Определяйте пользовательские макеты страниц для представлений записей">
|
||||
|
||||
Page layouts let you customize how a record detail page looks — which tabs appear, what widgets are inside each tab, and how they are arranged. Use `definePageLayout()` to ship custom layouts with your app:
|
||||
Макеты страниц позволяют настраивать вид страницы с деталями записи: какие вкладки отображаются, какие виджеты внутри каждой вкладки и как они расположены. Используйте `definePageLayout()` для поставки пользовательских макетов вместе с вашим приложением:
|
||||
|
||||
```ts src/page-layouts/example-record-page-layout.ts
|
||||
import { definePageLayout, PageLayoutTabLayoutMode } from 'twenty-sdk';
|
||||
@@ -1149,33 +1148,33 @@ export default definePageLayout({
|
||||
```
|
||||
|
||||
Основные моменты:
|
||||
* `type` is typically `'RECORD_PAGE'` to customize the detail view of a specific object.
|
||||
* `objectUniversalIdentifier` specifies which object this layout applies to.
|
||||
* Each `tab` defines a section of the page with a `title`, `position`, and `layoutMode` (`CANVAS` for free-form layout).
|
||||
* Each `widget` inside a tab can render a front component, a relation list, or other built-in widget types.
|
||||
* `position` on tabs controls their order. Use higher values (e.g., 50) to place custom tabs after built-in ones.
|
||||
* `type` обычно равен `'RECORD_PAGE'` для настройки детального представления конкретного объекта.
|
||||
* `objectUniversalIdentifier` указывает, к какому объекту применяется этот макет.
|
||||
* Каждая `tab` определяет раздел страницы с `title`, `position` и `layoutMode` (`CANVAS` для свободного макета).
|
||||
* Каждый `widget` внутри вкладки может отображать компонент фронтенда, список связей или другие встроенные типы виджетов.
|
||||
* `position` у вкладок управляет их порядком. Используйте большие значения (например, 50), чтобы разместить пользовательские вкладки после встроенных.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Public assets (`public/` folder)
|
||||
## Публичные ресурсы (папка `public/`)
|
||||
|
||||
The `public/` folder at the root of your app holds static files — images, icons, fonts, or any other assets your app needs at runtime. These files are automatically included in builds, synced during dev mode, and uploaded to the server.
|
||||
Папка `public/` в корне вашего приложения содержит статические файлы — изображения, значки, шрифты и любые другие ресурсы, необходимые вашему приложению во время выполнения. Эти файлы автоматически включаются в сборки, синхронизируются в режиме разработки и загружаются на сервер.
|
||||
|
||||
Files placed in `public/` are:
|
||||
Файлы, размещённые в `public/`, являются:
|
||||
|
||||
* **Publicly accessible** — once synced to the server, assets are served at a public URL. No authentication is needed to access them.
|
||||
* **Available in front components** — use asset URLs to display images, icons, or any media inside your React components.
|
||||
* **Available in logic functions** — reference asset URLs in emails, API responses, or any server-side logic.
|
||||
* **Used for marketplace metadata** — the `logoUrl` and `screenshots` fields in `defineApplication()` reference files from this folder (e.g., `public/logo.png`). These are displayed in the marketplace when your app is published.
|
||||
* **Auto-synced in dev mode** — when you add, update, or delete a file in `public/`, it is synced to the server automatically. No restart needed.
|
||||
* **Included in builds** — `yarn twenty build` bundles all public assets into the distribution output.
|
||||
* **Публично доступными** — после синхронизации с сервером ресурсы доступны по публичному URL. Для доступа к ним аутентификация не требуется.
|
||||
* **Доступными в компонентах фронтенда** — используйте URL ресурсов для отображения изображений, значков или любого медиа внутри ваших компонентов React.
|
||||
* **Доступными в логических функциях** — используйте URL ресурсов в письмах, ответах API или любой серверной логике.
|
||||
* **Используются для метаданных маркетплейса** — поля `logoUrl` и `screenshots` в `defineApplication()` ссылаются на файлы из этой папки (например, `public/logo.png`). Они отображаются в маркетплейсе при публикации вашего приложения.
|
||||
* **Автосинхронизация в режиме разработки** — когда вы добавляете, обновляете или удаляете файл в `public/`, он автоматически синхронизируется с сервером. Перезапуск не требуется.
|
||||
* **Включены в сборки** — `yarn twenty build` упаковывает все публичные ресурсы в выходной дистрибутив.
|
||||
|
||||
### Accessing public assets with `getPublicAssetUrl`
|
||||
### Доступ к публичным ресурсам с помощью `getPublicAssetUrl`
|
||||
|
||||
Use the `getPublicAssetUrl` helper from `twenty-sdk` to get the full URL of a file in your `public/` directory. It works in both **logic functions** and **front components**.
|
||||
Используйте хелпер `getPublicAssetUrl` из `twenty-sdk`, чтобы получить полный URL файла в каталоге `public/` вашего приложения. Он работает как в **логических функциях**, так и в **компонентах фронтенда**.
|
||||
|
||||
**In a logic function:**
|
||||
**В логической функции:**
|
||||
|
||||
```ts src/logic-functions/send-invoice.ts
|
||||
import { defineLogicFunction, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1200,7 +1199,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
**In a front component:**
|
||||
**В компоненте фронтенда:**
|
||||
|
||||
```tsx src/front-components/company-card.tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1212,19 +1211,19 @@ export default defineFrontComponent(() => {
|
||||
});
|
||||
```
|
||||
|
||||
The `path` argument is relative to your app's `public/` folder. Both `getPublicAssetUrl('logo.png')` and `getPublicAssetUrl('public/logo.png')` resolve to the same URL — the `public/` prefix is stripped automatically if present.
|
||||
Аргумент `path` задаётся относительно папки `public/` вашего приложения. И `getPublicAssetUrl('logo.png')`, и `getPublicAssetUrl('public/logo.png')` приводят к одному и тому же URL — префикс `public/`, если он есть, удаляется автоматически.
|
||||
|
||||
## Using npm packages
|
||||
## Использование пакетов npm
|
||||
|
||||
You can install and use any npm package in your app. Both logic functions and front components are bundled with [esbuild](https://esbuild.github.io/), which inlines all dependencies into the output — no `node_modules` are needed at runtime.
|
||||
Вы можете устанавливать и использовать любые пакеты npm в своём приложении. И логические функции, и компоненты фронтенда собираются с помощью [esbuild](https://esbuild.github.io/), который встраивает все зависимости в выходной файл — каталоги `node_modules` во время выполнения не нужны.
|
||||
|
||||
### Installing a package
|
||||
### Установка пакета
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add axios
|
||||
```
|
||||
|
||||
Then import it in your code:
|
||||
Затем импортируйте его в своём коде:
|
||||
|
||||
```ts src/logic-functions/fetch-data.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -1245,7 +1244,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
The same works for front components:
|
||||
То же самое работает для компонентов фронтенда:
|
||||
|
||||
```tsx src/front-components/chart.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1262,27 +1261,27 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
### How bundling works
|
||||
### Как работает бандлинг
|
||||
|
||||
The build step (`yarn twenty dev` or `yarn twenty build`) uses esbuild to produce a single self-contained file per logic function and per front component. All imported packages are inlined into the bundle.
|
||||
Этап сборки (`yarn twenty dev` или `yarn twenty build`) использует esbuild для создания одного самодостаточного файла на каждую логическую функцию и на каждый компонент фронтенда. Все импортированные пакеты встроены в бандл.
|
||||
|
||||
**Logic functions** run in a Node.js environment. Node built-in modules (`fs`, `path`, `crypto`, `http`, etc.) are available and do not need to be installed.
|
||||
**Логические функции** выполняются в среде Node.js. Встроенные модули Node (`fs`, `path`, `crypto`, `http` и т. д.) доступны и не требуют установки.
|
||||
|
||||
**Front components** run in a Web Worker. Node built-in modules are **not** available — only browser APIs and npm packages that work in a browser environment.
|
||||
**Компоненты фронтенда** выполняются в Web Worker. Встроенные модули Node недоступны — доступны только браузерные API и пакеты npm, работающие в браузерной среде.
|
||||
|
||||
Both environments have `twenty-client-sdk/core` and `twenty-client-sdk/metadata` available as pre-provided modules — these are not bundled but resolved at runtime by the server.
|
||||
В обеих средах доступны как предварительно предоставленные модули `twenty-client-sdk/core` и `twenty-client-sdk/metadata` — они не включаются в бандл, а подставляются сервером во время выполнения.
|
||||
|
||||
## Scaffolding entities with `yarn twenty add`
|
||||
## Создание заготовок сущностей с помощью `yarn twenty add`
|
||||
|
||||
Instead of creating entity files by hand, you can use the interactive scaffolder:
|
||||
Вместо ручного создания файлов сущностей вы можете использовать интерактивный генератор:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add
|
||||
```
|
||||
|
||||
This prompts you to pick an entity type and walks you through the required fields. It generates a ready-to-use file with a stable `universalIdentifier` and the correct `defineEntity()` call.
|
||||
Он предложит выбрать тип сущности и проведёт вас по обязательным полям. Он генерирует готовый к использованию файл со стабильным `universalIdentifier` и корректным вызовом `defineEntity()`.
|
||||
|
||||
You can also pass the entity type directly to skip the first prompt:
|
||||
Вы также можете передать тип сущности напрямую, чтобы пропустить первый запрос:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add object
|
||||
@@ -1290,44 +1289,44 @@ yarn twenty add logicFunction
|
||||
yarn twenty add frontComponent
|
||||
```
|
||||
|
||||
### Available entity types
|
||||
### Доступные типы сущностей
|
||||
|
||||
| Тип сущности | Команда | Generated file |
|
||||
| Тип сущности | Команда | Сгенерированный файл |
|
||||
| -------------------- | ------------------------------------ | ------------------------------------- |
|
||||
| Объект | `yarn twenty add object` | `src/objects/<name>.ts` |
|
||||
| Поле | `yarn twenty add field` | `src/fields/<name>.ts` |
|
||||
| Logic function | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Front component | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Логическая функция | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Компонент фронтенда | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Роль | `yarn twenty add role` | `src/roles/<name>.ts` |
|
||||
| Навык | `yarn twenty add skill` | `src/skills/<name>.ts` |
|
||||
| Агент | `yarn twenty add agent` | `src/agents/<name>.ts` |
|
||||
| Представление | `yarn twenty add view` | `src/views/<name>.ts` |
|
||||
| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
| Пункт меню навигации | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Макет страницы | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
|
||||
### What the scaffolder generates
|
||||
### Что генерирует скэффолдер
|
||||
|
||||
Each entity type has its own template. For example, `yarn twenty add object` asks for:
|
||||
У каждого типа сущности есть свой шаблон. Например, `yarn twenty add object` запрашивает:
|
||||
|
||||
1. **Name (singular)** — e.g., `invoice`
|
||||
2. **Name (plural)** — e.g., `invoices`
|
||||
3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`)
|
||||
4. **Label (plural)** — auto-populated (e.g., `Invoices`)
|
||||
5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object.
|
||||
1. **Имя (единственное число)** — например, `invoice`
|
||||
2. **Имя (множественное число)** — например, `invoices`
|
||||
3. **Метка (единственное число)** — заполняется автоматически из имени (например, `Invoice`)
|
||||
4. **Метка (множественное число)** — заполняется автоматически (например, `Invoices`)
|
||||
5. **Создать представление и пункт навигации?** — если вы ответите «да», скэффолдер также сгенерирует соответствующее представление и ссылку в боковой панели для нового объекта.
|
||||
|
||||
Other entity types have simpler prompts — most only ask for a name.
|
||||
У других типов сущностей подсказки проще — в большинстве случаев запрашивается только имя.
|
||||
|
||||
The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`.
|
||||
Тип сущности `field` более детализирован: он запрашивает имя поля, метку, тип (из списка всех доступных типов полей, таких как `TEXT`, `NUMBER`, `SELECT`, `RELATION` и т. д.), а также `universalIdentifier` целевого объекта.
|
||||
|
||||
### Custom output path
|
||||
### Пользовательский путь вывода
|
||||
|
||||
Use the `--path` flag to place the generated file in a custom location:
|
||||
Используйте флаг `--path`, чтобы поместить сгенерированный файл в пользовательское расположение:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add logicFunction --path src/custom-folder
|
||||
```
|
||||
|
||||
## Typed API clients (twenty-client-sdk)
|
||||
## Типизированные клиенты API (twenty-client-sdk)
|
||||
|
||||
Пакет `twenty-client-sdk` предоставляет два типизированных клиента GraphQL для взаимодействия с API Twenty из ваших логических функций и фронт-компонентов.
|
||||
|
||||
@@ -1337,9 +1336,9 @@ yarn twenty add logicFunction --path src/custom-folder
|
||||
| `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — конфигурация рабочего пространства, загрузка файлов | Нет, поставляется в готовом виде |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="CoreApiClient" description="Query and mutate workspace data (records, objects)">
|
||||
<Accordion title="CoreApiClient" description="Запрос и изменение данных рабочего пространства (записи, объекты)">
|
||||
|
||||
`CoreApiClient` — основной клиент для запросов и изменений данных рабочего пространства. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields.
|
||||
`CoreApiClient` — основной клиент для запросов и изменений данных рабочего пространства. Он **генерируется из схемы вашего рабочего пространства** во время `yarn twenty dev` или `yarn twenty build`, поэтому полностью типизирован в соответствии с вашими объектами и полями.
|
||||
|
||||
```ts
|
||||
import { CoreApiClient } from 'twenty-client-sdk/core';
|
||||
@@ -1379,12 +1378,12 @@ const { createCompany } = await client.mutation({
|
||||
Клиент использует синтаксис selection-set: передайте `true`, чтобы включить поле, используйте `__args` для аргументов и вкладывайте объекты для отношений. Вы получаете полное автодополнение и проверку типов на основе схемы вашего рабочего пространства.
|
||||
|
||||
<Note>
|
||||
**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`.
|
||||
**CoreApiClient генерируется на этапе dev/build.** Если вы используете его, не запустив сначала `yarn twenty dev` или `yarn twenty build`, он выбросит ошибку. Генерация происходит автоматически — CLI анализирует GraphQL-схему вашего рабочего пространства и создает типизированный клиент с помощью `@genql/cli`.
|
||||
</Note>
|
||||
|
||||
#### Использование CoreSchema для аннотаций типов
|
||||
|
||||
`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters:
|
||||
`CoreSchema` предоставляет типы TypeScript, соответствующие объектам вашего рабочего пространства — это полезно для типизации состояния компонентов или параметров функций:
|
||||
|
||||
```ts
|
||||
import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core';
|
||||
@@ -1406,7 +1405,7 @@ setCompany(result.company);
|
||||
```
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="MetadataApiClient" description="Workspace config, applications, and file uploads">
|
||||
<Accordion title="MetadataApiClient" description="Конфигурация рабочего пространства, приложения и загрузка файлов">
|
||||
|
||||
`MetadataApiClient` поставляется в готовом виде вместе с SDK (генерация не требуется). Он выполняет запросы к эндпоинту `/metadata` для получения конфигурации рабочего пространства, приложений и загрузки файлов.
|
||||
|
||||
@@ -1462,7 +1461,7 @@ console.log(uploadedFile);
|
||||
| ---------------------------------- | -------- | ------------------------------------------------------------------ |
|
||||
| `fileBuffer` | `Buffer` | Необработанное содержимое файла |
|
||||
| `filename` | `строка` | Имя файла (используется для хранения и отображения) |
|
||||
| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) |
|
||||
| `contentType` | `string` | Тип MIME (по умолчанию `application/octet-stream`, если не указан) |
|
||||
| `fieldMetadataUniversalIdentifier` | `string` | Значение `universalIdentifier` для поля типа файла в вашем объекте |
|
||||
|
||||
Основные моменты:
|
||||
@@ -1476,24 +1475,24 @@ console.log(uploadedFile);
|
||||
Когда ваш код выполняется на Twenty (логические функции или фронт-компоненты), платформа предоставляет учётные данные в виде переменных окружения:
|
||||
|
||||
* `TWENTY_API_URL` — базовый URL API Twenty
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — краткоживущий ключ, ограниченный ролью функции по умолчанию вашего приложения
|
||||
|
||||
Вам не нужно передавать их клиентам — они автоматически читаются из `process.env`. Права ключа API определяются ролью, указанной в `defaultRoleUniversalIdentifier` в вашем `application-config.ts`.
|
||||
</Note>
|
||||
|
||||
## Testing your app
|
||||
## Тестирование вашего приложения
|
||||
|
||||
The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server.
|
||||
SDK предоставляет программные API, которые позволяют собирать, разворачивать, устанавливать и удалять ваше приложение из тестового кода. В сочетании с [Vitest](https://vitest.dev/) и типизированными клиентами API вы можете писать интеграционные тесты, которые проверяют, что ваше приложение работает сквозным образом на реальном сервере Twenty.
|
||||
|
||||
### Настройка
|
||||
|
||||
The scaffolded app already includes Vitest. If you set it up manually, install the dependencies:
|
||||
Приложение, созданное скэффолдером, уже включает Vitest. Если вы настраиваете его вручную, установите зависимости:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add -D vitest vite-tsconfig-paths
|
||||
```
|
||||
|
||||
Create a `vitest.config.ts` at the root of your app:
|
||||
Создайте `vitest.config.ts` в корне вашего приложения:
|
||||
|
||||
```ts vitest.config.ts
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
@@ -1519,7 +1518,7 @@ export default defineConfig({
|
||||
});
|
||||
```
|
||||
|
||||
Create a setup file that verifies the server is reachable before tests run:
|
||||
Создайте файл инициализации, который проверяет доступность сервера перед запуском тестов:
|
||||
|
||||
```ts src/__tests__/setup-test.ts
|
||||
import * as fs from 'fs';
|
||||
@@ -1559,22 +1558,22 @@ beforeAll(async () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Programmatic SDK APIs
|
||||
### Программные API SDK
|
||||
|
||||
The `twenty-sdk/cli` subpath exports functions you can call directly from test code:
|
||||
Подпуть `twenty-sdk/cli` экспортирует функции, которые можно вызывать напрямую из тестового кода:
|
||||
|
||||
| Функция | Описание |
|
||||
| -------------- | ------------------------------------------- |
|
||||
| `appBuild` | Build the app and optionally pack a tarball |
|
||||
| `appDeploy` | Upload a tarball to the server |
|
||||
| `appInstall` | Install the app on the active workspace |
|
||||
| `appUninstall` | Uninstall the app from the active workspace |
|
||||
| Функция | Описание |
|
||||
| -------------- | ---------------------------------------------------------- |
|
||||
| `appBuild` | Собрать приложение и при необходимости упаковать tar-архив |
|
||||
| `appDeploy` | Загрузить tar-архив на сервер |
|
||||
| `appInstall` | Установить приложение в активное рабочее пространство |
|
||||
| `appUninstall` | Удалить приложение из активного рабочего пространства |
|
||||
|
||||
Each function returns a result object with `success: boolean` and either `data` or `error`.
|
||||
Каждая функция возвращает объект результата с `success: boolean` и либо `data`, либо `error`.
|
||||
|
||||
### Writing an integration test
|
||||
### Написание интеграционного теста
|
||||
|
||||
Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace:
|
||||
Полный пример, который собирает, разворачивает и устанавливает приложение, а затем проверяет, что оно появляется в рабочем пространстве:
|
||||
|
||||
```ts src/__tests__/app-install.integration-test.ts
|
||||
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config';
|
||||
@@ -1637,37 +1636,37 @@ describe('App installation', () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Running tests
|
||||
### Запуск тестов
|
||||
|
||||
Make sure your local Twenty server is running, then:
|
||||
Убедитесь, что ваш локальный сервер Twenty запущен, затем:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test
|
||||
```
|
||||
|
||||
Or in watch mode during development:
|
||||
Или в режиме наблюдения во время разработки:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test:watch
|
||||
```
|
||||
|
||||
### Type checking
|
||||
### Проверка типов
|
||||
|
||||
You can also run type checking on your app without running tests:
|
||||
Вы также можете запустить проверку типов для своего приложения без запуска тестов:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty typecheck
|
||||
```
|
||||
|
||||
This runs `tsc --noEmit` and reports any type errors.
|
||||
Это запускает `tsc --noEmit` и сообщает о любых ошибках типов.
|
||||
|
||||
## Справочник по CLI
|
||||
|
||||
Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations.
|
||||
Помимо `dev`, `build`, `add` и `typecheck`, CLI предоставляет команды для выполнения функций, просмотра логов и управления установками приложений.
|
||||
|
||||
### Executing functions (`yarn twenty exec`)
|
||||
### Выполнение функций (`yarn twenty exec`)
|
||||
|
||||
Run a logic function manually without triggering it via HTTP, cron, or database event:
|
||||
Запустите функцию логики вручную, не вызывая ее через HTTP, cron или событие базы данных:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Execute by function name
|
||||
@@ -1684,9 +1683,9 @@ yarn twenty exec --preInstall
|
||||
yarn twenty exec --postInstall
|
||||
```
|
||||
|
||||
### Viewing function logs (`yarn twenty logs`)
|
||||
### Просмотр логов функций (`yarn twenty logs`)
|
||||
|
||||
Stream execution logs for your app's logic functions:
|
||||
Потоковая передача журналов выполнения функций логики вашего приложения:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Stream all function logs
|
||||
@@ -1700,12 +1699,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
<Note>
|
||||
This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server.
|
||||
Это отличается от `yarn twenty server logs`, который показывает логи контейнера Docker. `yarn twenty logs` показывает журналы выполнения функций вашего приложения с сервера Twenty.
|
||||
</Note>
|
||||
|
||||
### Uninstalling an app (`yarn twenty uninstall`)
|
||||
### Удаление приложения (`yarn twenty uninstall`)
|
||||
|
||||
Remove your app from the active workspace:
|
||||
Удалите свое приложение из активного рабочего пространства:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty uninstall
|
||||
|
||||
@@ -4,142 +4,142 @@ description: Создайте своё первое приложение Twenty
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Приложения сейчас проходят альфа-тестирование. Функция работает, но продолжает развиваться.
|
||||
</Warning>
|
||||
|
||||
Приложения позволяют расширять Twenty с помощью пользовательских объектов, полей, логических функций, навыков ИИ и UI-компонентов — всё это управляется как код.
|
||||
|
||||
## Требования
|
||||
|
||||
Before you begin, make sure the following is installed on your machine:
|
||||
Прежде чем начать, убедитесь, что на вашем компьютере установлено следующее:
|
||||
|
||||
* **Node.js 24+** — [Download here](https://nodejs.org/)
|
||||
* **Yarn 4** — Comes with Node.js via Corepack. Enable it by running `corepack enable`
|
||||
* **Docker** — [Download here](https://www.docker.com/products/docker-desktop/). Required to run a local Twenty instance. Not needed if you already have a Twenty server running.
|
||||
* **Node.js 24+** — [Скачать здесь](https://nodejs.org/)
|
||||
* **Yarn 4** — Поставляется вместе с Node.js через Corepack. Включите его, выполнив `corepack enable`
|
||||
* **Docker** — [Скачать здесь](https://www.docker.com/products/docker-desktop/). Требуется для запуска локального экземпляра Twenty. Не требуется, если у вас уже запущен сервер Twenty.
|
||||
|
||||
## Step 1: Scaffold your app
|
||||
## Шаг 1: Сгенерируйте каркас приложения
|
||||
|
||||
Open a terminal and run:
|
||||
Откройте терминал и выполните:
|
||||
|
||||
```bash filename="Terminal"
|
||||
npx create-twenty-app@latest my-twenty-app
|
||||
```
|
||||
|
||||
You will be prompted to enter a name and a description for your app. Press **Enter** to accept the defaults.
|
||||
Вам будет предложено ввести имя и описание вашего приложения. Нажмите **Enter**, чтобы принять значения по умолчанию.
|
||||
|
||||
This creates a new folder called `my-twenty-app` with everything you need.
|
||||
Будет создана новая папка `my-twenty-app` со всем необходимым.
|
||||
|
||||
<Note>
|
||||
The scaffolder supports these flags:
|
||||
Генератор поддерживает следующие флаги:
|
||||
|
||||
* `--minimal` — scaffold only the essential files, no examples (default)
|
||||
* `--exhaustive` — scaffold all example entities
|
||||
* `--name <name>` — set the app name (skips the prompt)
|
||||
* `--display-name <displayName>` — set the display name (skips the prompt)
|
||||
* `--description <description>` — set the description (skips the prompt)
|
||||
* `--skip-local-instance` — skip the local server setup prompt
|
||||
* `--minimal` — сгенерировать только основные файлы, без примеров (по умолчанию)
|
||||
* `--exhaustive` — сгенерировать все примеры сущностей
|
||||
* `--name <name>` — задать имя приложения (пропускает запрос)
|
||||
* `--display-name <displayName>` — задать отображаемое имя (пропускает запрос)
|
||||
* `--description <description>` — задать описание (пропускает запрос)
|
||||
* `--skip-local-instance` — пропустить запрос на настройку локального сервера
|
||||
</Note>
|
||||
|
||||
## Step 2: Set up a local Twenty instance
|
||||
## Шаг 2: Настройте локальный экземпляр Twenty
|
||||
|
||||
The scaffolder will ask:
|
||||
Скэффолдер спросит:
|
||||
|
||||
> **Would you like to set up a local Twenty instance?**
|
||||
> **Хотите настроить локальный экземпляр Twenty?**
|
||||
|
||||
* **Type `yes`** (recommended) — This pulls the `twenty-app-dev` Docker image and starts a local Twenty server on port `2020`. Make sure Docker is running before you continue.
|
||||
* **Type `no`** — Choose this if you already have a Twenty server running locally.
|
||||
* **Введите `yes`** (рекомендуется) — это скачает Docker-образ `twenty-app-dev` и запустит локальный сервер Twenty на порту `2020`. Перед продолжением убедитесь, что Docker запущен.
|
||||
* **Введите `no`** — выберите это, если у вас уже запущен локальный сервер Twenty.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Should start local instance?" />
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Запустить локальный экземпляр?" />
|
||||
</div>
|
||||
|
||||
## Step 3: Sign in to your workspace
|
||||
## Шаг 3: Войдите в своё рабочее пространство
|
||||
|
||||
Next, a browser window will open with the Twenty login page. Sign in with the pre-seeded demo account:
|
||||
Затем откроется окно браузера со страницей входа в Twenty. Войдите, используя предварительно созданную демонстрационную учётную запись:
|
||||
|
||||
* **Email:** `tim@apple.dev`
|
||||
* **Password:** `tim@apple.dev`
|
||||
* **Электронная почта:** `tim@apple.dev`
|
||||
* **Пароль:** `tim@apple.dev`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty login screen" />
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Экран входа в Twenty" />
|
||||
</div>
|
||||
|
||||
## Step 4: Authorize the app
|
||||
## Шаг 4: Авторизуйте приложение
|
||||
|
||||
After you sign in, you will see an authorization screen. This lets your app interact with your workspace.
|
||||
После входа вы увидите экран авторизации. Это позволит вашему приложению взаимодействовать с вашим рабочим пространством.
|
||||
|
||||
Click **Authorize** to continue.
|
||||
Нажмите **Authorize**, чтобы продолжить.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI authorization screen" />
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Экран авторизации Twenty CLI" />
|
||||
</div>
|
||||
|
||||
Once authorized, your terminal will confirm that everything is set up.
|
||||
После авторизации в терминале появится подтверждение, что всё настроено.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="App scaffolded successfully" />
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="Каркас приложения успешно создан" />
|
||||
</div>
|
||||
|
||||
## Step 5: Start developing
|
||||
## Шаг 5: Начните разработку
|
||||
|
||||
Go into your new app folder and start the development server:
|
||||
Перейдите в папку вашего нового приложения и запустите сервер разработки:
|
||||
|
||||
```bash filename="Terminal"
|
||||
cd my-twenty-app
|
||||
yarn twenty dev
|
||||
```
|
||||
|
||||
This watches your source files, rebuilds on every change, and syncs your app to the local Twenty server automatically. You should see a live status panel in your terminal.
|
||||
Он отслеживает исходные файлы, пересобирает при каждом изменении и автоматически синхронизирует ваше приложение с локальным сервером Twenty. В терминале должна появиться панель текущего статуса.
|
||||
|
||||
For more detailed output (build logs, sync requests, error traces), use the `--verbose` flag:
|
||||
Для более подробного вывода (журналы сборки, запросы синхронизации, трассировки ошибок) используйте флаг `--verbose`:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --verbose
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests. Use `yarn twenty deploy` to deploy to production servers — see [Publishing Apps](/l/ru/developers/extend/apps/publishing) for details.
|
||||
Режим разработки доступен только на экземплярах Twenty, запущенных в режиме разработки (`NODE_ENV=development`). Экземпляры в продакшене отклоняют запросы синхронизации из режима разработки. Используйте `yarn twenty deploy` для развёртывания на продакшен-серверах — подробности см. в разделе [Публикация приложений](/l/ru/developers/extend/apps/publishing).
|
||||
</Warning>
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Dev mode terminal output" />
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Вывод терминала в режиме разработки" />
|
||||
</div>
|
||||
|
||||
## Step 6: See your app in Twenty
|
||||
## Шаг 6: Посмотрите своё приложение в Twenty
|
||||
|
||||
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
|
||||
Откройте [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) в браузере. Перейдите в **Settings > Apps** и выберите вкладку **Developer**. Вы должны увидеть своё приложение в разделе **Your Apps**:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Список Your Apps с приложением My twenty app" />
|
||||
</div>
|
||||
|
||||
Click on **My twenty app** to open its **application registration**. A registration is a server-level record that describes your app — its name, unique identifier, OAuth credentials, and source (local, npm, or tarball). It lives on the server, not inside any specific workspace. When you install an app into a workspace, Twenty creates a workspace-scoped **application** that points back to this registration. One registration can be installed across multiple workspaces on the same server.
|
||||
Нажмите **My twenty app**, чтобы открыть его **регистрацию приложения**. Регистрация — это запись на уровне сервера, описывающая ваше приложение: его имя, уникальный идентификатор, учётные данные OAuth и источник (локальный, npm или tarball). Она хранится на сервере, а не внутри какого-либо конкретного рабочего пространства. Когда вы устанавливаете приложение в рабочее пространство, Twenty создаёт привязанное к рабочему пространству **приложение**, которое ссылается на эту регистрацию. Одну и ту же регистрацию можно установить в нескольких рабочих пространствах на одном сервере.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Сведения о регистрации приложения" />
|
||||
</div>
|
||||
|
||||
Click **View installed app** to see the installed app. The **About** tab shows the current version and management options:
|
||||
Нажмите **View installed app**, чтобы посмотреть установленное приложение. Вкладка **About** показывает текущую версию и параметры управления:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app — About tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Установленное приложение — вкладка About" />
|
||||
</div>
|
||||
|
||||
Switch to the **Content** tab to see everything your app provides — objects, fields, logic functions, and agents:
|
||||
Переключитесь на вкладку **Content**, чтобы увидеть всё, что предоставляет ваше приложение: объекты, поля, логические функции и агенты:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Installed app — Content tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Установленное приложение — вкладка Content" />
|
||||
</div>
|
||||
|
||||
You are all set! Edit any file in `src/` and the changes will be picked up automatically.
|
||||
Готово! Отредактируйте любой файл в `src/`, и изменения будут подхвачены автоматически.
|
||||
|
||||
Head over to [Building Apps](/l/ru/developers/extend/apps/building) for a detailed guide on creating objects, logic functions, front components, skills, and more.
|
||||
Перейдите к разделу [Создание приложений](/l/ru/developers/extend/apps/building) за подробным руководством по созданию объектов, логических функций, фронтенд-компонентов, навыков и многого другого.
|
||||
|
||||
---
|
||||
|
||||
## Project structure
|
||||
## Структура проекта
|
||||
|
||||
The scaffolder generates the following file structure (shown with `--exhaustive` mode, which includes examples for every entity type):
|
||||
Скэффолдер генерирует следующую структуру файлов (показано в режиме `--exhaustive`, который включает примеры для каждого типа сущностей):
|
||||
|
||||
```text filename="my-twenty-app/"
|
||||
my-twenty-app/
|
||||
@@ -190,30 +190,30 @@ my-twenty-app/
|
||||
└── example-agent.ts # Example AI agent definition
|
||||
```
|
||||
|
||||
By default (`--minimal`), only the core files are created: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts`, and `logic-functions/post-install.ts`. Use `--exhaustive` to include all the example files shown above.
|
||||
По умолчанию (`--minimal`) создаются только основные файлы: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts` и `logic-functions/post-install.ts`. Используйте `--exhaustive`, чтобы включить все показанные выше файлы-примеры.
|
||||
|
||||
### Key files
|
||||
### Ключевые файлы
|
||||
|
||||
| File / Folder | Назначение |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `package.json` | Declares your app name, version, and dependencies. Includes a `twenty` script so you can run `yarn twenty help` to see all commands. |
|
||||
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
|
||||
| `src/roles/` | Defines roles that control what your logic functions can access. |
|
||||
| `src/logic-functions/` | Server-side functions triggered by routes, cron schedules, or database events. |
|
||||
| `src/front-components/` | React components that render inside Twenty's UI. |
|
||||
| `src/objects/` | Custom object definitions to extend your data model. |
|
||||
| `src/fields/` | Custom fields added to existing objects. |
|
||||
| `src/views/` | Saved view configurations. |
|
||||
| `src/navigation-menu-items/` | Custom links in the sidebar navigation. |
|
||||
| `src/skills/` | Навыки, расширяющие возможности ИИ-агентов Twenty. |
|
||||
| `src/agents/` | AI agents with custom prompts. |
|
||||
| `src/page-layouts/` | Custom page layouts for record views. |
|
||||
| `src/__tests__/` | Integration tests (setup + example test). |
|
||||
| `public/` | Static assets (images, fonts) served with your app. |
|
||||
| Файл / Папка | Назначение |
|
||||
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `package.json` | Содержит имя, версию и зависимости вашего приложения. Содержит скрипт `twenty`, чтобы вы могли выполнить `yarn twenty help` и увидеть все команды. |
|
||||
| `src/application-config.ts` | **Обязательно.** Основной файл конфигурации для вашего приложения. |
|
||||
| `src/roles/` | Определяет роли, которые контролируют доступ логических функций. |
|
||||
| `src/logic-functions/` | Серверные функции, запускаемые маршрутами, расписаниями cron или событиями базы данных. |
|
||||
| `src/front-components/` | Компоненты React, которые отображаются внутри интерфейса Twenty. |
|
||||
| `src/objects/` | Пользовательские определения объектов для расширения вашей модели данных. |
|
||||
| `src/fields/` | Пользовательские поля, добавляемые к существующим объектам. |
|
||||
| `src/views/` | Конфигурации сохранённых представлений. |
|
||||
| `src/navigation-menu-items/` | Пользовательские ссылки в боковой навигации. |
|
||||
| `src/skills/` | Навыки, расширяющие возможности ИИ-агентов Twenty. |
|
||||
| `src/agents/` | ИИ-агенты с пользовательскими промптами. |
|
||||
| `src/page-layouts/` | Пользовательские макеты страниц для представлений записей. |
|
||||
| `src/__tests__/` | Интеграционные тесты (настройка + пример теста). |
|
||||
| `public/` | Статические ресурсы (изображения, шрифты), обслуживаемые вместе с вашим приложением. |
|
||||
|
||||
## Managing remotes
|
||||
## Управление удалёнными серверами
|
||||
|
||||
A **remote** is a Twenty server that your app connects to. During setup, the scaffolder creates one for you automatically. You can add more remotes or switch between them at any time.
|
||||
Remote — это сервер Twenty, к которому подключается ваше приложение. Во время настройки скэффолдер автоматически создаст его для вас. Вы можете в любой момент добавлять новые remotes или переключаться между ними.
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Add a new remote (opens a browser for OAuth login)
|
||||
@@ -232,11 +232,11 @@ yarn twenty remote list
|
||||
yarn twenty remote switch <name>
|
||||
```
|
||||
|
||||
Your credentials are stored in `~/.twenty/config.json`.
|
||||
Ваши учётные данные хранятся в `~/.twenty/config.json`.
|
||||
|
||||
## Local development server (`yarn twenty server`)
|
||||
## Локальный сервер разработки (`yarn twenty server`)
|
||||
|
||||
The CLI can manage a local Twenty server running in Docker. This is the same server started automatically when you scaffold an app with `create-twenty-app`, but you can also manage it manually.
|
||||
CLI может управлять локальным сервером Twenty, запущенным в Docker. Это тот же сервер, который автоматически запускается при создании каркаса приложения с помощью `create-twenty-app`, но им можно управлять и вручную.
|
||||
|
||||
### Запуск сервера
|
||||
|
||||
@@ -244,85 +244,85 @@ The CLI can manage a local Twenty server running in Docker. This is the same ser
|
||||
yarn twenty server start
|
||||
```
|
||||
|
||||
This pulls the `twentycrm/twenty-app-dev:latest` Docker image (if not already present), creates a container named `twenty-app-dev`, and starts it on port **2020**. The CLI waits until the server passes its health check before returning.
|
||||
Эта команда скачивает Docker-образ `twentycrm/twenty-app-dev:latest` (если его ещё нет), создаёт контейнер с именем `twenty-app-dev` и запускает его на порту **2020**. CLI ждёт, пока сервер пройдёт проверку работоспособности, прежде чем вернуть управление.
|
||||
|
||||
Two Docker volumes are created to persist data between restarts:
|
||||
Создаются два тома Docker для сохранения данных между перезапусками:
|
||||
|
||||
* `twenty-app-dev-data` — PostgreSQL database
|
||||
* `twenty-app-dev-storage` — file storage
|
||||
* `twenty-app-dev-data` — база данных PostgreSQL
|
||||
* `twenty-app-dev-storage` — файловое хранилище
|
||||
|
||||
If port 2020 is already in use, you can start on a different port:
|
||||
Если порт 2020 уже используется, вы можете запустить на другом порту:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server start --port 3030
|
||||
```
|
||||
|
||||
The CLI automatically configures the container's internal `NODE_PORT` and `SERVER_URL` to match the chosen port, so logic functions, OAuth, and all other internal networking work correctly.
|
||||
CLI автоматически настраивает внутренние `NODE_PORT` и `SERVER_URL` контейнера в соответствии с выбранным портом, чтобы логические функции, OAuth и прочие внутренние сетевые взаимодействия работали корректно.
|
||||
|
||||
Once started, the server is automatically registered as the `local` remote in your CLI config.
|
||||
После запуска сервер автоматически регистрируется как remote `local` в конфигурации вашего CLI.
|
||||
|
||||
### Checking server status
|
||||
### Проверка состояния сервера
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server status
|
||||
```
|
||||
|
||||
Displays whether the server is running, its URL, and the default login credentials (`tim@apple.dev` / `tim@apple.dev`).
|
||||
Показывает, запущен ли сервер, его URL и учётные данные по умолчанию (`tim@apple.dev` / `tim@apple.dev`).
|
||||
|
||||
### Viewing server logs
|
||||
### Просмотр журналов сервера
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs
|
||||
```
|
||||
|
||||
Streams the container logs. Use `--lines` to control how many recent lines to show:
|
||||
Выводит журналы контейнера в потоковом режиме. Используйте `--lines`, чтобы задать, сколько последних строк показывать:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs --lines 100
|
||||
```
|
||||
|
||||
### Stopping the server
|
||||
### Остановка сервера
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server stop
|
||||
```
|
||||
|
||||
Stops the container. Your data is preserved in the Docker volumes — the next `start` picks up where you left off.
|
||||
Останавливает контейнер. Ваши данные сохраняются в томах Docker — следующий `start` продолжит с того места, где вы остановились.
|
||||
|
||||
### Resetting the server
|
||||
### Сброс сервера
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server reset
|
||||
```
|
||||
|
||||
Removes the container **and** deletes both Docker volumes, wiping all data. The next `start` creates a fresh instance.
|
||||
Удаляет контейнер и оба тома Docker, полностью стирая все данные. Следующий `start` создаст новый чистый экземпляр.
|
||||
|
||||
<Note>
|
||||
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
|
||||
Для работы сервера необходимо, чтобы **Docker** был запущен. Если вы видите ошибку "Docker not running", убедитесь, что запущен Docker Desktop (или демон Docker).
|
||||
</Note>
|
||||
|
||||
### Command reference
|
||||
### Справочник команд
|
||||
|
||||
| Команда | Описание |
|
||||
| -------------------------------------- | ---------------------------------------------- |
|
||||
| `yarn twenty server start` | Start the local server (pulls image if needed) |
|
||||
| `yarn twenty server start --port 3030` | Start on a custom port |
|
||||
| `yarn twenty server stop` | Stop the server (preserves data) |
|
||||
| `yarn twenty server status` | Show server status, URL, and credentials |
|
||||
| `yarn twenty server logs` | Stream server logs |
|
||||
| `yarn twenty server logs --lines 100` | Show the last 100 log lines |
|
||||
| `yarn twenty server reset` | Delete all data and start fresh |
|
||||
| Команда | Описание |
|
||||
| -------------------------------------- | -------------------------------------------------------------- |
|
||||
| `yarn twenty server start` | Запустить локальный сервер (при необходимости скачивает образ) |
|
||||
| `yarn twenty server start --port 3030` | Запустить на пользовательском порту |
|
||||
| `yarn twenty server stop` | Остановить сервер (данные сохраняются) |
|
||||
| `yarn twenty server status` | Показать состояние сервера, URL и учётные данные |
|
||||
| `yarn twenty server logs` | Потоковый вывод журналов сервера |
|
||||
| `yarn twenty server logs --lines 100` | Показать последние 100 строк журнала |
|
||||
| `yarn twenty server reset` | Удалить все данные и начать с чистого листа |
|
||||
|
||||
## CI with GitHub Actions
|
||||
## CI с GitHub Actions
|
||||
|
||||
The scaffolder generates a ready-to-use GitHub Actions workflow at `.github/workflows/ci.yml`. It runs your integration tests automatically on every push to `main` and on pull requests.
|
||||
Скэффолдер генерирует готовый к использованию workflow GitHub Actions в `.github/workflows/ci.yml`. Он автоматически запускает ваши интеграционные тесты при каждом пуше в `main` и в pull request'ах.
|
||||
|
||||
The workflow:
|
||||
Рабочий процесс:
|
||||
|
||||
1. Checks out your code
|
||||
2. Spins up a temporary Twenty server using the `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` action
|
||||
3. Installs dependencies with `yarn install --immutable`
|
||||
4. Runs `yarn test` with `TWENTY_API_URL` and `TWENTY_API_KEY` injected from the action outputs
|
||||
1. Извлекает ваш код
|
||||
2. Поднимает временный сервер Twenty с помощью экшена `twentyhq/twenty/.github/actions/spawn-twenty-docker-image`
|
||||
3. Устанавливает зависимости с помощью `yarn install --immutable`
|
||||
4. Запускает `yarn test` с `TWENTY_API_URL` и `TWENTY_API_KEY`, переданными из выходных данных экшена
|
||||
|
||||
```yaml .github/workflows/ci.yml
|
||||
name: CI
|
||||
@@ -369,21 +369,21 @@ jobs:
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
```
|
||||
|
||||
You don't need to configure any secrets — the `spawn-twenty-docker-image` action starts an ephemeral Twenty server directly in the runner and outputs the connection details. The `GITHUB_TOKEN` secret is provided automatically by GitHub.
|
||||
Вам не нужно настраивать секреты — экшен `spawn-twenty-docker-image` запускает эфемерный сервер Twenty прямо в раннере и выводит данные для подключения. Секрет `GITHUB_TOKEN` предоставляется GitHub автоматически.
|
||||
|
||||
To pin a specific Twenty version instead of `latest`, change the `TWENTY_VERSION` environment variable at the top of the workflow.
|
||||
Чтобы закрепить конкретную версию Twenty вместо `latest`, измените переменную окружения `TWENTY_VERSION` в начале workflow.
|
||||
|
||||
## Ручная настройка (без генератора)
|
||||
|
||||
If you prefer to set things up yourself instead of using `create-twenty-app`, you can do it in two steps.
|
||||
Если вы предпочитаете настроить всё самостоятельно, не используя `create-twenty-app`, это можно сделать в два шага.
|
||||
|
||||
**1. Add `twenty-sdk` and `twenty-client-sdk` as dependencies:**
|
||||
**1. Добавьте `twenty-sdk` и `twenty-client-sdk` в зависимости:**
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add twenty-sdk twenty-client-sdk
|
||||
```
|
||||
|
||||
**2. Add a `twenty` script to your `package.json`:**
|
||||
**2. Добавьте скрипт `twenty` в ваш `package.json`:**
|
||||
|
||||
```json filename="package.json"
|
||||
{
|
||||
@@ -393,19 +393,19 @@ yarn add twenty-sdk twenty-client-sdk
|
||||
}
|
||||
```
|
||||
|
||||
You can now run `yarn twenty dev`, `yarn twenty help`, and all other commands.
|
||||
Теперь вы можете запускать `yarn twenty dev`, `yarn twenty help` и все остальные команды.
|
||||
|
||||
<Note>
|
||||
Do not install `twenty-sdk` globally. Always use it as a local project dependency so that each project can pin its own version.
|
||||
Не устанавливайте `twenty-sdk` глобально. Всегда используйте его как локальную зависимость проекта, чтобы каждый проект мог закреплять свою версию.
|
||||
</Note>
|
||||
|
||||
## Устранение неполадок
|
||||
|
||||
If you run into issues:
|
||||
Если столкнётесь с проблемами:
|
||||
|
||||
* Make sure **Docker is running** before starting the scaffolder with a local instance.
|
||||
* Make sure you are using **Node.js 24+** (`node -v` to check).
|
||||
* Make sure **Corepack is enabled** (`corepack enable`) so Yarn 4 is available.
|
||||
* Try deleting `node_modules` and running `yarn install` again if dependencies seem broken.
|
||||
* Перед запуском генератора с локальным экземпляром убедитесь, что **Docker запущен**.
|
||||
* Убедитесь, что используете **Node.js 24+** (`node -v` для проверки).
|
||||
* Убедитесь, что **Corepack включён** (`corepack enable`), чтобы Yarn 4 был доступен.
|
||||
* Если зависимости, похоже, повреждены, попробуйте удалить `node_modules` и снова выполнить `yarn install`.
|
||||
|
||||
Still stuck? Ask for help on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
Все ещё не получается? Попросите помощи на [Discord-сервере Twenty](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
|
||||
@@ -4,24 +4,24 @@ description: Nesneleri, mantık fonksiyonlarını, ön uç bileşenlerini ve dah
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Uygulamalar şu anda alfa aşamasında. Özellik işlevsel ancak hâlâ gelişmekte.
|
||||
</Warning>
|
||||
|
||||
The `twenty-sdk` package provides typed building blocks to create your app. This page covers every entity type and API client available in the SDK.
|
||||
`twenty-sdk` paketi, uygulamanızı oluşturmak için türlendirilmiş yapı taşları sağlar. Bu sayfa, SDK'da mevcut olan tüm varlık türlerini ve API istemcilerini kapsar.
|
||||
|
||||
## DefineEntity functions
|
||||
## DefineEntity fonksiyonları
|
||||
|
||||
The SDK provides functions to define your app entities. You must use `export default defineEntity({...})` for the SDK to detect your entities. Bu fonksiyonlar, derleme zamanında yapılandırmanızı doğrular ve IDE otomatik tamamlama ile tür güvenliği sağlar.
|
||||
SDK, uygulama varlıklarınızı tanımlamak için fonksiyonlar sağlar. SDK'nin varlıklarınızı algılayabilmesi için `export default defineEntity({...})` kullanmanız gerekir. Bu fonksiyonlar, derleme zamanında yapılandırmanızı doğrular ve IDE otomatik tamamlama ile tür güvenliği sağlar.
|
||||
|
||||
<Note>
|
||||
**File organization is up to you.**
|
||||
Entity detection is AST-based — the SDK finds `export default defineEntity(...)` calls regardless of where the file lives. Grouping files by type (e.g., `logic-functions/`, `roles/`) is just a convention, not a requirement.
|
||||
**Dosya organizasyonu size kalmış.**
|
||||
Varlık algılama AST tabanlıdır — dosyanın nerede bulunduğundan bağımsız olarak SDK `export default defineEntity(...)` çağrılarını bulur. Dosyaları türe göre gruplamak (örn. `logic-functions/`, `roles/`) bir gereklilik değil, yalnızca bir gelenektir.
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="defineRole" description="Rol izinlerini ve nesne erişimini yapılandırın">
|
||||
|
||||
Roles encapsulate permissions on your workspace's objects and actions.
|
||||
Roller, çalışma alanınızdaki nesneler ve eylemler üzerindeki izinleri kapsar.
|
||||
|
||||
```ts restricted-company-role.ts
|
||||
import {
|
||||
@@ -69,12 +69,12 @@ export default defineRole({
|
||||
</Accordion>
|
||||
<Accordion title="defineApplication" description="Uygulama meta verilerini yapılandırın (zorunlu, uygulama başına bir adet)">
|
||||
|
||||
Every app must have exactly one `defineApplication` call that describes:
|
||||
Her uygulamanın, şunları tanımlayan tam olarak bir adet `defineApplication` çağrısı olmalıdır:
|
||||
|
||||
* **Identity**: identifiers, display name, and description.
|
||||
* **Permissions**: which role its functions and front components use.
|
||||
* **(Optional) Variables**: key–value pairs exposed to your functions as environment variables.
|
||||
* **(Optional) Pre-install / post-install functions**: logic functions that run before or after installation.
|
||||
* **Kimlik**: tanımlayıcılar, görünen ad ve açıklama.
|
||||
* **İzinler**: işlevlerinin ve ön bileşenlerinin hangi rolü kullandığı.
|
||||
* **(İsteğe bağlı) Değişkenler**: fonksiyonlarınıza ortam değişkenleri olarak sunulan anahtar–değer çiftleri.
|
||||
* **(İsteğe bağlı) Kurulum öncesi / kurulum sonrası fonksiyonlar**: kurulumdan önce veya sonra çalışan mantık fonksiyonları.
|
||||
|
||||
```ts src/application-config.ts
|
||||
import { defineApplication } from 'twenty-sdk';
|
||||
@@ -98,21 +98,21 @@ export default defineApplication({
|
||||
```
|
||||
|
||||
Notlar:
|
||||
* `universalIdentifier` fields are deterministic IDs you own. Generate them once and keep them stable across syncs.
|
||||
* `applicationVariables` become environment variables for your functions and front components (e.g., `DEFAULT_RECIPIENT_NAME` is available as `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` must reference a role defined with `defineRole()` (see above).
|
||||
* Pre-install and post-install functions are detected automatically during the manifest build — you do not need to reference them in `defineApplication()`.
|
||||
* `universalIdentifier` alanları, size ait deterministik kimliklerdir. Bunları bir kez oluşturun ve senkronizasyonlar boyunca kararlı tutun.
|
||||
* `applicationVariables`, fonksiyonlarınız ve ön bileşenleriniz için ortam değişkenlerine dönüşür (örn. `DEFAULT_RECIPIENT_NAME`, `process.env.DEFAULT_RECIPIENT_NAME` olarak kullanılabilir).
|
||||
* `defaultRoleUniversalIdentifier`, `defineRole()` ile tanımlanmış bir role referans vermelidir (yukarıya bakın).
|
||||
* Kurulum öncesi ve kurulum sonrası fonksiyonlar manifest derlemesi sırasında otomatik olarak algılanır — bunlara `defineApplication()` içinde referans vermeniz gerekmez.
|
||||
|
||||
#### Pazaryeri meta verileri
|
||||
|
||||
If you plan to [publish your app](/l/tr/developers/extend/apps/publishing), these optional fields control how it appears in the marketplace:
|
||||
Eğer [uygulamanızı yayımlamayı](/l/tr/developers/extend/apps/publishing) planlıyorsanız, bu isteğe bağlı alanlar uygulamanızın pazaryerinde nasıl görüneceğini kontrol eder:
|
||||
|
||||
| Alan | Açıklama |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `author` | Yazar veya şirket adı |
|
||||
| `category` | Pazaryerinde filtreleme için uygulama kategorisi |
|
||||
| `logoUrl` | Path to your app logo (e.g., `public/logo.png`) |
|
||||
| `screenshots` | Array of screenshot paths (e.g., `public/screenshot-1.png`) |
|
||||
| `logoUrl` | Uygulamanızın logosuna giden yol (örn. `public/logo.png`) |
|
||||
| `screenshots` | Ekran görüntüsü yollarının dizisi (örn. `public/screenshot-1.png`) |
|
||||
| `aboutDescription` | "Hakkında" sekmesi için daha uzun bir markdown açıklaması. Belirtilmezse, pazaryeri npm'deki paketin `README.md` dosyasını kullanır |
|
||||
| `websiteUrl` | Web sitenize bağlantı |
|
||||
| `termsUrl` | Hizmet Koşulları'na bağlantı |
|
||||
@@ -121,15 +121,15 @@ If you plan to [publish your app](/l/tr/developers/extend/apps/publishing), thes
|
||||
|
||||
#### Roller ve izinler
|
||||
|
||||
The `defaultRoleUniversalIdentifier` in `application-config.ts` designates the default role used by your app's logic functions and front components. See `defineRole` above for details.
|
||||
`application-config.ts` içindeki `defaultRoleUniversalIdentifier`, uygulamanızın mantık fonksiyonları ve ön bileşenleri tarafından kullanılan varsayılan rolü belirtir. Ayrıntılar için yukarıdaki `defineRole` bölümüne bakın.
|
||||
|
||||
* The runtime token injected as `TWENTY_APP_ACCESS_TOKEN` is derived from this role.
|
||||
* The typed client is restricted to the permissions granted to that role.
|
||||
* Follow least-privilege: create a dedicated role with only the permissions your functions need.
|
||||
* `TWENTY_APP_ACCESS_TOKEN` olarak enjekte edilen çalışma zamanı belirteci bu rolden türetilir.
|
||||
* Türlendirilmiş istemci, o role tanınan izinlerle sınırlandırılır.
|
||||
* En az ayrıcalık ilkesini izleyin: Yalnızca fonksiyonlarınızın ihtiyaç duyduğu izinlere sahip özel bir rol oluşturun.
|
||||
|
||||
##### Default function role
|
||||
##### Varsayılan fonksiyon rolü
|
||||
|
||||
When you scaffold a new app, the CLI creates a default role file:
|
||||
Yeni bir uygulama iskeleti oluşturduğunuzda, CLI varsayılan bir rol dosyası oluşturur:
|
||||
|
||||
```ts src/roles/default-role.ts
|
||||
import { defineRole, PermissionFlag } from 'twenty-sdk';
|
||||
@@ -155,16 +155,16 @@ export default defineRole({
|
||||
});
|
||||
```
|
||||
|
||||
This role's `universalIdentifier` is referenced in `application-config.ts` as `defaultRoleUniversalIdentifier`:
|
||||
Bu rolün `universalIdentifier` değeri, `application-config.ts` içinde `defaultRoleUniversalIdentifier` olarak referans verilir:
|
||||
|
||||
* **\*.role.ts** defines what the role can do.
|
||||
* **\*.role.ts**, bir rolün neler yapabileceğini tanımlar.
|
||||
* **application-config.ts**, fonksiyonlarınızın izinlerini devralması için bu role işaret eder.
|
||||
|
||||
Notlar:
|
||||
* Oluşturulan rolden başlayın ve en az ayrıcalık ilkesini izleyerek bunu aşamalı olarak kısıtlayın.
|
||||
* Replace `objectPermissions` and `fieldPermissions` with the objects and fields your functions actually need.
|
||||
* `permissionFlags`, platform düzeyindeki yeteneklere erişimi kontrol eder. Keep them minimal.
|
||||
* See a working example: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
* `objectPermissions` ve `fieldPermissions` değerlerini, fonksiyonlarınızın ihtiyaç duyduğu nesneler ve alanlarla değiştirin.
|
||||
* `permissionFlags`, platform düzeyindeki yeteneklere erişimi kontrol eder. Bunları asgari düzeyde tutun.
|
||||
* Çalışan bir örnek için bkz.: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineObject" description="Alanlara sahip özel nesneler tanımlayın">
|
||||
@@ -256,7 +256,7 @@ ancak bu önerilmez.
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Standard fields" description="Mevcut nesneleri ek alanlarla genişletin">
|
||||
<Accordion title="defineField — Standart alanlar" description="Mevcut nesneleri ek alanlarla genişletin">
|
||||
|
||||
Sahibi olmadığınız nesnelere alan eklemek için `defineField()` kullanın — standart Twenty nesneleri (Person, Company, vb.) gibi. veya diğer uygulamalardaki nesneler. `defineObject()` içindeki satır içi alanların aksine, bağımsız alanlar hangi nesneyi genişlettiklerini belirtmek için bir `objectUniversalIdentifier` gerektirir:
|
||||
|
||||
@@ -284,7 +284,7 @@ export default defineField({
|
||||
* `defineField()`, `defineObject()` ile oluşturmadığınız nesnelere alan eklemenin tek yoludur.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Relation fields" description="Connect objects together with bidirectional relations">
|
||||
<Accordion title="defineField — İlişki alanları" description="Nesneleri çift yönlü ilişkilerle birbirine bağlayın">
|
||||
|
||||
İlişkiler nesneleri birbirine bağlar. Twenty'de ilişkiler her zaman **çift yönlüdür** — her iki tarafı da tanımlarsınız ve her taraf diğerine başvurur.
|
||||
|
||||
@@ -443,7 +443,7 @@ export default defineObject({
|
||||
});
|
||||
```
|
||||
</Accordion>
|
||||
<Accordion title="defineLogicFunction" description="Define logic functions and their triggers">
|
||||
<Accordion title="defineLogicFunction" description="Mantık fonksiyonlarını ve tetikleyicilerini tanımlayın">
|
||||
|
||||
Her fonksiyon dosyası, bir işleyici ve isteğe bağlı tetikleyiciler içeren bir yapılandırmayı dışa aktarmak için `defineLogicFunction()` kullanır.
|
||||
|
||||
@@ -487,15 +487,15 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
Available trigger types:
|
||||
* **httpRoute**: Exposes your function on an HTTP path and method **under the `/s/` endpoint**:
|
||||
> e.g. `path: '/post-card/create'` is callable at `https://your-twenty-server.com/s/post-card/create`
|
||||
Kullanılabilir tetikleyici türleri:
|
||||
* **httpRoute**: Fonksiyonunuzu bir HTTP yolu ve yöntemiyle **`/s/` uç noktasının altında** kullanıma sunar:
|
||||
> örn. `path: '/post-card/create'` `https://your-twenty-server.com/s/post-card/create` adresinden çağrılabilir
|
||||
* **cron**: Bir CRON ifadesi kullanarak fonksiyonunuzu bir zamanlamayla çalıştırır.
|
||||
* **databaseEvent**: Çalışma alanı nesnesi yaşam döngüsü olaylarında çalışır. Olay işlemi `updated` olduğunda, dinlenecek belirli alanlar `updatedFields` dizisinde belirtilebilir. Tanımsız veya boş bırakılırsa, herhangi bir güncelleme fonksiyonu tetikler.
|
||||
> e.g. `person.updated`, `*.created`, `company.*`
|
||||
> örn. `person.updated`, `*.created`, `company.*`
|
||||
|
||||
<Note>
|
||||
You can also manually execute a function using the CLI:
|
||||
Bir fonksiyonu CLI kullanarak manuel olarak da çalıştırabilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
@@ -505,7 +505,7 @@ yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
yarn twenty exec -y e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
You can watch logs with:
|
||||
Günlükleri şu şekilde izleyebilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty logs
|
||||
@@ -514,9 +514,9 @@ yarn twenty logs
|
||||
|
||||
#### Rota tetikleyicisi yükü
|
||||
|
||||
When a route trigger invokes your logic function, it receives a `RoutePayload` object that follows the
|
||||
[AWS HTTP API v2 format](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Import the `RoutePayload` type from `twenty-sdk`:
|
||||
Bir rota tetikleyicisi mantık fonksiyonunuzu çağırdığında,
|
||||
[AWS HTTP API v2 formatını](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html) izleyen bir `RoutePayload` nesnesi alır.
|
||||
`RoutePayload` türünü `twenty-sdk` içinden içe aktarın:
|
||||
|
||||
```ts
|
||||
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
|
||||
@@ -533,9 +533,9 @@ const handler = async (event: RoutePayload) => {
|
||||
|
||||
| Özellik | Tür | Açıklama | Örnek |
|
||||
| ---------------------------- | ------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP başlıkları (`forwardedRequestHeaders` içinde listelenenlerle sınırlı) | see section below |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP başlıkları (`forwardedRequestHeaders` içinde listelenenlerle sınırlı) | aşağıdaki bölüme bakın |
|
||||
| `queryStringParameters` | `Record<string, string \| undefined>` | Sorgu dizesi parametreleri (birden çok değer virgülle birleştirilir) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Path parameters extracted from the route pattern | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Rota deseninden çıkarılan yol parametreleri | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `body` | `object \| null` | Ayrıştırılmış istek gövdesi (JSON) | `{ id: 1 }` -> `{ id: 1 }` |
|
||||
| `isBase64Encoded` | `boolean` | Gövdenin base64 ile kodlanıp kodlanmadığı | |
|
||||
| `requestContext.http.method` | `string` | HTTP yöntemi (GET, POST, PUT, PATCH, DELETE) | |
|
||||
@@ -545,7 +545,7 @@ const handler = async (event: RoutePayload) => {
|
||||
#### forwardedRequestHeaders
|
||||
|
||||
Varsayılan olarak, güvenlik nedenleriyle gelen isteklerden HTTP başlıkları mantık fonksiyonunuza **aktarılmaz**.
|
||||
To access specific headers, list them in the `forwardedRequestHeaders` array:
|
||||
Belirli başlıklara erişmek için bunları `forwardedRequestHeaders` dizisinde listeleyin:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -561,7 +561,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
In your handler, access the forwarded headers like this:
|
||||
İşleyicinizde, iletilen başlıklara şu şekilde erişin:
|
||||
|
||||
```ts
|
||||
const handler = async (event: RoutePayload) => {
|
||||
@@ -574,14 +574,14 @@ const handler = async (event: RoutePayload) => {
|
||||
```
|
||||
|
||||
<Note>
|
||||
Başlık adları küçük harfe normalize edilir. Access them using lowercase keys (e.g., `event.headers['content-type']`).
|
||||
Başlık adları küçük harfe normalize edilir. Onlara küçük harfli anahtarlarla erişin (örneğin, `event.headers['content-type']`).
|
||||
</Note>
|
||||
|
||||
#### Exposing a function as a tool
|
||||
#### Bir fonksiyonu araç olarak sunma
|
||||
|
||||
Mantık işlevleri, yapay zeka ajanları ve iş akışları için **araçlar** olarak sunulabilir. When marked as a tool, a function becomes discoverable by Twenty's AI features and can be used in workflow automations.
|
||||
Mantık işlevleri, yapay zeka ajanları ve iş akışları için **araçlar** olarak sunulabilir. Bir fonksiyon bir araç olarak işaretlendiğinde, Twenty'nin yapay zeka özellikleri tarafından keşfedilebilir hâle gelir ve iş akışı otomasyonlarında kullanılabilir.
|
||||
|
||||
To mark a logic function as a tool, set `isTool: true`:
|
||||
Bir mantık fonksiyonunu araç olarak işaretlemek için `isTool: true` olarak ayarlayın:
|
||||
|
||||
```ts src/logic-functions/enrich-company.logic-function.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -617,8 +617,8 @@ export default defineLogicFunction({
|
||||
|
||||
Önemli noktalar:
|
||||
|
||||
* You can combine `isTool` with triggers — a function can be both a tool (callable by AI agents) and triggered by events at the same time.
|
||||
* **`toolInputSchema`** (optional): A JSON Schema object describing the parameters your function accepts. The schema is computed automatically from source code static analysis, but you can set it explicitly:
|
||||
* `isTool` özelliğini tetikleyicilerle birleştirebilirsiniz — bir fonksiyon aynı anda hem bir araç (yapay zeka ajanları tarafından çağrılabilir) olabilir hem de olaylar tarafından tetiklenebilir.
|
||||
* **`toolInputSchema`** (isteğe bağlı): Fonksiyonunuzun kabul ettiği parametreleri tanımlayan bir JSON Schema nesnesi. Şema, kaynak kodun statik analizinden otomatik olarak oluşturulur, ancak bunu açıkça belirleyebilirsiniz:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -715,11 +715,11 @@ yarn twenty exec --postInstall
|
||||
</Accordion>
|
||||
<Accordion title="defineFrontComponent" description="Özel kullanıcı arayüzü için ön uç bileşenlerini tanımlayın">
|
||||
|
||||
Front components are React components that render directly inside Twenty's UI. They run in an **isolated Web Worker** using Remote DOM — your code is sandboxed but renders natively in the page, not in an iframe.
|
||||
Ön uç bileşenler, Twenty'nin UI'si içinde doğrudan görüntülenen React bileşenleridir. Remote DOM kullanan izole bir Web Worker içinde çalışırlar — kodunuz izole bir ortamda (sandbox) çalışır ancak bir iframe içinde değil, sayfada yerel olarak işlenir.
|
||||
|
||||
#### Basic example
|
||||
#### Basit örnek
|
||||
|
||||
The quickest way to see a front component in action is to register it as a **command**. Adding a `command` field with `isPinned: true` makes it appear as a quick-action button in the top-right corner of the page — no page layout needed:
|
||||
Bir ön uç bileşenini çalışırken görmenin en hızlı yolu, onu bir komut olarak kaydetmektir. `isPinned: true` ile bir `command` alanı eklemek, sayfanın sağ üst köşesinde hızlı işlem düğmesi olarak görünmesini sağlar — herhangi bir sayfa düzenine gerek yoktur:
|
||||
|
||||
```tsx src/front-components/hello-world.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -749,34 +749,34 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
After syncing with `yarn twenty dev`, the quick action appears in the top-right corner of the page:
|
||||
`yarn twenty dev` ile senkronize ettikten sonra, hızlı işlem sayfanın sağ üst köşesinde görünür:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Quick action button in the top-right corner" />
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Sağ üst köşedeki hızlı işlem düğmesi" />
|
||||
</div>
|
||||
|
||||
Click it to render the component inline.
|
||||
Bileşeni satır içi işlemek için üzerine tıklayın.
|
||||
|
||||
{/* TODO: add screenshot of the rendered front component */}
|
||||
|
||||
#### Configuration fields
|
||||
#### Yapılandırma alanları
|
||||
|
||||
| Alan | Zorunlu | Açıklama |
|
||||
| --------------------- | ------- | ----------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Evet | Stable unique ID for this component |
|
||||
| `component` | Evet | A React component function |
|
||||
| `name` | Hayır | Display name |
|
||||
| `description` | Hayır | Description of what the component does |
|
||||
| `isHeadless` | Hayır | Set to `true` if the component has no visible UI (see below) |
|
||||
| `command` | Hayır | Register the component as a command (see [command options](#command-options) below) |
|
||||
| Alan | Zorunlu | Açıklama |
|
||||
| --------------------- | ------- | ------------------------------------------------------------------------------------------ |
|
||||
| `universalIdentifier` | Evet | Bu bileşen için kalıcı benzersiz kimlik |
|
||||
| `component` | Evet | Bir React bileşen fonksiyonu |
|
||||
| `name` | Hayır | Görünen Ad |
|
||||
| `description` | Hayır | Bileşenin ne yaptığına dair açıklama |
|
||||
| `isHeadless` | Hayır | Bileşenin görünür bir kullanıcı arayüzü yoksa `true` olarak ayarlayın (aşağıya bakın) |
|
||||
| `command` | Hayır | Bileşeni bir komut olarak kaydedin (aşağıda [komut seçeneklerine](#command-options) bakın) |
|
||||
|
||||
#### Placing a front component on a page
|
||||
#### Bir ön uç bileşenini bir sayfaya yerleştirme
|
||||
|
||||
Beyond commands, you can embed a front component directly into a record page by adding it as a widget in a **page layout**. See the [definePageLayout](#definepagelayout) section for details.
|
||||
Komutların ötesinde, bir ön uç bileşenini bir **sayfa düzeninde** widget olarak ekleyerek doğrudan bir kayıt sayfasına gömebilirsiniz. Ayrıntılar için [definePageLayout](#definepagelayout) bölümüne bakın.
|
||||
|
||||
#### Headless components (`isHeadless: true`)
|
||||
#### Headless bileşenler (`isHeadless: true`)
|
||||
|
||||
Headless components render no visible UI but still run React logic. This is useful for **effect components** — components that perform side effects when mounted, such as syncing data, starting a timer, listening to events, or triggering a notification.
|
||||
Headless bileşenler görünür bir kullanıcı arayüzü oluşturmaz ancak yine de React mantığını çalıştırır. Bu, **etki bileşenleri** için kullanışlıdır — bağlandıklarında veri senkronizasyonu yapmak, bir zamanlayıcı başlatmak, olayları dinlemek veya bir bildirimi tetiklemek gibi yan etkiler gerçekleştiren bileşenler.
|
||||
|
||||
```tsx src/front-components/sync-tracker.tsx
|
||||
import { defineFrontComponent, useRecordId, enqueueSnackbar } from 'twenty-sdk';
|
||||
@@ -801,11 +801,11 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Because the component returns `null`, Twenty skips rendering a container for it — no empty space appears in the layout. The component still has access to all hooks and the host communication API.
|
||||
Bileşen `null` döndürdüğü için, Twenty bunun için bir kapsayıcı oluşturmayı atlar — düzende boş alan görünmez. Bileşen yine de tüm hook'lara ve host iletişim API'sine erişime sahiptir.
|
||||
|
||||
#### Accessing runtime context
|
||||
#### Çalışma zamanı bağlamına erişme
|
||||
|
||||
Inside your component, use SDK hooks to access the current user, record, and component instance:
|
||||
Bileşeninizin içinde, geçerli kullanıcıya, kayda ve bileşen örneğine erişmek için SDK hook'larını kullanın:
|
||||
|
||||
```tsx src/front-components/record-info.tsx
|
||||
import {
|
||||
@@ -836,47 +836,47 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
Available hooks:
|
||||
Kullanılabilir hook'lar:
|
||||
|
||||
| Hook | Returns | Açıklama |
|
||||
| --------------------------------------------- | ------------------ | ---------------------------------------------------------- |
|
||||
| `useUserId()` | `string` or `null` | The current user's ID |
|
||||
| `useRecordId()` | `string` or `null` | The current record's ID (when placed on a record page) |
|
||||
| `useFrontComponentId()` | `string` | This component instance's ID |
|
||||
| `useFrontComponentExecutionContext(selector)` | değişir | Access the full execution context with a selector function |
|
||||
| Hook | Döndürür | Açıklama |
|
||||
| --------------------------------------------- | -------------------- | ------------------------------------------------------------- |
|
||||
| `useUserId()` | `string` veya `null` | Geçerli kullanıcının ID'si |
|
||||
| `useRecordId()` | `string` veya `null` | Geçerli kaydın ID'si (bir kayıt sayfasına yerleştirildiğinde) |
|
||||
| `useFrontComponentId()` | `string` | Bu bileşen örneğinin ID'si |
|
||||
| `useFrontComponentExecutionContext(selector)` | değişir | Bir seçici işlevle tam yürütme bağlamına erişin |
|
||||
|
||||
#### Host communication API
|
||||
#### Host iletişim API'si
|
||||
|
||||
Front components can trigger navigation, modals, and notifications using functions from `twenty-sdk`:
|
||||
Ön uç bileşenleri, `twenty-sdk`'deki işlevleri kullanarak gezinmeyi, modalları ve bildirimleri tetikleyebilir:
|
||||
|
||||
| Fonksiyon | Açıklama |
|
||||
| ----------------------------------------------- | ----------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Navigate to a page in the app |
|
||||
| `openSidePanelPage(params)` | Open a side panel |
|
||||
| `closeSidePanel()` | Yan paneli kapat |
|
||||
| `openCommandConfirmationModal(params)` | Show a confirmation dialog |
|
||||
| `enqueueSnackbar(params)` | Show a toast notification |
|
||||
| `unmountFrontComponent()` | Unmount the component |
|
||||
| `updateProgress(progress)` | Update a progress indicator |
|
||||
| Fonksiyon | Açıklama |
|
||||
| ----------------------------------------------- | ---------------------------------- |
|
||||
| `navigate(to, params?, queryParams?, options?)` | Uygulamada bir sayfaya git |
|
||||
| `openSidePanelPage(params)` | Bir yan panel aç |
|
||||
| `closeSidePanel()` | Yan paneli kapat |
|
||||
| `openCommandConfirmationModal(params)` | Bir onay iletişim kutusu göster |
|
||||
| `enqueueSnackbar(params)` | Bir toast bildirimi göster |
|
||||
| `unmountFrontComponent()` | Bileşeni kaldır (unmount) |
|
||||
| `updateProgress(progress)` | Bir ilerleme göstergesini güncelle |
|
||||
|
||||
#### Command options
|
||||
#### Komut seçenekleri
|
||||
|
||||
Adding a `command` field to `defineFrontComponent` registers the component in the command menu (Cmd+K). If `isPinned` is `true`, it also appears as a quick-action button in the top-right corner of the page.
|
||||
`defineFrontComponent` içine bir `command` alanı eklemek, bileşeni komut menüsüne (Cmd+K) kaydeder. `isPinned` `true` ise, sayfanın sağ üst köşesinde bir hızlı işlem düğmesi olarak da görünür.
|
||||
|
||||
| Alan | Zorunlu | Açıklama |
|
||||
| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `universalIdentifier` | Evet | Stable unique ID for the command |
|
||||
| `label` | Evet | Full label shown in the command menu (Cmd+K) |
|
||||
| `shortLabel` | Hayır | Shorter label displayed on the pinned quick-action button |
|
||||
| `icon` | Hayır | Icon name displayed next to the label (e.g. `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Hayır | When `true`, shows the command as a quick-action button in the top-right corner of the page |
|
||||
| `availabilityType` | Hayır | Controls where the command appears: `'GLOBAL'` (always available), `'RECORD_SELECTION'` (only when records are selected), or `'FALLBACK'` (shown when no other commands match) |
|
||||
| `availabilityObjectUniversalIdentifier` | Hayır | Restrict the command to pages of a specific object type (e.g. only on Company records) |
|
||||
| `conditionalAvailabilityExpression` | Hayır | A boolean expression to dynamically control whether the command is visible (see below) |
|
||||
| Alan | Zorunlu | Açıklama |
|
||||
| --------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | Evet | Komut için kararlı benzersiz kimlik |
|
||||
| `label` | Evet | Komut menüsünde (Cmd+K) gösterilen tam etiket |
|
||||
| `shortLabel` | Hayır | Sabitlenmiş hızlı işlem düğmesinde görüntülenen daha kısa etiket |
|
||||
| `icon` | Hayır | Etiketin yanında görüntülenen simge adı (örn. `'IconBolt'`, `'IconSend'`) |
|
||||
| `isPinned` | Hayır | `true` olduğunda, komutu sayfanın sağ üst köşesinde bir hızlı işlem düğmesi olarak gösterir |
|
||||
| `availabilityType` | Hayır | Komutun nerede görüneceğini kontrol eder: `'GLOBAL'` (her zaman kullanılabilir), `'RECORD_SELECTION'` (yalnızca kayıtlar seçiliyken) veya `'FALLBACK'` (başka hiçbir komut eşleşmediğinde gösterilir) |
|
||||
| `availabilityObjectUniversalIdentifier` | Hayır | Komutu belirli bir nesne türünün sayfalarıyla sınırlandırın (örn. yalnızca Company kayıtlarında) |
|
||||
| `conditionalAvailabilityExpression` | Hayır | Komutun görünür olup olmadığını dinamik olarak kontrol eden bir boolean ifade (aşağıya bakın) |
|
||||
|
||||
#### Conditional availability expressions
|
||||
#### Koşullu kullanılabilirlik ifadeleri
|
||||
|
||||
The `conditionalAvailabilityExpression` field lets you control when a command is visible based on the current page context. Import typed variables and operators from `twenty-sdk` to build expressions:
|
||||
`conditionalAvailabilityExpression` alanı, geçerli sayfa bağlamına göre bir komutun ne zaman görünür olacağını kontrol etmenizi sağlar. İfadeler oluşturmak için `twenty-sdk`'den türlendirilmiş değişkenleri ve operatörleri içe aktarın:
|
||||
|
||||
```tsx
|
||||
import {
|
||||
@@ -905,45 +905,45 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
**Context variables** — these represent the current state of the page:
|
||||
**Bağlam değişkenleri** — bunlar sayfanın mevcut durumunu temsil eder:
|
||||
|
||||
| Değişken | Tür | Açıklama |
|
||||
| ------------------------------ | --------- | ---------------------------------------------------------------- |
|
||||
| `pageType` | `string` | Current page type (e.g. `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Whether the component is rendered in a side panel |
|
||||
| `numberOfSelectedRecords` | `number` | Number of currently selected records |
|
||||
| `isSelectAll` | `boolean` | Whether "select all" is active |
|
||||
| `selectedRecords` | `array` | The selected record objects |
|
||||
| `favoriteRecordIds` | `array` | IDs of favorited records |
|
||||
| `objectPermissions` | `object` | Permissions for the current object type |
|
||||
| `targetObjectReadPermissions` | `object` | Read permissions for the target object |
|
||||
| `targetObjectWritePermissions` | `object` | Write permissions for the target object |
|
||||
| `featureFlags` | `object` | Active feature flags |
|
||||
| `objectMetadataItem` | `object` | Metadata of the current object type |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Whether the current view has a soft-delete filter |
|
||||
| Değişken | Tür | Açıklama |
|
||||
| ------------------------------ | --------- | ----------------------------------------------------------------- |
|
||||
| `pageType` | `string` | Geçerli sayfa türü (örn. `'RecordIndexPage'`, `'RecordShowPage'`) |
|
||||
| `isInSidePanel` | `boolean` | Bileşenin bir yan panelde oluşturulup oluşturulmadığı |
|
||||
| `numberOfSelectedRecords` | `number` | Şu anda seçili kayıt sayısı |
|
||||
| `isSelectAll` | `boolean` | "tümünü seç" seçeneğinin etkin olup olmadığı |
|
||||
| `selectedRecords` | `array` | Seçili kayıt nesneleri |
|
||||
| `favoriteRecordIds` | `array` | Favorilere eklenen kayıtların ID'leri |
|
||||
| `objectPermissions` | `object` | Geçerli nesne türü için izinler |
|
||||
| `targetObjectReadPermissions` | `object` | Hedef nesne için okuma izinleri |
|
||||
| `targetObjectWritePermissions` | `object` | Hedef nesne için yazma izinleri |
|
||||
| `featureFlags` | `object` | Etkin özellik bayrakları |
|
||||
| `objectMetadataItem` | `object` | Geçerli nesne türünün üst verileri |
|
||||
| `hasAnySoftDeleteFilterOnView` | `boolean` | Geçerli görünümde soft-delete filtresi olup olmadığı |
|
||||
|
||||
**Operators** — combine variables into boolean expressions:
|
||||
**Operatörler** — değişkenleri boolean ifadelere dönüştürmek için birleştirin:
|
||||
|
||||
| Operator | Açıklama |
|
||||
| ----------------------------------- | ----------------------------------------------------------------- |
|
||||
| `isDefined(value)` | `true` if the value is not null/undefined |
|
||||
| `isNonEmptyString(value)` | `true` if the value is a non-empty string |
|
||||
| `includes(array, value)` | `true` if the array contains the value |
|
||||
| `includesEvery(array, prop, value)` | `true` if every item's property includes the value |
|
||||
| `every(array, prop)` | `true` if the property is truthy on every item |
|
||||
| `everyDefined(array, prop)` | `true` if the property is defined on every item |
|
||||
| `everyEquals(array, prop, value)` | `true` if the property equals the value on every item |
|
||||
| `some(array, prop)` | `true` if the property is truthy on at least one item |
|
||||
| `someDefined(array, prop)` | `true` if the property is defined on at least one item |
|
||||
| `someEquals(array, prop, value)` | `true` if the property equals the value on at least one item |
|
||||
| `someNonEmptyString(array, prop)` | `true` if the property is a non-empty string on at least one item |
|
||||
| `none(array, prop)` | `true` if the property is falsy on every item |
|
||||
| `noneDefined(array, prop)` | `true` if the property is undefined on every item |
|
||||
| `noneEquals(array, prop, value)` | `true` if the property does not equal the value on any item |
|
||||
| Operatör | Açıklama |
|
||||
| ----------------------------------- | --------------------------------------------------------- |
|
||||
| `isDefined(value)` | Değer null/undefined değilse `true` |
|
||||
| `isNonEmptyString(value)` | Değer boş olmayan bir string ise `true` |
|
||||
| `includes(array, value)` | Dizi değeri içeriyorsa `true` |
|
||||
| `includesEvery(array, prop, value)` | Her bir öğenin özelliği değeri içeriyorsa `true` |
|
||||
| `every(array, prop)` | Özellik her öğede truthy ise `true` |
|
||||
| `everyDefined(array, prop)` | Özellik her öğede tanımlıysa `true` |
|
||||
| `everyEquals(array, prop, value)` | Özellik her öğede değere eşitse `true` |
|
||||
| `some(array, prop)` | Özellik en az bir öğede truthy ise `true` |
|
||||
| `someDefined(array, prop)` | Özellik en az bir öğede tanımlıysa `true` |
|
||||
| `someEquals(array, prop, value)` | Özellik en az bir öğede değere eşitse `true` |
|
||||
| `someNonEmptyString(array, prop)` | Özellik en az bir öğede boş olmayan bir string ise `true` |
|
||||
| `none(array, prop)` | Özellik her öğede falsy ise `true` |
|
||||
| `noneDefined(array, prop)` | Özellik her öğede tanımsızsa `true` |
|
||||
| `noneEquals(array, prop, value)` | Özellik hiçbir öğede değere eşit değilse `true` |
|
||||
|
||||
#### Public assets
|
||||
#### Genel varlıklar
|
||||
|
||||
Front components can access files from the app's `public/` directory using `getPublicAssetUrl`:
|
||||
Ön uç bileşenleri, `getPublicAssetUrl` kullanarak uygulamanın `public/` dizinindeki dosyalara erişebilir:
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -957,18 +957,18 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
See the [public assets section](#accessing-public-assets-with-getpublicasseturl) for details.
|
||||
Ayrıntılar için [genel varlıklar bölümüne](#accessing-public-assets-with-getpublicasseturl) bakın.
|
||||
|
||||
#### Stil
|
||||
|
||||
Front components support multiple styling approaches. You can use:
|
||||
Ön uç bileşenleri birden fazla biçimlendirme yaklaşımını destekler. Şunları kullanabilirsiniz:
|
||||
|
||||
* **Inline styles** — `style={{ color: 'red' }}`
|
||||
* **Twenty UI components** — import from `twenty-sdk/ui` (Button, Tag, Status, Chip, Avatar, and more)
|
||||
* **Emotion** — CSS-in-JS with `@emotion/react`
|
||||
* **Styled-components** — `styled.div` patterns
|
||||
* **Tailwind CSS** — utility classes
|
||||
* **Any CSS-in-JS library** compatible with React
|
||||
* **Satır içi stiller** — `style={{ color: 'red' }}`
|
||||
* **Twenty UI bileşenleri** — `twenty-sdk/ui` içinden içe aktarın (Button, Tag, Status, Chip, Avatar ve daha fazlası)
|
||||
* **Emotion** — `@emotion/react` ile CSS-in-JS
|
||||
* **Styled-components** — `styled.div` kalıpları
|
||||
* **Tailwind CSS** — yardımcı sınıflar
|
||||
* **React ile uyumlu herhangi bir CSS-in-JS kitaplığı**
|
||||
|
||||
```tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1022,9 +1022,9 @@ export default defineSkill({
|
||||
* `description` (isteğe bağlı), yeteneğin amacı hakkında ek bağlam sağlar.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineAgent" description="Define AI agents with custom prompts">
|
||||
<Accordion title="defineAgent" description="Özel istemlerle yapay zekâ ajanları tanımlayın">
|
||||
|
||||
Agents are AI assistants that live inside your workspace. Use `defineAgent()` to create agents with a custom system prompt:
|
||||
Ajanlar, çalışma alanınız içinde bulunan yapay zekâ asistanlarıdır. Özel bir sistem istemiyle ajanlar oluşturmak için `defineAgent()` kullanın:
|
||||
|
||||
```ts src/agents/example-agent.ts
|
||||
import { defineAgent } from 'twenty-sdk';
|
||||
@@ -1040,17 +1040,17 @@ export default defineAgent({
|
||||
```
|
||||
|
||||
Önemli noktalar:
|
||||
* `name` is the unique identifier string for the agent (kebab-case recommended).
|
||||
* `label` is the display name shown in the UI.
|
||||
* `prompt` is the system prompt that defines the agent's behavior.
|
||||
* `description` (optional) provides context about what the agent does.
|
||||
* `name`, ajan için benzersiz bir tanımlayıcı dizedir (kebab-case önerilir).
|
||||
* `label`, UI'de gösterilen görünen addır.
|
||||
* `prompt`, ajanın davranışını tanımlayan sistem istemidir.
|
||||
* `description` (isteğe bağlı), ajanın ne yaptığı hakkında bağlam sağlar.
|
||||
* `icon` (isteğe bağlı), UI'de gösterilen simgeyi ayarlar.
|
||||
* `modelId` (optional) overrides the default AI model used by the agent.
|
||||
* `modelId` (isteğe bağlı), ajanın kullandığı varsayılan yapay zekâ modelini geçersiz kılar.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineView" description="Nesneler için kaydedilmiş görünümler tanımlayın">
|
||||
|
||||
Views are saved configurations for how records of an object are displayed — including which fields are visible, their order, and any filters or groups applied. Use `defineView()` to ship pre-configured views with your app:
|
||||
Görünümler, bir nesnenin kayıtlarının nasıl görüntüleneceğine ilişkin kaydedilmiş yapılandırmalardır — hangi alanların görünür olacağını, sıralarını ve uygulanan filtreleri veya grupları içerir. Uygulamanızla önceden yapılandırılmış görünümler sunmak için `defineView()` kullanın:
|
||||
|
||||
```ts src/views/example-view.ts
|
||||
import { defineView, ViewKey } from 'twenty-sdk';
|
||||
@@ -1077,16 +1077,16 @@ export default defineView({
|
||||
```
|
||||
|
||||
Önemli noktalar:
|
||||
* `objectUniversalIdentifier` specifies which object this view applies to.
|
||||
* `key` determines the view type (e.g., `ViewKey.INDEX` for the main list view).
|
||||
* `fields` controls which columns appear and their order. Each field references a `fieldMetadataUniversalIdentifier`.
|
||||
* You can also define `filters`, `filterGroups`, `groups`, and `fieldGroups` for more advanced configurations.
|
||||
* `position` controls the ordering when multiple views exist for the same object.
|
||||
* `objectUniversalIdentifier`, bu görünümün hangi nesneye uygulanacağını belirtir.
|
||||
* `key`, görünüm türünü belirler (ör. ana liste görünümü için `ViewKey.INDEX`).
|
||||
* `fields`, hangi sütunların görüneceğini ve sıralarını kontrol eder. Her alan bir `fieldMetadataUniversalIdentifier` öğesine referans verir.
|
||||
* Daha gelişmiş yapılandırmalar için `filters`, `filterGroups`, `groups` ve `fieldGroups` de tanımlayabilirsiniz.
|
||||
* `position`, aynı nesne için birden fazla görünüm olduğunda sıralamayı kontrol eder.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineNavigationMenuItem" description="Kenar çubuğu gezinme bağlantılarını tanımlayın">
|
||||
|
||||
Navigation menu items add custom entries to the workspace sidebar. Use `defineNavigationMenuItem()` to link to views, external URLs, or objects:
|
||||
Gezinme menüsü öğeleri, çalışma alanı kenar çubuğuna özel girişler ekler. Görünümlere, harici URL'lere veya nesnelere bağlanmak için `defineNavigationMenuItem()` kullanın:
|
||||
|
||||
```ts src/navigation-menu-items/example-navigation-menu-item.ts
|
||||
import { defineNavigationMenuItem, NavigationMenuItemType } from 'twenty-sdk';
|
||||
@@ -1104,15 +1104,15 @@ export default defineNavigationMenuItem({
|
||||
```
|
||||
|
||||
Önemli noktalar:
|
||||
* `type` determines what the menu item links to: `NavigationMenuItemType.VIEW` for a saved view, or `NavigationMenuItemType.LINK` for an external URL.
|
||||
* For view links, set `viewUniversalIdentifier`. For external links, set `link`.
|
||||
* `position` controls the ordering in the sidebar.
|
||||
* `icon` and `color` (optional) customize the appearance.
|
||||
* `type`, menü öğesinin neye bağlanacağını belirler: kaydedilmiş bir görünüm için `NavigationMenuItemType.VIEW` veya harici bir URL için `NavigationMenuItemType.LINK`.
|
||||
* Görünüm bağlantıları için `viewUniversalIdentifier` ayarlayın. Harici bağlantılar için `link` ayarlayın.
|
||||
* `position`, kenar çubuğundaki sıralamayı kontrol eder.
|
||||
* `icon` ve `color` (isteğe bağlı) görünümü özelleştirir.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="definePageLayout" description="Define custom page layouts for record views">
|
||||
<Accordion title="definePageLayout" description="Kayıt görünümleri için özel sayfa düzenleri tanımlayın">
|
||||
|
||||
Page layouts let you customize how a record detail page looks — which tabs appear, what widgets are inside each tab, and how they are arranged. Use `definePageLayout()` to ship custom layouts with your app:
|
||||
Sayfa düzenleri, bir kayıt ayrıntı sayfasının nasıl görüneceğini özelleştirmenizi sağlar — hangi sekmelerin görüneceği, her sekmenin içinde hangi widget'ların olacağı ve bunların nasıl düzenleneceği. Uygulamanızla özel düzenler sunmak için `definePageLayout()` kullanın:
|
||||
|
||||
```ts src/page-layouts/example-record-page-layout.ts
|
||||
import { definePageLayout, PageLayoutTabLayoutMode } from 'twenty-sdk';
|
||||
@@ -1149,33 +1149,33 @@ export default definePageLayout({
|
||||
```
|
||||
|
||||
Önemli noktalar:
|
||||
* `type` is typically `'RECORD_PAGE'` to customize the detail view of a specific object.
|
||||
* `objectUniversalIdentifier` specifies which object this layout applies to.
|
||||
* Each `tab` defines a section of the page with a `title`, `position`, and `layoutMode` (`CANVAS` for free-form layout).
|
||||
* Each `widget` inside a tab can render a front component, a relation list, or other built-in widget types.
|
||||
* `position` on tabs controls their order. Use higher values (e.g., 50) to place custom tabs after built-in ones.
|
||||
* `type` genellikle belirli bir nesnenin ayrıntı görünümünü özelleştirmek için `'RECORD_PAGE'` olur.
|
||||
* `objectUniversalIdentifier`, bu düzenin hangi nesneye uygulanacağını belirtir.
|
||||
* Her `tab`, bir `title`, `position` ve `layoutMode` ile sayfanın bir bölümünü tanımlar (serbest biçimli düzen için `CANVAS`).
|
||||
* Bir sekmenin içindeki her `widget`, bir ön uç bileşeni, bir ilişki listesi veya diğer yerleşik widget türlerini oluşturabilir.
|
||||
* Sekmelerdeki `position`, sıralarını kontrol eder. Özel sekmeleri yerleşik olanların sonrasına yerleştirmek için daha yüksek değerler kullanın (ör. 50).
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Public assets (`public/` folder)
|
||||
## Genel varlıklar (`public/` klasörü)
|
||||
|
||||
The `public/` folder at the root of your app holds static files — images, icons, fonts, or any other assets your app needs at runtime. These files are automatically included in builds, synced during dev mode, and uploaded to the server.
|
||||
Uygulamanızın kökündeki `public/` klasörü, statik dosyaları barındırır — görseller, simgeler, yazı tipleri veya uygulamanızın çalışma zamanında ihtiyaç duyduğu diğer varlıklar. Bu dosyalar derlemelere otomatik olarak dahil edilir, geliştirme modunda senkronize edilir ve sunucuya yüklenir.
|
||||
|
||||
Files placed in `public/` are:
|
||||
`public/` içine yerleştirilen dosyalar şunlardır:
|
||||
|
||||
* **Publicly accessible** — once synced to the server, assets are served at a public URL. No authentication is needed to access them.
|
||||
* **Available in front components** — use asset URLs to display images, icons, or any media inside your React components.
|
||||
* **Available in logic functions** — reference asset URLs in emails, API responses, or any server-side logic.
|
||||
* **Used for marketplace metadata** — the `logoUrl` and `screenshots` fields in `defineApplication()` reference files from this folder (e.g., `public/logo.png`). These are displayed in the marketplace when your app is published.
|
||||
* **Auto-synced in dev mode** — when you add, update, or delete a file in `public/`, it is synced to the server automatically. No restart needed.
|
||||
* **Included in builds** — `yarn twenty build` bundles all public assets into the distribution output.
|
||||
* **Herkese açık olarak erişilebilir** — sunucuya senkronize edildikten sonra varlıklar genel bir URL'den sunulur. Onlara erişmek için kimlik doğrulama gerekmez.
|
||||
* **Ön uç bileşenlerinde kullanılabilir** — React bileşenlerinizin içinde görseller, simgeler veya herhangi bir medyayı göstermek için varlık URL'lerini kullanın.
|
||||
* **Mantık işlevlerinde kullanılabilir** — e-postalarda, API yanıtlarında veya herhangi bir sunucu tarafı mantıkta varlık URL'lerine referans verin.
|
||||
* **Pazar yeri üst verileri için kullanılır** — `defineApplication()` içindeki `logoUrl` ve `screenshots` alanları bu klasördeki dosyalara referans verir (örn. `public/logo.png`). Bunlar, uygulamanız yayımlandığında pazar yerinde görüntülenir.
|
||||
* **Geliştirme modunda otomatik senkronize edilir** — `public/` içinde bir dosya eklediğinizde, güncellediğinizde veya sildiğinizde otomatik olarak sunucuya senkronize edilir. Yeniden başlatma gerekmez.
|
||||
* **Derlemelere dahil edilir** — `yarn twenty build`, tüm genel varlıkları dağıtım çıktısına paketler.
|
||||
|
||||
### Accessing public assets with `getPublicAssetUrl`
|
||||
### `getPublicAssetUrl` ile genel varlıklara erişme
|
||||
|
||||
Use the `getPublicAssetUrl` helper from `twenty-sdk` to get the full URL of a file in your `public/` directory. It works in both **logic functions** and **front components**.
|
||||
`twenty-sdk` içindeki `getPublicAssetUrl` yardımcı işlevini kullanarak `public/` dizininizdeki bir dosyanın tam URL'sini alın. Hem **mantık işlevlerinde** hem de **ön uç bileşenlerinde** çalışır.
|
||||
|
||||
**In a logic function:**
|
||||
**Bir mantık işlevinde:**
|
||||
|
||||
```ts src/logic-functions/send-invoice.ts
|
||||
import { defineLogicFunction, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1200,7 +1200,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
**In a front component:**
|
||||
**Bir ön uç bileşeninde:**
|
||||
|
||||
```tsx src/front-components/company-card.tsx
|
||||
import { defineFrontComponent, getPublicAssetUrl } from 'twenty-sdk';
|
||||
@@ -1212,19 +1212,19 @@ export default defineFrontComponent(() => {
|
||||
});
|
||||
```
|
||||
|
||||
The `path` argument is relative to your app's `public/` folder. Both `getPublicAssetUrl('logo.png')` and `getPublicAssetUrl('public/logo.png')` resolve to the same URL — the `public/` prefix is stripped automatically if present.
|
||||
`path` bağımsız değişkeni, uygulamanızın `public/` klasörüne göre görelidir. Hem `getPublicAssetUrl('logo.png')` hem de `getPublicAssetUrl('public/logo.png')` aynı URL'ye çözümlenir — `public/` öneki varsa otomatik olarak kaldırılır.
|
||||
|
||||
## Using npm packages
|
||||
## npm paketlerini kullanma
|
||||
|
||||
You can install and use any npm package in your app. Both logic functions and front components are bundled with [esbuild](https://esbuild.github.io/), which inlines all dependencies into the output — no `node_modules` are needed at runtime.
|
||||
Uygulamanızda herhangi bir npm paketini yükleyip kullanabilirsiniz. Hem mantık işlevleri hem de ön uç bileşenleri, tüm bağımlılıkları çıktıya satır içi olarak ekleyen [esbuild](https://esbuild.github.io/) ile paketlenir — çalışma zamanında `node_modules` gerekmez.
|
||||
|
||||
### Installing a package
|
||||
### Bir paketi yükleme
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add axios
|
||||
```
|
||||
|
||||
Then import it in your code:
|
||||
Ardından kodunuza içe aktarın:
|
||||
|
||||
```ts src/logic-functions/fetch-data.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -1245,7 +1245,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
The same works for front components:
|
||||
Aynısı ön uç bileşenleri için de geçerlidir:
|
||||
|
||||
```tsx src/front-components/chart.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -1262,27 +1262,27 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
### How bundling works
|
||||
### Paketleme nasıl çalışır
|
||||
|
||||
The build step (`yarn twenty dev` or `yarn twenty build`) uses esbuild to produce a single self-contained file per logic function and per front component. All imported packages are inlined into the bundle.
|
||||
Derleme adımı (`yarn twenty dev` veya `yarn twenty build`), her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir.
|
||||
|
||||
**Logic functions** run in a Node.js environment. Node built-in modules (`fs`, `path`, `crypto`, `http`, etc.) are available and do not need to be installed.
|
||||
**Mantık işlevleri**, Node.js ortamında çalışır. Node yerleşik modülleri (`fs`, `path`, `crypto`, `http` vb.) kullanılabilir ve kurulmaları gerekmez.
|
||||
|
||||
**Front components** run in a Web Worker. Node built-in modules are **not** available — only browser APIs and npm packages that work in a browser environment.
|
||||
**Ön uç bileşenleri**, bir Web Worker içinde çalışır. Node'un yerleşik modülleri **kullanılamaz** — yalnızca tarayıcı ortamında çalışan tarayıcı API'leri ve npm paketleri kullanılabilir.
|
||||
|
||||
Both environments have `twenty-client-sdk/core` and `twenty-client-sdk/metadata` available as pre-provided modules — these are not bundled but resolved at runtime by the server.
|
||||
Her iki ortamda da `twenty-client-sdk/core` ve `twenty-client-sdk/metadata` önceden sağlanmış modüller olarak mevcuttur — bunlar paketlenmez, ancak çalışma zamanında sunucu tarafından çözülür.
|
||||
|
||||
## Scaffolding entities with `yarn twenty add`
|
||||
## `yarn twenty add` ile varlıklar için iskelet oluşturma
|
||||
|
||||
Instead of creating entity files by hand, you can use the interactive scaffolder:
|
||||
Varlık dosyalarını elle oluşturmak yerine etkileşimli iskelet oluşturucuyu kullanabilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add
|
||||
```
|
||||
|
||||
This prompts you to pick an entity type and walks you through the required fields. It generates a ready-to-use file with a stable `universalIdentifier` and the correct `defineEntity()` call.
|
||||
Bu, bir varlık türü seçmenizi ister ve gerekli alanlar boyunca size yol gösterir. Kararlı bir `universalIdentifier` ve doğru `defineEntity()` çağrısıyla kullanıma hazır bir dosya üretir.
|
||||
|
||||
You can also pass the entity type directly to skip the first prompt:
|
||||
İlk istemi atlamak için varlık türünü doğrudan da geçebilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add object
|
||||
@@ -1290,46 +1290,46 @@ yarn twenty add logicFunction
|
||||
yarn twenty add frontComponent
|
||||
```
|
||||
|
||||
### Available entity types
|
||||
### Kullanılabilir varlık türleri
|
||||
|
||||
| Varlık türü | Komut | Generated file |
|
||||
| Varlık türü | Komut | Oluşturulan dosya |
|
||||
| -------------------- | ------------------------------------ | ------------------------------------- |
|
||||
| Nesne | `yarn twenty add object` | `src/objects/<name>.ts` |
|
||||
| Alan | `yarn twenty add field` | `src/fields/<name>.ts` |
|
||||
| Logic function | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Front component | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Mantık işlevi | `yarn twenty add logicFunction` | `src/logic-functions/<name>.ts` |
|
||||
| Ön uç bileşeni | `yarn twenty add frontComponent` | `src/front-components/<name>.tsx` |
|
||||
| Rol | `yarn twenty add role` | `src/roles/<name>.ts` |
|
||||
| Beceri | `yarn twenty add skill` | `src/skills/<name>.ts` |
|
||||
| Temsilci | `yarn twenty add agent` | `src/agents/<name>.ts` |
|
||||
| Görünüm | `yarn twenty add view` | `src/views/<name>.ts` |
|
||||
| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
| Gezinme menüsü öğesi | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/<name>.ts` |
|
||||
| Sayfa düzeni | `yarn twenty add pageLayout` | `src/page-layouts/<name>.ts` |
|
||||
|
||||
### What the scaffolder generates
|
||||
### İskelet oluşturucunun ürettikleri
|
||||
|
||||
Each entity type has its own template. For example, `yarn twenty add object` asks for:
|
||||
Her varlık türünün kendi şablonu vardır. Örneğin, `yarn twenty add object` şunları sorar:
|
||||
|
||||
1. **Name (singular)** — e.g., `invoice`
|
||||
2. **Name (plural)** — e.g., `invoices`
|
||||
3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`)
|
||||
4. **Label (plural)** — auto-populated (e.g., `Invoices`)
|
||||
5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object.
|
||||
1. **Ad (tekil)** — ör. `invoice`
|
||||
2. **Ad (çoğul)** — ör. `invoices`
|
||||
3. **Etiket (tekil)** — adından otomatik doldurulur (ör. `Invoice`)
|
||||
4. **Etiket (çoğul)** — otomatik doldurulur (ör. `Invoices`)
|
||||
5. **Bir görünüm ve gezinme öğesi oluşturulsun mu?** — evet derseniz, iskelet oluşturucu yeni nesne için eşleşen bir görünüm ve kenar çubuğu bağlantısı da üretir.
|
||||
|
||||
Other entity types have simpler prompts — most only ask for a name.
|
||||
Diğer varlık türlerinin istemleri daha basittir — çoğu yalnızca bir ad sorar.
|
||||
|
||||
The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`.
|
||||
`field` varlık türü daha ayrıntılıdır: alan adını, etiketi, türü (`TEXT`, `NUMBER`, `SELECT`, `RELATION` vb. gibi mevcut tüm alan türlerinin listesinden) ve hedef nesnenin `universalIdentifier` değerini sorar.
|
||||
|
||||
### Custom output path
|
||||
### Özel çıktı yolu
|
||||
|
||||
Use the `--path` flag to place the generated file in a custom location:
|
||||
`--path` bayrağını kullanarak oluşturulan dosyayı özel bir konuma yerleştirin:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty add logicFunction --path src/custom-folder
|
||||
```
|
||||
|
||||
## Typed API clients (twenty-client-sdk)
|
||||
## Tipli API istemcileri (twenty-client-sdk)
|
||||
|
||||
The `twenty-client-sdk` package provides two typed GraphQL clients for interacting with the Twenty API from your logic functions and front components.
|
||||
`twenty-client-sdk` paketi, mantık fonksiyonlarınızdan ve ön uç bileşenlerinizden Twenty API ile etkileşim kurmak için tip tanımlı iki GraphQL istemcisi sağlar.
|
||||
|
||||
| İstemci | İçe Aktar | Uç nokta | Oluşturuldu mu? |
|
||||
| ------------------- | ---------------------------- | ------------------------------------------------------------- | --------------------------------------- |
|
||||
@@ -1337,9 +1337,9 @@ The `twenty-client-sdk` package provides two typed GraphQL clients for interacti
|
||||
| `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — çalışma alanı yapılandırması, dosya yüklemeleri | Hayır, önceden hazırlanmış olarak gelir |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="CoreApiClient" description="Query and mutate workspace data (records, objects)">
|
||||
<Accordion title="CoreApiClient" description="Çalışma alanı verilerini sorgulayın ve değiştirin (kayıtlar, nesneler)">
|
||||
|
||||
`CoreApiClient`, çalışma alanı verilerini sorgulamak ve değiştirmek için ana istemcidir. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields.
|
||||
`CoreApiClient`, çalışma alanı verilerini sorgulamak ve değiştirmek için ana istemcidir. `yarn twenty dev` veya `yarn twenty build` sırasında **çalışma alanı şemanızdan oluşturulur**, bu nedenle nesnelerinize ve alanlarınıza uyacak şekilde tamamen tiplenmiştir.
|
||||
|
||||
```ts
|
||||
import { CoreApiClient } from 'twenty-client-sdk/core';
|
||||
@@ -1379,12 +1379,12 @@ const { createCompany } = await client.mutation({
|
||||
İstemci bir seçim kümesi sözdizimi kullanır: Bir alanı dahil etmek için `true` geçin, bağımsız değişkenler için `__args` kullanın ve ilişkiler için nesneleri iç içe yerleştirin. Çalışma alanı şemanıza göre tam otomatik tamamlama ve tip denetimi elde edersiniz.
|
||||
|
||||
<Note>
|
||||
**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`.
|
||||
**CoreApiClient geliştirme/derleme zamanında oluşturulur.** Bunu önce `yarn twenty dev` veya `yarn twenty build` çalıştırmadan kullanırsanız, bir hata verir. Oluşturma otomatik olarak gerçekleşir — CLI, çalışma alanınızın GraphQL şemasını inceler ve `@genql/cli` kullanarak tiplenmiş bir istemci üretir.
|
||||
</Note>
|
||||
|
||||
#### Tür açıklamaları için CoreSchema'yı kullanma
|
||||
|
||||
`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters:
|
||||
`CoreSchema`, çalışma alanı nesnelerinize uyan TypeScript türleri sağlar — bileşen durumunu veya işlev parametrelerini tiplemek için kullanışlıdır:
|
||||
|
||||
```ts
|
||||
import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core';
|
||||
@@ -1406,7 +1406,7 @@ setCompany(result.company);
|
||||
```
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="MetadataApiClient" description="Workspace config, applications, and file uploads">
|
||||
<Accordion title="MetadataApiClient" description="Çalışma alanı yapılandırması, uygulamalar ve dosya yüklemeleri">
|
||||
|
||||
`MetadataApiClient`, SDK ile birlikte önceden hazırlanmış olarak gelir (oluşturma gerektirmez). Çalışma alanı yapılandırması, uygulamalar ve dosya yüklemeleri için `/metadata` uç noktasını sorgular.
|
||||
|
||||
@@ -1458,12 +1458,12 @@ console.log(uploadedFile);
|
||||
// { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' }
|
||||
```
|
||||
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ---------------------------------- | -------- | ------------------------------------------------------------- |
|
||||
| `fileBuffer` | `Buffer` | Dosyanın ham içeriği |
|
||||
| `filename` | `string` | Dosyanın adı (depolama ve görüntüleme için kullanılır) |
|
||||
| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) |
|
||||
| `fieldMetadataUniversalIdentifier` | `string` | Nesnenizdeki dosya türü alanının `universalIdentifier` değeri |
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ---------------------------------- | -------- | --------------------------------------------------------------------------------- |
|
||||
| `fileBuffer` | `Buffer` | Dosyanın ham içeriği |
|
||||
| `filename` | `string` | Dosyanın adı (depolama ve görüntüleme için kullanılır) |
|
||||
| `contentType` | `string` | MIME türü (belirtilmezse varsayılan olarak `application/octet-stream` kullanılır) |
|
||||
| `fieldMetadataUniversalIdentifier` | `string` | Nesnenizdeki dosya türü alanının `universalIdentifier` değeri |
|
||||
|
||||
Önemli noktalar:
|
||||
* Alan için `universalIdentifier` kullanır (çalışma alanına özgü kimliği değil), böylece yükleme kodunuz uygulamanızın yüklü olduğu herhangi bir çalışma alanında çalışır.
|
||||
@@ -1476,24 +1476,24 @@ console.log(uploadedFile);
|
||||
Kodunuz Twenty üzerinde çalıştığında (mantık işlevleri veya ön uç bileşenleri), platform kimlik bilgilerini ortam değişkenleri olarak enjekte eder:
|
||||
|
||||
* `TWENTY_API_URL` — Twenty API'nin temel URL'si
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role
|
||||
* `TWENTY_APP_ACCESS_TOKEN` — Uygulamanızın varsayılan fonksiyon rolü kapsamında kısa ömürlü anahtar
|
||||
|
||||
Bunları istemcilere iletmeniz gerekmez — otomatik olarak `process.env`'den okurlar. API anahtarının izinleri, `application-config.ts` içinde `defaultRoleUniversalIdentifier` ile referans verilen role göre belirlenir.
|
||||
</Note>
|
||||
|
||||
## Testing your app
|
||||
## Uygulamanızı test etme
|
||||
|
||||
The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server.
|
||||
SDK, test kodundan uygulamanızı derlemenize, dağıtmanıza, yüklemenize ve kaldırmanıza olanak tanıyan programatik API'ler sağlar. Tiplenmiş API istemcileriyle birlikte [Vitest](https://vitest.dev/) kullanarak, uygulamanızın gerçek bir Twenty sunucusunda uçtan uca çalıştığını doğrulayan entegrasyon testleri yazabilirsiniz.
|
||||
|
||||
### Kurulum
|
||||
|
||||
The scaffolded app already includes Vitest. If you set it up manually, install the dependencies:
|
||||
İskelet aracıyla oluşturulan uygulama zaten Vitest'i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add -D vitest vite-tsconfig-paths
|
||||
```
|
||||
|
||||
Create a `vitest.config.ts` at the root of your app:
|
||||
Uygulamanızın kök dizininde bir `vitest.config.ts` oluşturun:
|
||||
|
||||
```ts vitest.config.ts
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
@@ -1519,7 +1519,7 @@ export default defineConfig({
|
||||
});
|
||||
```
|
||||
|
||||
Create a setup file that verifies the server is reachable before tests run:
|
||||
Testler çalışmadan önce sunucuya erişilebildiğini doğrulayan bir kurulum dosyası oluşturun:
|
||||
|
||||
```ts src/__tests__/setup-test.ts
|
||||
import * as fs from 'fs';
|
||||
@@ -1559,22 +1559,22 @@ beforeAll(async () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Programmatic SDK APIs
|
||||
### Programatik SDK API'leri
|
||||
|
||||
The `twenty-sdk/cli` subpath exports functions you can call directly from test code:
|
||||
`twenty-sdk/cli` alt yolu, test kodundan doğrudan çağırabileceğiniz fonksiyonları dışa aktarır:
|
||||
|
||||
| Fonksiyon | Açıklama |
|
||||
| -------------- | ------------------------------------------- |
|
||||
| `appBuild` | Build the app and optionally pack a tarball |
|
||||
| `appDeploy` | Upload a tarball to the server |
|
||||
| `appInstall` | Install the app on the active workspace |
|
||||
| `appUninstall` | Uninstall the app from the active workspace |
|
||||
| Fonksiyon | Açıklama |
|
||||
| -------------- | ----------------------------------------------------------------- |
|
||||
| `appBuild` | Uygulamayı derleyin ve isteğe bağlı olarak bir tarball paketleyin |
|
||||
| `appDeploy` | Bir tarball'ı sunucuya yükleyin |
|
||||
| `appInstall` | Uygulamayı etkin çalışma alanına yükleyin |
|
||||
| `appUninstall` | Uygulamayı etkin çalışma alanından kaldırın |
|
||||
|
||||
Each function returns a result object with `success: boolean` and either `data` or `error`.
|
||||
Her fonksiyon, `success: boolean` ile birlikte `data` veya `error` içeren bir sonuç nesnesi döndürür.
|
||||
|
||||
### Writing an integration test
|
||||
### Bir entegrasyon testi yazma
|
||||
|
||||
Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace:
|
||||
İşte uygulamayı derleyen, dağıtan ve yükleyen; ardından çalışma alanında göründüğünü doğrulayan tam bir örnek:
|
||||
|
||||
```ts src/__tests__/app-install.integration-test.ts
|
||||
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config';
|
||||
@@ -1637,37 +1637,37 @@ describe('App installation', () => {
|
||||
});
|
||||
```
|
||||
|
||||
### Running tests
|
||||
### Testleri çalıştırma
|
||||
|
||||
Make sure your local Twenty server is running, then:
|
||||
Yerel Twenty sunucunuzun çalıştığından emin olun, ardından:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test
|
||||
```
|
||||
|
||||
Or in watch mode during development:
|
||||
Veya geliştirme sırasında izleme modunda:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn test:watch
|
||||
```
|
||||
|
||||
### Type checking
|
||||
### Tip denetimi
|
||||
|
||||
You can also run type checking on your app without running tests:
|
||||
Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty typecheck
|
||||
```
|
||||
|
||||
This runs `tsc --noEmit` and reports any type errors.
|
||||
Bu, `tsc --noEmit` komutunu çalıştırır ve tüm tip hatalarını raporlar.
|
||||
|
||||
## CLI başvurusu
|
||||
|
||||
Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations.
|
||||
`dev`, `build`, `add` ve `typecheck` dışında CLI, fonksiyonları çalıştırma, günlükleri görüntüleme ve uygulama kurulumlarını yönetme komutları sağlar.
|
||||
|
||||
### Executing functions (`yarn twenty exec`)
|
||||
### Fonksiyonları çalıştırma (`yarn twenty exec`)
|
||||
|
||||
Run a logic function manually without triggering it via HTTP, cron, or database event:
|
||||
Bir mantık fonksiyonunu HTTP, cron veya veritabanı olayıyla tetiklemeden manuel olarak çalıştırın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Execute by function name
|
||||
@@ -1684,9 +1684,9 @@ yarn twenty exec --preInstall
|
||||
yarn twenty exec --postInstall
|
||||
```
|
||||
|
||||
### Viewing function logs (`yarn twenty logs`)
|
||||
### Fonksiyon günlüklerini görüntüleme (`yarn twenty logs`)
|
||||
|
||||
Stream execution logs for your app's logic functions:
|
||||
Uygulamanızın mantık fonksiyonlarının yürütme günlüklerini akış olarak alın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Stream all function logs
|
||||
@@ -1700,12 +1700,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
<Note>
|
||||
This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server.
|
||||
Bu, Docker konteyner günlüklerini gösteren `yarn twenty server logs` komutundan farklıdır. `yarn twenty logs`, uygulamanızın fonksiyon yürütme günlüklerini Twenty sunucusundan gösterir.
|
||||
</Note>
|
||||
|
||||
### Uninstalling an app (`yarn twenty uninstall`)
|
||||
### Bir uygulamayı kaldırma (`yarn twenty uninstall`)
|
||||
|
||||
Remove your app from the active workspace:
|
||||
Uygulamanızı etkin çalışma alanından kaldırın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty uninstall
|
||||
|
||||
@@ -4,142 +4,142 @@ description: İlk Twenty uygulamanızı dakikalar içinde oluşturun.
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
Uygulamalar şu anda alfa aşamasında. Özellik işlevsel ancak hâlâ gelişmekte.
|
||||
</Warning>
|
||||
|
||||
Uygulamalar, Twenty'yi özel nesneler, alanlar, mantık işlevleri, Yapay Zeka yetenekleri ve UI bileşenleriyle genişletmenizi sağlar — tümü kod olarak yönetilir.
|
||||
|
||||
## Ön Gereksinimler
|
||||
|
||||
Before you begin, make sure the following is installed on your machine:
|
||||
Başlamadan önce, makinenizde aşağıdakilerin kurulu olduğundan emin olun:
|
||||
|
||||
* **Node.js 24+** — [Download here](https://nodejs.org/)
|
||||
* **Yarn 4** — Comes with Node.js via Corepack. Enable it by running `corepack enable`
|
||||
* **Docker** — [Download here](https://www.docker.com/products/docker-desktop/). Required to run a local Twenty instance. Not needed if you already have a Twenty server running.
|
||||
* **Node.js 24+** — [Buradan indirin](https://nodejs.org/)
|
||||
* **Yarn 4** — Corepack aracılığıyla Node.js ile birlikte gelir. `corepack enable` komutunu çalıştırarak etkinleştirin
|
||||
* **Docker** — [Buradan indirin](https://www.docker.com/products/docker-desktop/). Yerel bir Twenty örneğini çalıştırmak için gereklidir. Zaten çalışan bir Twenty sunucunuz varsa gerekmez.
|
||||
|
||||
## Step 1: Scaffold your app
|
||||
## Adım 1: Uygulamanızın iskeletini oluşturun
|
||||
|
||||
Open a terminal and run:
|
||||
Bir terminal açın ve şunu çalıştırın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
npx create-twenty-app@latest my-twenty-app
|
||||
```
|
||||
|
||||
You will be prompted to enter a name and a description for your app. Press **Enter** to accept the defaults.
|
||||
Uygulamanız için bir ad ve açıklama girmeniz istenecektir. Varsayılanları kabul etmek için **Enter** tuşuna basın.
|
||||
|
||||
This creates a new folder called `my-twenty-app` with everything you need.
|
||||
Bu, `my-twenty-app` adlı, ihtiyacınız olan her şeyi içeren yeni bir klasör oluşturur.
|
||||
|
||||
<Note>
|
||||
The scaffolder supports these flags:
|
||||
İskelet oluşturucu şu bayrakları destekler:
|
||||
|
||||
* `--minimal` — scaffold only the essential files, no examples (default)
|
||||
* `--exhaustive` — scaffold all example entities
|
||||
* `--name <name>` — set the app name (skips the prompt)
|
||||
* `--display-name <displayName>` — set the display name (skips the prompt)
|
||||
* `--description <description>` — set the description (skips the prompt)
|
||||
* `--skip-local-instance` — skip the local server setup prompt
|
||||
* `--minimal` — yalnızca temel dosyaların iskeletini oluşturur, örnek yok (varsayılan)
|
||||
* `--exhaustive` — tüm örnek varlıkların iskeletini oluşturur
|
||||
* `--name <name>` — uygulama adını ayarlar (istemi atlar)
|
||||
* `--display-name <displayName>` — görünen adı ayarlar (istemi atlar)
|
||||
* `--description <description>` — açıklamayı ayarlar (istemi atlar)
|
||||
* `--skip-local-instance` — yerel sunucu kurulum istemini atlar
|
||||
</Note>
|
||||
|
||||
## Step 2: Set up a local Twenty instance
|
||||
## Adım 2: Yerel bir Twenty örneği kurun
|
||||
|
||||
The scaffolder will ask:
|
||||
İskelet oluşturucu şunu soracaktır:
|
||||
|
||||
> **Would you like to set up a local Twenty instance?**
|
||||
> **Yerel bir Twenty örneği kurmak ister misiniz?**
|
||||
|
||||
* **Type `yes`** (recommended) — This pulls the `twenty-app-dev` Docker image and starts a local Twenty server on port `2020`. Make sure Docker is running before you continue.
|
||||
* **Type `no`** — Choose this if you already have a Twenty server running locally.
|
||||
* **`yes` yazın** (önerilir) — Bu, `twenty-app-dev` Docker imajını çeker ve `2020` portunda yerel bir Twenty sunucusu başlatır. Devam etmeden önce Docker'ın çalıştığından emin olun.
|
||||
* **`no` yazın** — Yerelde zaten çalışan bir Twenty sunucunuz varsa bunu seçin.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Should start local instance?" />
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Yerel örnek başlatılsın mı?" />
|
||||
</div>
|
||||
|
||||
## Step 3: Sign in to your workspace
|
||||
## Adım 3: Çalışma alanınıza giriş yapın
|
||||
|
||||
Next, a browser window will open with the Twenty login page. Sign in with the pre-seeded demo account:
|
||||
Ardından, Twenty oturum açma sayfasıyla bir tarayıcı penceresi açılacaktır. Önceden eklenmiş demo hesabıyla oturum açın:
|
||||
|
||||
* **Email:** `tim@apple.dev`
|
||||
* **Password:** `tim@apple.dev`
|
||||
* **E-posta:** `tim@apple.dev`
|
||||
* **Parola:** `tim@apple.dev`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty login screen" />
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty oturum açma ekranı" />
|
||||
</div>
|
||||
|
||||
## Step 4: Authorize the app
|
||||
## Adım 4: Uygulamayı yetkilendirin
|
||||
|
||||
After you sign in, you will see an authorization screen. This lets your app interact with your workspace.
|
||||
Oturum açtıktan sonra bir yetkilendirme ekranı göreceksiniz. Bu, uygulamanızın çalışma alanınızla etkileşim kurmasını sağlar.
|
||||
|
||||
Click **Authorize** to continue.
|
||||
Devam etmek için **Authorize**'a tıklayın.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI authorization screen" />
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI yetkilendirme ekranı" />
|
||||
</div>
|
||||
|
||||
Once authorized, your terminal will confirm that everything is set up.
|
||||
Yetkilendirildikten sonra terminaliniz her şeyin kurulduğunu onaylayacaktır.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="App scaffolded successfully" />
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="Uygulama iskeleti başarıyla oluşturuldu" />
|
||||
</div>
|
||||
|
||||
## Step 5: Start developing
|
||||
## Adım 5: Geliştirmeye başlayın
|
||||
|
||||
Go into your new app folder and start the development server:
|
||||
Yeni uygulama klasörünüze gidin ve geliştirme sunucusunu başlatın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
cd my-twenty-app
|
||||
yarn twenty dev
|
||||
```
|
||||
|
||||
This watches your source files, rebuilds on every change, and syncs your app to the local Twenty server automatically. You should see a live status panel in your terminal.
|
||||
Bu, kaynak dosyalarınızı izler, her değişiklikte yeniden derler ve uygulamanızı yerel Twenty sunucusuyla otomatik olarak eşitler. Terminalinizde canlı bir durum paneli görmelisiniz.
|
||||
|
||||
For more detailed output (build logs, sync requests, error traces), use the `--verbose` flag:
|
||||
Daha ayrıntılı çıktı (derleme günlükleri, eşitleme istekleri, hata izleri) için `--verbose` bayrağını kullanın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --verbose
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests. Use `yarn twenty deploy` to deploy to production servers — see [Publishing Apps](/l/tr/developers/extend/apps/publishing) for details.
|
||||
Geliştirme modu yalnızca geliştirme ortamında (`NODE_ENV=development`) çalışan Twenty örneklerinde kullanılabilir. Üretim örnekleri geliştirme eşitleme isteklerini reddeder. Üretim sunucularına dağıtmak için `yarn twenty deploy` komutunu kullanın — ayrıntılar için [Uygulamaları Yayınlama](/l/tr/developers/extend/apps/publishing) bölümüne bakın.
|
||||
</Warning>
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Dev mode terminal output" />
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Geliştirme modu terminal çıktısı" />
|
||||
</div>
|
||||
|
||||
## Step 6: See your app in Twenty
|
||||
## Adım 6: Uygulamanızı Twenty'de görün
|
||||
|
||||
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
|
||||
Tarayıcınızda [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) adresini açın. **Settings > Apps** bölümüne gidin ve **Developer** sekmesini seçin. **Your Apps** altında uygulamanızın listelendiğini görmelisiniz:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps listesinde My twenty app gösteriliyor" />
|
||||
</div>
|
||||
|
||||
Click on **My twenty app** to open its **application registration**. A registration is a server-level record that describes your app — its name, unique identifier, OAuth credentials, and source (local, npm, or tarball). It lives on the server, not inside any specific workspace. When you install an app into a workspace, Twenty creates a workspace-scoped **application** that points back to this registration. One registration can be installed across multiple workspaces on the same server.
|
||||
**My twenty app** üzerine tıklayarak **uygulama kaydını** açın. Kayıt, uygulamanızı tanımlayan sunucu düzeyinde bir kayıttır — adını, benzersiz tanımlayıcısını, OAuth kimlik bilgilerini ve kaynağını (yerel, npm veya tarball). Belirli bir çalışma alanının içinde değil, sunucuda bulunur. Bir uygulamayı bir çalışma alanına kurduğunuzda, Twenty bu kayda işaret eden, çalışma alanı kapsamında bir **uygulama** oluşturur. Tek bir kayıt, aynı sunucudaki birden çok çalışma alanına kurulabilir.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Uygulama kaydı ayrıntıları" />
|
||||
</div>
|
||||
|
||||
Click **View installed app** to see the installed app. The **About** tab shows the current version and management options:
|
||||
Yüklü uygulamayı görmek için **View installed app**'e tıklayın. **About** sekmesi, geçerli sürümü ve yönetim seçeneklerini gösterir:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app — About tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Yüklü uygulama — About sekmesi" />
|
||||
</div>
|
||||
|
||||
Switch to the **Content** tab to see everything your app provides — objects, fields, logic functions, and agents:
|
||||
Uygulamanızın sağladığı her şeyi — nesneler, alanlar, mantık işlevleri ve ajanlar — görmek için **Content** sekmesine geçin:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Installed app — Content tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Yüklü uygulama — Content sekmesi" />
|
||||
</div>
|
||||
|
||||
You are all set! Edit any file in `src/` and the changes will be picked up automatically.
|
||||
Her şey hazır! `src/` içindeki herhangi bir dosyayı düzenleyin; değişiklikler otomatik olarak alınacaktır.
|
||||
|
||||
Head over to [Building Apps](/l/tr/developers/extend/apps/building) for a detailed guide on creating objects, logic functions, front components, skills, and more.
|
||||
Nesneler, mantık işlevleri, ön bileşenler, beceriler ve daha fazlasını oluşturma hakkında ayrıntılı bir kılavuz için [Uygulama Oluşturma](/l/tr/developers/extend/apps/building) bölümüne göz atın.
|
||||
|
||||
---
|
||||
|
||||
## Project structure
|
||||
## Proje yapısı
|
||||
|
||||
The scaffolder generates the following file structure (shown with `--exhaustive` mode, which includes examples for every entity type):
|
||||
İskelet oluşturucu aşağıdaki dosya yapısını üretir (`--exhaustive` modunda gösterilmiştir; her varlık türü için örnekler içerir):
|
||||
|
||||
```text filename="my-twenty-app/"
|
||||
my-twenty-app/
|
||||
@@ -190,30 +190,30 @@ my-twenty-app/
|
||||
└── example-agent.ts # Example AI agent definition
|
||||
```
|
||||
|
||||
By default (`--minimal`), only the core files are created: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts`, and `logic-functions/post-install.ts`. Use `--exhaustive` to include all the example files shown above.
|
||||
Varsayılan olarak (`--minimal`), yalnızca çekirdek dosyalar oluşturulur: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts` ve `logic-functions/post-install.ts`. Yukarıda gösterilen tüm örnek dosyaları dahil etmek için `--exhaustive` kullanın.
|
||||
|
||||
### Key files
|
||||
### Temel dosyalar
|
||||
|
||||
| File / Folder | Amaç |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `package.json` | Declares your app name, version, and dependencies. Includes a `twenty` script so you can run `yarn twenty help` to see all commands. |
|
||||
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
|
||||
| `src/roles/` | Defines roles that control what your logic functions can access. |
|
||||
| `src/logic-functions/` | Server-side functions triggered by routes, cron schedules, or database events. |
|
||||
| `src/front-components/` | React components that render inside Twenty's UI. |
|
||||
| `src/objects/` | Custom object definitions to extend your data model. |
|
||||
| `src/fields/` | Custom fields added to existing objects. |
|
||||
| `src/views/` | Saved view configurations. |
|
||||
| `src/navigation-menu-items/` | Custom links in the sidebar navigation. |
|
||||
| `src/skills/` | Twenty'nin yapay zeka ajanlarının yeteneklerini genişleten beceriler. |
|
||||
| `src/agents/` | AI agents with custom prompts. |
|
||||
| `src/page-layouts/` | Custom page layouts for record views. |
|
||||
| `src/__tests__/` | Integration tests (setup + example test). |
|
||||
| `public/` | Static assets (images, fonts) served with your app. |
|
||||
| Dosya / Klasör | Amaç |
|
||||
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `package.json` | Uygulamanızın adını, sürümünü ve bağımlılıklarını bildirir. Tüm komutları görmek için `yarn twenty help` çalıştırabilmeniz amacıyla bir `twenty` betiği içerir. |
|
||||
| `src/application-config.ts` | **Gerekli.** Uygulamanızın ana yapılandırma dosyası. |
|
||||
| `src/roles/` | Mantık işlevlerinizin neye erişebileceğini kontrol eden rolleri tanımlar. |
|
||||
| `src/logic-functions/` | Rotalar, cron zamanlamaları veya veritabanı olayları tarafından tetiklenen sunucu tarafı işlevler. |
|
||||
| `src/front-components/` | Twenty'nin UI'si içinde görüntülenen React bileşenleri. |
|
||||
| `src/objects/` | Veri modelinizi genişletmek için özel nesne tanımları. |
|
||||
| `src/fields/` | Mevcut nesnelere eklenen özel alanlar. |
|
||||
| `src/views/` | Kaydedilmiş görünüm yapılandırmaları. |
|
||||
| `src/navigation-menu-items/` | Kenar çubuğu gezintisinde özel bağlantılar. |
|
||||
| `src/skills/` | Twenty'nin yapay zeka ajanlarının yeteneklerini genişleten beceriler. |
|
||||
| `src/agents/` | Özel istemlere sahip yapay zekâ ajanları. |
|
||||
| `src/page-layouts/` | Kayıt görünümleri için özel sayfa düzenleri. |
|
||||
| `src/__tests__/` | Entegrasyon testleri (kurulum + örnek test). |
|
||||
| `public/` | Uygulamanızla birlikte sunulan statik varlıklar (görüntüler, yazı tipleri). |
|
||||
|
||||
## Managing remotes
|
||||
## Uzakları yönetme
|
||||
|
||||
A **remote** is a Twenty server that your app connects to. During setup, the scaffolder creates one for you automatically. You can add more remotes or switch between them at any time.
|
||||
Bir **uzak**, uygulamanızın bağlandığı Twenty sunucusudur. Kurulum sırasında iskelet oluşturucu sizin için otomatik olarak bir tane oluşturur. Dilediğiniz zaman daha fazla uzak ekleyebilir veya aralarında geçiş yapabilirsiniz.
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Add a new remote (opens a browser for OAuth login)
|
||||
@@ -232,11 +232,11 @@ yarn twenty remote list
|
||||
yarn twenty remote switch <name>
|
||||
```
|
||||
|
||||
Your credentials are stored in `~/.twenty/config.json`.
|
||||
Kimlik bilgileriniz `~/.twenty/config.json` içinde saklanır.
|
||||
|
||||
## Local development server (`yarn twenty server`)
|
||||
## Yerel geliştirme sunucusu (`yarn twenty server`)
|
||||
|
||||
The CLI can manage a local Twenty server running in Docker. This is the same server started automatically when you scaffold an app with `create-twenty-app`, but you can also manage it manually.
|
||||
CLI, Docker'da çalışan yerel bir Twenty sunucusunu yönetebilir. Bu, `create-twenty-app` ile bir uygulamanın iskeletini oluşturduğunuzda otomatik olarak başlatılan sunucunun aynısıdır; ancak bunu el ile de yönetebilirsiniz.
|
||||
|
||||
### Sunucuyu Başlatma
|
||||
|
||||
@@ -244,85 +244,85 @@ The CLI can manage a local Twenty server running in Docker. This is the same ser
|
||||
yarn twenty server start
|
||||
```
|
||||
|
||||
This pulls the `twentycrm/twenty-app-dev:latest` Docker image (if not already present), creates a container named `twenty-app-dev`, and starts it on port **2020**. The CLI waits until the server passes its health check before returning.
|
||||
Bu, `twentycrm/twenty-app-dev:latest` Docker imajını (zaten mevcut değilse) çeker, `twenty-app-dev` adlı bir konteyner oluşturur ve **2020** portunda başlatır. CLI, dönmeden önce sunucunun sağlık kontrolünü geçmesini bekler.
|
||||
|
||||
Two Docker volumes are created to persist data between restarts:
|
||||
Yeniden başlatmalar arasında verileri kalıcı kılmak için iki Docker birimi oluşturulur:
|
||||
|
||||
* `twenty-app-dev-data` — PostgreSQL database
|
||||
* `twenty-app-dev-storage` — file storage
|
||||
* `twenty-app-dev-data` — PostgreSQL veritabanı
|
||||
* `twenty-app-dev-storage` — dosya depolama
|
||||
|
||||
If port 2020 is already in use, you can start on a different port:
|
||||
2020 portu zaten kullanımda ise farklı bir portta başlatabilirsiniz:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server start --port 3030
|
||||
```
|
||||
|
||||
The CLI automatically configures the container's internal `NODE_PORT` and `SERVER_URL` to match the chosen port, so logic functions, OAuth, and all other internal networking work correctly.
|
||||
CLI, seçilen porta uyacak şekilde konteynerin dahili `NODE_PORT` ve `SERVER_URL` ayarlarını otomatik olarak yapılandırır; böylece mantık işlevleri, OAuth ve diğer tüm dahili ağ işlemleri doğru şekilde çalışır.
|
||||
|
||||
Once started, the server is automatically registered as the `local` remote in your CLI config.
|
||||
Başlatıldığında, sunucu CLI yapılandırmanızda `local` uzak olarak otomatik olarak kaydedilir.
|
||||
|
||||
### Checking server status
|
||||
### Sunucu durumunu kontrol etme
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server status
|
||||
```
|
||||
|
||||
Displays whether the server is running, its URL, and the default login credentials (`tim@apple.dev` / `tim@apple.dev`).
|
||||
Sunucunun çalışıp çalışmadığını, URL'sini ve varsayılan oturum açma kimlik bilgilerini (`tim@apple.dev` / `tim@apple.dev`) gösterir.
|
||||
|
||||
### Viewing server logs
|
||||
### Sunucu günlüklerini görüntüleme
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs
|
||||
```
|
||||
|
||||
Streams the container logs. Use `--lines` to control how many recent lines to show:
|
||||
Konteyner günlüklerini akış olarak iletir. Kaç satırın gösterileceğini denetlemek için `--lines` kullanın:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs --lines 100
|
||||
```
|
||||
|
||||
### Stopping the server
|
||||
### Sunucuyu durdurma
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server stop
|
||||
```
|
||||
|
||||
Stops the container. Your data is preserved in the Docker volumes — the next `start` picks up where you left off.
|
||||
Konteyneri durdurur. Verileriniz Docker birimlerinde korunur — bir sonraki `start`, kaldığınız yerden devam eder.
|
||||
|
||||
### Resetting the server
|
||||
### Sunucuyu sıfırlama
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server reset
|
||||
```
|
||||
|
||||
Removes the container **and** deletes both Docker volumes, wiping all data. The next `start` creates a fresh instance.
|
||||
Konteyneri kaldırır ve her iki Docker birimini de silerek tüm verileri temizler. Sonraki `start`, yeni bir örnek oluşturur.
|
||||
|
||||
<Note>
|
||||
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
|
||||
Sunucunun çalışması için **Docker**'ın çalışıyor olması gerekir. "Docker not running" hatası görürseniz Docker Desktop'ın (veya Docker daemon'ının) başlatıldığından emin olun.
|
||||
</Note>
|
||||
|
||||
### Command reference
|
||||
### Komut başvurusu
|
||||
|
||||
| Komut | Açıklama |
|
||||
| -------------------------------------- | ---------------------------------------------- |
|
||||
| `yarn twenty server start` | Start the local server (pulls image if needed) |
|
||||
| `yarn twenty server start --port 3030` | Start on a custom port |
|
||||
| `yarn twenty server stop` | Stop the server (preserves data) |
|
||||
| `yarn twenty server status` | Show server status, URL, and credentials |
|
||||
| `yarn twenty server logs` | Stream server logs |
|
||||
| `yarn twenty server logs --lines 100` | Show the last 100 log lines |
|
||||
| `yarn twenty server reset` | Delete all data and start fresh |
|
||||
| Komut | Açıklama |
|
||||
| -------------------------------------- | ------------------------------------------------------ |
|
||||
| `yarn twenty server start` | Yerel sunucuyu başlatır (gerekirse imajı çeker) |
|
||||
| `yarn twenty server start --port 3030` | Özel bir portta başlatır |
|
||||
| `yarn twenty server stop` | Sunucuyu durdurur (verileri korur) |
|
||||
| `yarn twenty server status` | Sunucu durumunu, URL'yi ve kimlik bilgilerini gösterir |
|
||||
| `yarn twenty server logs` | Sunucu günlüklerini akış olarak iletir |
|
||||
| `yarn twenty server logs --lines 100` | Son 100 günlük satırını gösterir |
|
||||
| `yarn twenty server reset` | Tüm verileri siler ve sıfırdan başlatır |
|
||||
|
||||
## CI with GitHub Actions
|
||||
## GitHub Actions ile CI
|
||||
|
||||
The scaffolder generates a ready-to-use GitHub Actions workflow at `.github/workflows/ci.yml`. It runs your integration tests automatically on every push to `main` and on pull requests.
|
||||
İskelet oluşturucu, `.github/workflows/ci.yml` konumunda kullanıma hazır bir GitHub Actions iş akışı üretir. Entegrasyon testlerinizi `main` dalına yapılan her itmede ve çekme isteklerinde otomatik olarak çalıştırır.
|
||||
|
||||
The workflow:
|
||||
İş akışı:
|
||||
|
||||
1. Checks out your code
|
||||
2. Spins up a temporary Twenty server using the `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` action
|
||||
3. Installs dependencies with `yarn install --immutable`
|
||||
4. Runs `yarn test` with `TWENTY_API_URL` and `TWENTY_API_KEY` injected from the action outputs
|
||||
1. Kodunuzu depodan çıkarır
|
||||
2. `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` eylemini kullanarak geçici bir Twenty sunucusu başlatır
|
||||
3. `yarn install --immutable` ile bağımlılıkları kurar
|
||||
4. Eylem çıktılarından enjekte edilen `TWENTY_API_URL` ve `TWENTY_API_KEY` ile `yarn test` çalıştırır
|
||||
|
||||
```yaml .github/workflows/ci.yml
|
||||
name: CI
|
||||
@@ -369,21 +369,21 @@ jobs:
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
```
|
||||
|
||||
You don't need to configure any secrets — the `spawn-twenty-docker-image` action starts an ephemeral Twenty server directly in the runner and outputs the connection details. The `GITHUB_TOKEN` secret is provided automatically by GitHub.
|
||||
Herhangi bir gizli değişken yapılandırmanız gerekmez — `spawn-twenty-docker-image` eylemi, koşucu içinde doğrudan geçici bir Twenty sunucusu başlatır ve bağlantı ayrıntılarını çıktı olarak verir. `GITHUB_TOKEN` gizli değişkeni GitHub tarafından otomatik olarak sağlanır.
|
||||
|
||||
To pin a specific Twenty version instead of `latest`, change the `TWENTY_VERSION` environment variable at the top of the workflow.
|
||||
`latest` yerine belirli bir Twenty sürümünü sabitlemek için iş akışının başındaki `TWENTY_VERSION` ortam değişkenini değiştirin.
|
||||
|
||||
## Manuel kurulum (iskelet oluşturucu olmadan)
|
||||
|
||||
If you prefer to set things up yourself instead of using `create-twenty-app`, you can do it in two steps.
|
||||
`create-twenty-app` kullanmak yerine her şeyi kendiniz ayarlamayı tercih ederseniz, bunu iki adımda yapabilirsiniz.
|
||||
|
||||
**1. Add `twenty-sdk` and `twenty-client-sdk` as dependencies:**
|
||||
**1. `twenty-sdk` ve `twenty-client-sdk` paketlerini bağımlılık olarak ekleyin:**
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add twenty-sdk twenty-client-sdk
|
||||
```
|
||||
|
||||
**2. Add a `twenty` script to your `package.json`:**
|
||||
**2. `package.json` dosyanıza bir `twenty` betiği ekleyin:**
|
||||
|
||||
```json filename="package.json"
|
||||
{
|
||||
@@ -393,19 +393,19 @@ yarn add twenty-sdk twenty-client-sdk
|
||||
}
|
||||
```
|
||||
|
||||
You can now run `yarn twenty dev`, `yarn twenty help`, and all other commands.
|
||||
Artık `yarn twenty dev`, `yarn twenty help` ve diğer tüm komutları çalıştırabilirsiniz.
|
||||
|
||||
<Note>
|
||||
Do not install `twenty-sdk` globally. Always use it as a local project dependency so that each project can pin its own version.
|
||||
`twenty-sdk`'yi global olarak kurmayın. Her projenin kendi sürümünü sabitleyebilmesi için onu her zaman yerel bir proje bağımlılığı olarak kullanın.
|
||||
</Note>
|
||||
|
||||
## Sorun Giderme
|
||||
|
||||
If you run into issues:
|
||||
Sorunlarla karşılaşırsanız:
|
||||
|
||||
* Make sure **Docker is running** before starting the scaffolder with a local instance.
|
||||
* Make sure you are using **Node.js 24+** (`node -v` to check).
|
||||
* Make sure **Corepack is enabled** (`corepack enable`) so Yarn 4 is available.
|
||||
* Try deleting `node_modules` and running `yarn install` again if dependencies seem broken.
|
||||
* Yerel bir örnekle scaffolder'ı başlatmadan önce **Docker'ın çalıştığından** emin olun.
|
||||
* **Node.js 24+** kullandığınızdan emin olun (kontrol etmek için `node -v`).
|
||||
* Yarn 4'ün kullanılabilir olması için **Corepack'in etkinleştirildiğinden** emin olun (`corepack enable`).
|
||||
* Bağımlılıklar bozuk görünüyorsa `node_modules` dizinini silip `yarn install` komutunu yeniden çalıştırmayı deneyin.
|
||||
|
||||
Still stuck? Ask for help on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
Hâlâ takıldınız mı? Yardım için [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322) üzerinden yardım isteyin.
|
||||
|
||||
@@ -4,24 +4,24 @@ description: 使用 Twenty SDK 定义对象、逻辑函数、前端组件等。
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
应用目前处于 Alpha 阶段。 该功能可用,但仍在演进中。
|
||||
</Warning>
|
||||
|
||||
The `twenty-sdk` package provides typed building blocks to create your app. This page covers every entity type and API client available in the SDK.
|
||||
`twenty-sdk` 包提供类型化的构建块,用于创建你的应用。 本页涵盖 SDK 中可用的所有实体类型和 API 客户端。
|
||||
|
||||
## DefineEntity functions
|
||||
## DefineEntity 函数
|
||||
|
||||
The SDK provides functions to define your app entities. You must use `export default defineEntity({...})` for the SDK to detect your entities. 这些函数会在构建时校验你的配置,并提供 IDE 自动补全和类型安全。
|
||||
SDK 提供用于定义你的应用实体的函数。 你必须使用 `export default defineEntity({...})`,这样 SDK 才能检测到你的实体。 这些函数会在构建时校验你的配置,并提供 IDE 自动补全和类型安全。
|
||||
|
||||
<Note>
|
||||
**File organization is up to you.**
|
||||
Entity detection is AST-based — the SDK finds `export default defineEntity(...)` calls regardless of where the file lives. Grouping files by type (e.g., `logic-functions/`, `roles/`) is just a convention, not a requirement.
|
||||
**文件组织由你决定。**
|
||||
实体检测基于 AST——无论文件位于何处,SDK 都能找到 `export default defineEntity(...)` 的调用。 按类型对文件分组(例如 `logic-functions/`、`roles/`)只是代码组织的一种约定,并非必需。
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="defineRole" description="配置角色权限和对象访问">
|
||||
|
||||
Roles encapsulate permissions on your workspace's objects and actions.
|
||||
角色封装了对你的工作空间对象与操作的权限。
|
||||
|
||||
```ts restricted-company-role.ts
|
||||
import {
|
||||
@@ -69,12 +69,12 @@ export default defineRole({
|
||||
</Accordion>
|
||||
<Accordion title="defineApplication" description="配置应用元数据(必需,每个应用一个)">
|
||||
|
||||
Every app must have exactly one `defineApplication` call that describes:
|
||||
每个应用必须且只能有一个 `defineApplication` 调用,用于描述:
|
||||
|
||||
* **Identity**: identifiers, display name, and description.
|
||||
* **Permissions**: which role its functions and front components use.
|
||||
* **(Optional) Variables**: key–value pairs exposed to your functions as environment variables.
|
||||
* **(Optional) Pre-install / post-install functions**: logic functions that run before or after installation.
|
||||
* **应用的身份**:标识符、显示名称和描述。
|
||||
* **权限**:其函数和前端组件所使用的角色。
|
||||
* **(可选)变量**:以环境变量形式提供给函数的键值对。
|
||||
* **(可选)安装前/安装后函数**:在安装之前或之后运行的逻辑函数。
|
||||
|
||||
```ts src/application-config.ts
|
||||
import { defineApplication } from 'twenty-sdk';
|
||||
@@ -98,21 +98,21 @@ export default defineApplication({
|
||||
```
|
||||
|
||||
备注:
|
||||
* `universalIdentifier` fields are deterministic IDs you own. Generate them once and keep them stable across syncs.
|
||||
* `applicationVariables` become environment variables for your functions and front components (e.g., `DEFAULT_RECIPIENT_NAME` is available as `process.env.DEFAULT_RECIPIENT_NAME`).
|
||||
* `defaultRoleUniversalIdentifier` must reference a role defined with `defineRole()` (see above).
|
||||
* Pre-install and post-install functions are detected automatically during the manifest build — you do not need to reference them in `defineApplication()`.
|
||||
* `universalIdentifier` 字段是你拥有的确定性 ID。 只需生成一次,并在多次同步过程中保持稳定不变。
|
||||
* `applicationVariables` 会变成你的函数和前端组件可用的环境变量(例如,`DEFAULT_RECIPIENT_NAME` 可作为 `process.env.DEFAULT_RECIPIENT_NAME` 使用)。
|
||||
* `defaultRoleUniversalIdentifier` 必须引用使用 `defineRole()` 定义的角色(见上文)。
|
||||
* 在构建清单时会自动检测安装前/安装后函数——无需在 `defineApplication()` 中引用它们。
|
||||
|
||||
#### 应用市场元数据
|
||||
|
||||
If you plan to [publish your app](/l/zh/developers/extend/apps/publishing), these optional fields control how it appears in the marketplace:
|
||||
如果你计划[发布你的应用](/l/zh/developers/extend/apps/publishing),这些可选字段将控制你的应用在应用市场中的展示:
|
||||
|
||||
| 字段 | 描述 |
|
||||
| ------------------ | -------------------------------------------------------------- |
|
||||
| `作者` | 作者或公司名称 |
|
||||
| `类别` | 用于应用市场筛选的应用类别 |
|
||||
| `logoUrl` | Path to your app logo (e.g., `public/logo.png`) |
|
||||
| `screenshots` | Array of screenshot paths (e.g., `public/screenshot-1.png`) |
|
||||
| `logoUrl` | 应用徽标的路径(例如 `public/logo.png`) |
|
||||
| `screenshots` | 截图路径数组(例如 `public/screenshot-1.png`) |
|
||||
| `aboutDescription` | 用于“关于”选项卡的更长的 Markdown 描述。 如果省略,市场将使用该软件包在 npm 上的 `README.md`。 |
|
||||
| `websiteUrl` | 你的网站链接 |
|
||||
| `termsUrl` | 服务条款链接 |
|
||||
@@ -121,15 +121,15 @@ If you plan to [publish your app](/l/zh/developers/extend/apps/publishing), thes
|
||||
|
||||
#### 角色和权限
|
||||
|
||||
The `defaultRoleUniversalIdentifier` in `application-config.ts` designates the default role used by your app's logic functions and front components. See `defineRole` above for details.
|
||||
`application-config.ts` 中的 `defaultRoleUniversalIdentifier` 字段指定你的应用的逻辑函数和前端组件所使用的默认角色。 详见上文的 `defineRole`。
|
||||
|
||||
* The runtime token injected as `TWENTY_APP_ACCESS_TOKEN` is derived from this role.
|
||||
* The typed client is restricted to the permissions granted to that role.
|
||||
* Follow least-privilege: create a dedicated role with only the permissions your functions need.
|
||||
* 作为 `TWENTY_APP_ACCESS_TOKEN` 注入的运行时令牌来源于该角色。
|
||||
* 类型化客户端将受限于该角色授予的权限。
|
||||
* 遵循最小权限原则:创建一个仅包含你的函数所需权限的专用角色。
|
||||
|
||||
##### Default function role
|
||||
##### 默认函数角色
|
||||
|
||||
When you scaffold a new app, the CLI creates a default role file:
|
||||
当你使用脚手架创建新应用时,CLI 会创建一个默认角色文件:
|
||||
|
||||
```ts src/roles/default-role.ts
|
||||
import { defineRole, PermissionFlag } from 'twenty-sdk';
|
||||
@@ -155,16 +155,16 @@ export default defineRole({
|
||||
});
|
||||
```
|
||||
|
||||
This role's `universalIdentifier` is referenced in `application-config.ts` as `defaultRoleUniversalIdentifier`:
|
||||
该角色的 `universalIdentifier` 会在 `application-config.ts` 中被引用为 `defaultRoleUniversalIdentifier`:
|
||||
|
||||
* **\*.role.ts** defines what the role can do.
|
||||
* **\*.role.ts** 定义该角色可以执行的操作。
|
||||
* **application-config.ts** 指向该角色,使你的函数继承其权限。
|
||||
|
||||
备注:
|
||||
* 从脚手架生成的角色开始,然后按照最小权限原则逐步收紧权限。
|
||||
* Replace `objectPermissions` and `fieldPermissions` with the objects and fields your functions actually need.
|
||||
* `permissionFlags` 控制对平台级能力的访问。 Keep them minimal.
|
||||
* See a working example: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts).
|
||||
* 将 `objectPermissions` 和 `fieldPermissions` 替换为你的函数所需的对象/字段。
|
||||
* `permissionFlags` 控制对平台级能力的访问。 尽量保持最小化。
|
||||
* 查看一个可运行示例:[`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts)。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineObject" description="定义带字段的自定义对象">
|
||||
@@ -256,7 +256,7 @@ export default defineObject({
|
||||
</Note>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Standard fields" description="为现有对象扩展额外字段">
|
||||
<Accordion title="defineField — 标准字段" description="为现有对象扩展额外字段">
|
||||
|
||||
使用 `defineField()` 向你不拥有的对象添加字段——例如标准的 Twenty 对象(Person、Company 等)。 或来自其他应用的对象。 与在 `defineObject()` 中的内联字段不同,独立字段需要一个 `objectUniversalIdentifier` 来指定它们要扩展的对象:
|
||||
|
||||
@@ -284,7 +284,7 @@ export default defineField({
|
||||
* `defineField()` 是为非通过 `defineObject()` 创建的对象添加字段的唯一方式。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="defineField — Relation fields" description="Connect objects together with bidirectional relations">
|
||||
<Accordion title="defineField — 关联字段" description="使用双向关系将对象连接在一起">
|
||||
|
||||
关系用于将对象彼此连接。 在 Twenty 中,关系始终是双向的——你需要定义两侧,每一侧都引用另一侧。
|
||||
|
||||
@@ -443,7 +443,7 @@ export default defineObject({
|
||||
});
|
||||
```
|
||||
</Accordion>
|
||||
<Accordion title="defineLogicFunction" description="Define logic functions and their triggers">
|
||||
<Accordion title="defineLogicFunction" description="定义逻辑函数及其触发器">
|
||||
|
||||
每个函数文件都使用 `defineLogicFunction()` 导出包含处理程序和可选触发器的配置。
|
||||
|
||||
@@ -487,15 +487,15 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
Available trigger types:
|
||||
* **httpRoute**: Exposes your function on an HTTP path and method **under the `/s/` endpoint**:
|
||||
> e.g. `path: '/post-card/create'` is callable at `https://your-twenty-server.com/s/post-card/create`
|
||||
可用的触发器类型:
|
||||
* **httpRoute**:在 **`/s/` 端点**下通过 HTTP 路径和方法公开你的函数:
|
||||
> 例如 `path: '/post-card/create'` 可在 `https://your-twenty-server.com/s/post-card/create` 调用
|
||||
* **cron**:使用 CRON 表达式按计划运行你的函数。
|
||||
* **databaseEvent**:在工作空间对象生命周期事件上运行。 当事件操作为 `updated` 时,可以在 `updatedFields` 数组中指定要监听的特定字段。 如果未定义或为空,任何更新都会触发该函数。
|
||||
> e.g. `person.updated`, `*.created`, `company.*`
|
||||
> 例如 `person.updated`、`*.created`、`company.*`
|
||||
|
||||
<Note>
|
||||
You can also manually execute a function using the CLI:
|
||||
你也可以使用 CLI 手动执行函数:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
@@ -505,7 +505,7 @@ yarn twenty exec -n create-new-post-card -p '{"key": "value"}'
|
||||
yarn twenty exec -y e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf
|
||||
```
|
||||
|
||||
You can watch logs with:
|
||||
你可以通过以下方式查看日志:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty logs
|
||||
@@ -514,9 +514,9 @@ yarn twenty logs
|
||||
|
||||
#### 路由触发器负载
|
||||
|
||||
When a route trigger invokes your logic function, it receives a `RoutePayload` object that follows the
|
||||
[AWS HTTP API v2 format](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html).
|
||||
Import the `RoutePayload` type from `twenty-sdk`:
|
||||
当路由触发器调用你的逻辑函数时,它会接收一个遵循
|
||||
[AWS HTTP API v2 格式](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)的 `RoutePayload` 对象。
|
||||
从 `twenty-sdk` 导入 `RoutePayload` 类型:
|
||||
|
||||
```ts
|
||||
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
|
||||
@@ -531,21 +531,21 @@ const handler = async (event: RoutePayload) => {
|
||||
|
||||
`RoutePayload` 类型具有以下结构:
|
||||
|
||||
| 属性 | 类型 | 描述 | 示例 |
|
||||
| ---------------------------- | ------------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------------- |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP 请求头(仅限 `forwardedRequestHeaders` 中列出的那些) | see section below |
|
||||
| `queryStringParameters` | `Record<string, string \| undefined>` | 查询字符串参数(多个值以逗号连接) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | Path parameters extracted from the route pattern | `/users/:id`, `/users/123` -> `{ id: '123' }` |
|
||||
| `body` | `object \| null` | 已解析的请求体(JSON) | `{ id: 1 }` -> `{ id: 1 }` |
|
||||
| `isBase64Encoded` | `boolean` | 请求体是否为 base64 编码 | |
|
||||
| `requestContext.http.method` | `string` | HTTP 方法(GET、POST、PUT、PATCH、DELETE) | |
|
||||
| `requestContext.http.path` | `string` | 原始请求路径 | |
|
||||
| 属性 | 类型 | 描述 | 示例 |
|
||||
| ---------------------------- | ------------------------------------- | --------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `headers` | `Record<string, string \| undefined>` | HTTP 请求头(仅限 `forwardedRequestHeaders` 中列出的那些) | 见下文 |
|
||||
| `queryStringParameters` | `Record<string, string \| undefined>` | 查询字符串参数(多个值以逗号连接) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` |
|
||||
| `pathParameters` | `Record<string, string \| undefined>` | 从路由模式中提取的路径参数 | `/users/:id`,`/users/123` -> `{ id: '123' }` |
|
||||
| `body` | `object \| null` | 已解析的请求体(JSON) | `{ id: 1 }` -> `{ id: 1 }` |
|
||||
| `isBase64Encoded` | `boolean` | 请求体是否为 base64 编码 | |
|
||||
| `requestContext.http.method` | `string` | HTTP 方法(GET、POST、PUT、PATCH、DELETE) | |
|
||||
| `requestContext.http.path` | `string` | 原始请求路径 | |
|
||||
|
||||
|
||||
#### forwardedRequestHeaders
|
||||
|
||||
出于安全原因,默认**不会**将传入请求的 HTTP 请求头传递给你的逻辑函数。
|
||||
To access specific headers, list them in the `forwardedRequestHeaders` array:
|
||||
如需访问特定请求头,请在 `forwardedRequestHeaders` 数组中显式列出:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -561,7 +561,7 @@ export default defineLogicFunction({
|
||||
});
|
||||
```
|
||||
|
||||
In your handler, access the forwarded headers like this:
|
||||
在你的处理程序中,可以这样访问被转发的请求头:
|
||||
|
||||
```ts
|
||||
const handler = async (event: RoutePayload) => {
|
||||
@@ -574,14 +574,14 @@ const handler = async (event: RoutePayload) => {
|
||||
```
|
||||
|
||||
<Note>
|
||||
请求头名称会被规范化为小写。 Access them using lowercase keys (e.g., `event.headers['content-type']`).
|
||||
请求头名称会被规范化为小写。 请使用小写键访问它们(例如,`event.headers['content-type']`)。
|
||||
</Note>
|
||||
|
||||
#### Exposing a function as a tool
|
||||
#### 将函数作为工具公开
|
||||
|
||||
逻辑函数可以作为供 AI 智能体和工作流使用的**工具**对外提供。 When marked as a tool, a function becomes discoverable by Twenty's AI features and can be used in workflow automations.
|
||||
逻辑函数可以作为供 AI 智能体和工作流使用的**工具**对外提供。 当函数被标记为工具时,Twenty 的 AI 功能即可发现它,并可在工作流自动化中使用。
|
||||
|
||||
To mark a logic function as a tool, set `isTool: true`:
|
||||
要将逻辑函数标记为工具,请设置 `isTool: true`:
|
||||
|
||||
```ts src/logic-functions/enrich-company.logic-function.ts
|
||||
import { defineLogicFunction } from 'twenty-sdk';
|
||||
@@ -617,8 +617,8 @@ export default defineLogicFunction({
|
||||
|
||||
关键点:
|
||||
|
||||
* You can combine `isTool` with triggers — a function can be both a tool (callable by AI agents) and triggered by events at the same time.
|
||||
* **`toolInputSchema`** (optional): A JSON Schema object describing the parameters your function accepts. The schema is computed automatically from source code static analysis, but you can set it explicitly:
|
||||
* 你可以将 `isTool` 与触发器结合使用——一个函数既可以作为工具(由 AI 代理调用),也可以同时由事件触发。
|
||||
* **`toolInputSchema`**(可选):描述函数可接受参数的 JSON Schema 对象。 该模式会通过对源代码的静态分析自动推导,但你也可以显式设置:
|
||||
|
||||
```ts
|
||||
export default defineLogicFunction({
|
||||
@@ -715,11 +715,11 @@ yarn twenty exec --postInstall
|
||||
</Accordion>
|
||||
<Accordion title="defineFrontComponent" description="为自定义 UI 定义前端组件">
|
||||
|
||||
Front components are React components that render directly inside Twenty's UI. They run in an **isolated Web Worker** using Remote DOM — your code is sandboxed but renders natively in the page, not in an iframe.
|
||||
前端组件是直接在 Twenty 的 UI 内渲染的 React 组件。 它们在使用 Remote DOM 的**隔离 Web Worker**中运行——你的代码在沙盒中执行,但会原生渲染到页面中,而非在 iframe 里。
|
||||
|
||||
#### Basic example
|
||||
#### 基础示例
|
||||
|
||||
The quickest way to see a front component in action is to register it as a **command**. Adding a `command` field with `isPinned: true` makes it appear as a quick-action button in the top-right corner of the page — no page layout needed:
|
||||
最快体验前端组件运行方式的方法是将其注册为一个**命令**。 添加一个 `command` 字段并设置 `isPinned: true`,即可让它以快速操作按钮的形式出现在页面右上角——无需页面布局:
|
||||
|
||||
```tsx src/front-components/hello-world.tsx
|
||||
import { defineFrontComponent } from 'twenty-sdk';
|
||||
@@ -749,24 +749,24 @@ export default defineFrontComponent({
|
||||
});
|
||||
```
|
||||
|
||||
After syncing with `yarn twenty dev`, the quick action appears in the top-right corner of the page:
|
||||
使用 `yarn twenty dev` 同步后,快速操作会出现在页面右上角:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="Quick action button in the top-right corner" />
|
||||
<img src="/images/docs/developers/extends/apps/quick-action.png" alt="右上角的快速操作按钮" />
|
||||
</div>
|
||||
|
||||
Click it to render the component inline.
|
||||
点击它以内联方式渲染该组件。
|
||||
|
||||
{/* TODO: add screenshot of the rendered front component */}
|
||||
|
||||
#### Configuration fields
|
||||
#### 配置字段
|
||||
|
||||
| 字段 | 必填 | 描述 |
|
||||
| --------------------- | -- | ----------------------------------------------------------------------------------- |
|
||||
| `universalIdentifier` | 是 | Stable unique ID for this component |
|
||||
| `component` | 是 | A React component function |
|
||||
| `name` | 否 | Display name |
|
||||
| `描述` | 否 | Description of what the component does |
|
||||
| `universalIdentifier` | 是 | 该组件的稳定唯一 ID |
|
||||
| `component` | 是 | 一个 React 组件函数 |
|
||||
| `name` | 否 | 显示名称 |
|
||||
| `描述` | 否 | 组件的功能描述 |
|
||||
| `isHeadless` | 否 | Set to `true` if the component has no visible UI (see below) |
|
||||
| `命令` | 否 | Register the component as a command (see [command options](#command-options) below) |
|
||||
|
||||
|
||||
@@ -4,142 +4,142 @@ description: 几分钟内创建你的第一个 Twenty 应用。
|
||||
---
|
||||
|
||||
<Warning>
|
||||
Apps are currently in alpha. The feature works but is still evolving.
|
||||
应用目前处于 Alpha 阶段。 该功能可用,但仍在演进中。
|
||||
</Warning>
|
||||
|
||||
应用可通过自定义对象、字段、逻辑函数、AI 技能和 UI 组件来扩展 Twenty——全部以代码进行管理。
|
||||
|
||||
## 先决条件
|
||||
|
||||
Before you begin, make sure the following is installed on your machine:
|
||||
在开始之前,请确保你的机器已安装以下内容:
|
||||
|
||||
* **Node.js 24+** — [Download here](https://nodejs.org/)
|
||||
* **Yarn 4** — Comes with Node.js via Corepack. Enable it by running `corepack enable`
|
||||
* **Docker** — [Download here](https://www.docker.com/products/docker-desktop/). Required to run a local Twenty instance. Not needed if you already have a Twenty server running.
|
||||
* **Node.js 24+** — [在此下载](https://nodejs.org/)
|
||||
* **Yarn 4** — 通过 Corepack 随 Node.js 提供。 通过运行 `corepack enable` 启用它
|
||||
* **Docker** — [在此下载](https://www.docker.com/products/docker-desktop/)。 运行本地 Twenty 实例所必需。 如果你已经有一个正在运行的 Twenty 服务器,则不需要。
|
||||
|
||||
## Step 1: Scaffold your app
|
||||
## 步骤 1:为你的应用创建脚手架
|
||||
|
||||
Open a terminal and run:
|
||||
打开终端并运行:
|
||||
|
||||
```bash filename="Terminal"
|
||||
npx create-twenty-app@latest my-twenty-app
|
||||
```
|
||||
|
||||
You will be prompted to enter a name and a description for your app. Press **Enter** to accept the defaults.
|
||||
系统会提示你为应用输入名称和描述。 按下 **Enter** 接受默认值。
|
||||
|
||||
This creates a new folder called `my-twenty-app` with everything you need.
|
||||
这会创建一个名为 `my-twenty-app` 的新文件夹,其中包含你所需的一切。
|
||||
|
||||
<Note>
|
||||
The scaffolder supports these flags:
|
||||
脚手架工具支持以下标志:
|
||||
|
||||
* `--minimal` — scaffold only the essential files, no examples (default)
|
||||
* `--exhaustive` — scaffold all example entities
|
||||
* `--name <name>` — set the app name (skips the prompt)
|
||||
* `--display-name <displayName>` — set the display name (skips the prompt)
|
||||
* `--description <description>` — set the description (skips the prompt)
|
||||
* `--skip-local-instance` — skip the local server setup prompt
|
||||
* `--minimal` — 仅创建必要文件,不包含示例(默认)
|
||||
* `--exhaustive` — 创建所有示例实体
|
||||
* `--name <name>` — 设置应用名称(跳过提示)
|
||||
* `--display-name <displayName>` — 设置显示名称(跳过提示)
|
||||
* `--description <description>` — 设置描述(跳过提示)
|
||||
* `--skip-local-instance` — 跳过本地服务器设置提示
|
||||
</Note>
|
||||
|
||||
## Step 2: Set up a local Twenty instance
|
||||
## 步骤 2:设置本地 Twenty 实例
|
||||
|
||||
The scaffolder will ask:
|
||||
脚手架工具会询问:
|
||||
|
||||
> **Would you like to set up a local Twenty instance?**
|
||||
> **是否要设置本地 Twenty 实例?**
|
||||
|
||||
* **Type `yes`** (recommended) — This pulls the `twenty-app-dev` Docker image and starts a local Twenty server on port `2020`. Make sure Docker is running before you continue.
|
||||
* **Type `no`** — Choose this if you already have a Twenty server running locally.
|
||||
* **输入 `yes`**(推荐)— 这将拉取 `twenty-app-dev` Docker 镜像,并在端口 `2020` 上启动本地 Twenty 服务器。 继续之前,请确保 Docker 正在运行。
|
||||
* **输入 `no`** — 如果你已经有一个在本地运行的 Twenty 服务器,请选择此项。
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Should start local instance?" />
|
||||
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="是否启动本地实例?" />
|
||||
</div>
|
||||
|
||||
## Step 3: Sign in to your workspace
|
||||
## 步骤 3:登录你的工作区
|
||||
|
||||
Next, a browser window will open with the Twenty login page. Sign in with the pre-seeded demo account:
|
||||
接下来,将打开一个浏览器窗口,显示 Twenty 登录页面。 使用预置的演示账户登录:
|
||||
|
||||
* **Email:** `tim@apple.dev`
|
||||
* **Password:** `tim@apple.dev`
|
||||
* **邮箱:** `tim@apple.dev`
|
||||
* **密码:** `tim@apple.dev`
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty login screen" />
|
||||
<img src="/images/docs/developers/extends/apps/login.png" alt="Twenty 登录界面" />
|
||||
</div>
|
||||
|
||||
## Step 4: Authorize the app
|
||||
## 步骤 4:授权该应用
|
||||
|
||||
After you sign in, you will see an authorization screen. This lets your app interact with your workspace.
|
||||
登录后,你会看到一个授权界面。 这使你的应用可以与工作区交互。
|
||||
|
||||
Click **Authorize** to continue.
|
||||
点击 **授权** 继续。
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI authorization screen" />
|
||||
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Twenty CLI 授权界面" />
|
||||
</div>
|
||||
|
||||
Once authorized, your terminal will confirm that everything is set up.
|
||||
授权后,你的终端会确认一切已就绪。
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="App scaffolded successfully" />
|
||||
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="应用脚手架创建成功" />
|
||||
</div>
|
||||
|
||||
## Step 5: Start developing
|
||||
## 步骤 5:开始开发
|
||||
|
||||
Go into your new app folder and start the development server:
|
||||
进入你的新应用文件夹并启动开发服务器:
|
||||
|
||||
```bash filename="Terminal"
|
||||
cd my-twenty-app
|
||||
yarn twenty dev
|
||||
```
|
||||
|
||||
This watches your source files, rebuilds on every change, and syncs your app to the local Twenty server automatically. You should see a live status panel in your terminal.
|
||||
它会监听你的源文件,每次更改都会重建,并自动将你的应用同步到本地 Twenty 服务器。 你应当在终端中看到一个实时状态面板。
|
||||
|
||||
For more detailed output (build logs, sync requests, error traces), use the `--verbose` flag:
|
||||
如需更详细的输出(构建日志、同步请求、错误跟踪),请使用 `--verbose` 标志:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty dev --verbose
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Dev mode is only available on Twenty instances running in development (`NODE_ENV=development`). Production instances reject dev sync requests. Use `yarn twenty deploy` to deploy to production servers — see [Publishing Apps](/l/zh/developers/extend/apps/publishing) for details.
|
||||
开发模式仅适用于以开发模式运行的 Twenty 实例(`NODE_ENV=development`)。 生产实例会拒绝开发同步请求。 使用 `yarn twenty deploy` 部署到生产服务器——详见[发布应用](/l/zh/developers/extend/apps/publishing)。
|
||||
</Warning>
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="Dev mode terminal output" />
|
||||
<img src="/images/docs/developers/extends/apps/dev.jpg" alt="开发模式终端输出" />
|
||||
</div>
|
||||
|
||||
## Step 6: See your app in Twenty
|
||||
## 步骤 6:在 Twenty 中查看你的应用
|
||||
|
||||
Open [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer) in your browser. Navigate to **Settings > Apps** and select the **Developer** tab. You should see your app listed under **Your Apps**:
|
||||
在浏览器中打开 [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer)。 前往 **设置 > 应用**,并选择 **开发者** 选项卡。 你应当在 **你的应用** 下看到你的应用:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Your Apps list showing My twenty app" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="“你的应用”列表显示 My twenty app" />
|
||||
</div>
|
||||
|
||||
Click on **My twenty app** to open its **application registration**. A registration is a server-level record that describes your app — its name, unique identifier, OAuth credentials, and source (local, npm, or tarball). It lives on the server, not inside any specific workspace. When you install an app into a workspace, Twenty creates a workspace-scoped **application** that points back to this registration. One registration can be installed across multiple workspaces on the same server.
|
||||
点击 **My twenty app** 打开其 **应用注册**。 注册项是一个服务器级记录,用于描述你的应用——其名称、唯一标识符、OAuth 凭据以及来源(本地、npm 或 tarball)。 它位于服务器上,而不在任何特定工作区内。 当你将应用安装到工作区时,Twenty 会创建一个工作区范围的 **应用**,指向该注册项。 同一服务器上的多个工作区可以安装同一个注册项。
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Application registration details" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="应用注册详情" />
|
||||
</div>
|
||||
|
||||
Click **View installed app** to see the installed app. The **About** tab shows the current version and management options:
|
||||
点击 **查看已安装的应用** 以查看已安装的应用。 **关于** 选项卡显示当前版本和管理选项:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Installed app — About tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="已安装的应用 — “关于”选项卡" />
|
||||
</div>
|
||||
|
||||
Switch to the **Content** tab to see everything your app provides — objects, fields, logic functions, and agents:
|
||||
切换到 **内容** 选项卡,以查看你的应用提供的全部内容——对象、字段、逻辑函数和智能体:
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="Installed app — Content tab" />
|
||||
<img src="/images/docs/developers/extends/apps/app-in-ui-4.png" alt="已安装的应用 — “内容”选项卡" />
|
||||
</div>
|
||||
|
||||
You are all set! Edit any file in `src/` and the changes will be picked up automatically.
|
||||
一切就绪! 编辑 `src/` 中的任意文件,更改会被自动检测到。
|
||||
|
||||
Head over to [Building Apps](/l/zh/developers/extend/apps/building) for a detailed guide on creating objects, logic functions, front components, skills, and more.
|
||||
前往[构建应用](/l/zh/developers/extend/apps/building),查看关于创建对象、逻辑函数、前端组件、技能等的详细指南。
|
||||
|
||||
---
|
||||
|
||||
## Project structure
|
||||
## 项目结构
|
||||
|
||||
The scaffolder generates the following file structure (shown with `--exhaustive` mode, which includes examples for every entity type):
|
||||
脚手架工具会生成以下文件结构(以 `--exhaustive` 模式展示,其中包含每种实体类型的示例):
|
||||
|
||||
```text filename="my-twenty-app/"
|
||||
my-twenty-app/
|
||||
@@ -190,30 +190,30 @@ my-twenty-app/
|
||||
└── example-agent.ts # Example AI agent definition
|
||||
```
|
||||
|
||||
By default (`--minimal`), only the core files are created: `application-config.ts`, `roles/default-role.ts`, `logic-functions/pre-install.ts`, and `logic-functions/post-install.ts`. Use `--exhaustive` to include all the example files shown above.
|
||||
默认情况下(`--minimal`),仅创建核心文件:`application-config.ts`、`roles/default-role.ts`、`logic-functions/pre-install.ts` 和 `logic-functions/post-install.ts`。 使用 `--exhaustive` 可包含上面展示的所有示例文件。
|
||||
|
||||
### Key files
|
||||
### 关键文件
|
||||
|
||||
| File / Folder | 目的 |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `package.json` | Declares your app name, version, and dependencies. Includes a `twenty` script so you can run `yarn twenty help` to see all commands. |
|
||||
| `src/application-config.ts` | **Required.** The main configuration file for your app. |
|
||||
| `src/roles/` | Defines roles that control what your logic functions can access. |
|
||||
| `src/logic-functions/` | Server-side functions triggered by routes, cron schedules, or database events. |
|
||||
| `src/front-components/` | React components that render inside Twenty's UI. |
|
||||
| `src/objects/` | Custom object definitions to extend your data model. |
|
||||
| `src/fields/` | Custom fields added to existing objects. |
|
||||
| `src/views/` | Saved view configurations. |
|
||||
| `src/navigation-menu-items/` | Custom links in the sidebar navigation. |
|
||||
| `src/skills/` | 用于扩展 Twenty 的 AI 代理的技能. |
|
||||
| `src/agents/` | AI agents with custom prompts. |
|
||||
| `src/page-layouts/` | Custom page layouts for record views. |
|
||||
| `src/__tests__/` | Integration tests (setup + example test). |
|
||||
| `public/` | Static assets (images, fonts) served with your app. |
|
||||
| 文件 / 文件夹 | 目的 |
|
||||
| ---------------------------- | ------------------------------------------------------------------ |
|
||||
| `package.json` | 声明应用的名称、版本和依赖。 包含一个 `twenty` 脚本,因此你可以运行 `yarn twenty help` 查看所有命令。 |
|
||||
| `src/application-config.ts` | **必需。** 应用的主配置文件。 |
|
||||
| `src/roles/` | 定义角色,用于控制逻辑函数的访问权限。 |
|
||||
| `src/logic-functions/` | 由路由、cron 调度或数据库事件触发的服务端函数。 |
|
||||
| `src/front-components/` | 在 Twenty 的 UI 中渲染的 React 组件。 |
|
||||
| `src/objects/` | 用于扩展数据模型的自定义对象定义。 |
|
||||
| `src/fields/` | 添加到现有对象的自定义字段。 |
|
||||
| `src/views/` | 已保存的视图配置。 |
|
||||
| `src/navigation-menu-items/` | 侧边栏导航中的自定义链接。 |
|
||||
| `src/skills/` | 用于扩展 Twenty 的 AI 代理的技能. |
|
||||
| `src/agents/` | 具有自定义提示词的 AI 智能体。 |
|
||||
| `src/page-layouts/` | 记录视图的自定义页面布局。 |
|
||||
| `src/__tests__/` | 集成测试(设置 + 示例测试)。 |
|
||||
| `public/` | 随应用一起提供的静态资源(图像、字体)。 |
|
||||
|
||||
## Managing remotes
|
||||
## 管理远程
|
||||
|
||||
A **remote** is a Twenty server that your app connects to. During setup, the scaffolder creates one for you automatically. You can add more remotes or switch between them at any time.
|
||||
“远程”是指你的应用连接到的 Twenty 服务器。 在设置期间,脚手架工具会为你自动创建一个。 你可以随时添加更多远程或在它们之间切换。
|
||||
|
||||
```bash filename="Terminal"
|
||||
# Add a new remote (opens a browser for OAuth login)
|
||||
@@ -232,11 +232,11 @@ yarn twenty remote list
|
||||
yarn twenty remote switch <name>
|
||||
```
|
||||
|
||||
Your credentials are stored in `~/.twenty/config.json`.
|
||||
你的凭据存储在 `~/.twenty/config.json` 中。
|
||||
|
||||
## Local development server (`yarn twenty server`)
|
||||
## 本地开发服务器(`yarn twenty server`)
|
||||
|
||||
The CLI can manage a local Twenty server running in Docker. This is the same server started automatically when you scaffold an app with `create-twenty-app`, but you can also manage it manually.
|
||||
CLI 可以管理在 Docker 中运行的本地 Twenty 服务器。 这与使用 `create-twenty-app` 搭建应用时自动启动的服务器相同,但你也可以手动管理它。
|
||||
|
||||
### 启动服务器
|
||||
|
||||
@@ -244,85 +244,85 @@ The CLI can manage a local Twenty server running in Docker. This is the same ser
|
||||
yarn twenty server start
|
||||
```
|
||||
|
||||
This pulls the `twentycrm/twenty-app-dev:latest` Docker image (if not already present), creates a container named `twenty-app-dev`, and starts it on port **2020**. The CLI waits until the server passes its health check before returning.
|
||||
这将拉取 `twentycrm/twenty-app-dev:latest` Docker 镜像(如果尚未存在),创建名为 `twenty-app-dev` 的容器,并在端口 **2020** 上启动它。 CLI 会等待服务器通过健康检查后再返回。
|
||||
|
||||
Two Docker volumes are created to persist data between restarts:
|
||||
会创建两个 Docker 卷,以在重启之间持久化数据:
|
||||
|
||||
* `twenty-app-dev-data` — PostgreSQL database
|
||||
* `twenty-app-dev-storage` — file storage
|
||||
* `twenty-app-dev-data` — PostgreSQL 数据库
|
||||
* `twenty-app-dev-storage` — 文件存储
|
||||
|
||||
If port 2020 is already in use, you can start on a different port:
|
||||
如果端口 2020 已被占用,你可以在其他端口上启动:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server start --port 3030
|
||||
```
|
||||
|
||||
The CLI automatically configures the container's internal `NODE_PORT` and `SERVER_URL` to match the chosen port, so logic functions, OAuth, and all other internal networking work correctly.
|
||||
CLI 会自动配置容器内部的 `NODE_PORT` 和 `SERVER_URL` 以匹配所选端口,从而使逻辑函数、OAuth 以及所有其他内部网络正常工作。
|
||||
|
||||
Once started, the server is automatically registered as the `local` remote in your CLI config.
|
||||
启动后,该服务器会在你的 CLI 配置中自动注册为 `local` 远程。
|
||||
|
||||
### Checking server status
|
||||
### 检查服务器状态
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server status
|
||||
```
|
||||
|
||||
Displays whether the server is running, its URL, and the default login credentials (`tim@apple.dev` / `tim@apple.dev`).
|
||||
显示服务器是否在运行、其 URL,以及默认登录凭据(`tim@apple.dev` / `tim@apple.dev`)。
|
||||
|
||||
### Viewing server logs
|
||||
### 查看服务器日志
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs
|
||||
```
|
||||
|
||||
Streams the container logs. Use `--lines` to control how many recent lines to show:
|
||||
持续输出容器日志。 使用 `--lines` 控制显示的最近日志行数:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server logs --lines 100
|
||||
```
|
||||
|
||||
### Stopping the server
|
||||
### 停止服务器
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server stop
|
||||
```
|
||||
|
||||
Stops the container. Your data is preserved in the Docker volumes — the next `start` picks up where you left off.
|
||||
停止容器。 你的数据会保存在 Docker 卷中——下次 `start` 会从上次中断处继续。
|
||||
|
||||
### Resetting the server
|
||||
### 重置服务器
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn twenty server reset
|
||||
```
|
||||
|
||||
Removes the container **and** deletes both Docker volumes, wiping all data. The next `start` creates a fresh instance.
|
||||
移除容器并删除这两个 Docker 卷,清除所有数据。 下一次 `start` 会创建一个全新实例。
|
||||
|
||||
<Note>
|
||||
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
|
||||
服务器需要 Docker 处于运行状态。 如果看到 "Docker not running" 错误,请确保 Docker Desktop(或 Docker 守护进程)已启动。
|
||||
</Note>
|
||||
|
||||
### Command reference
|
||||
### 命令参考
|
||||
|
||||
| 命令 | 描述 |
|
||||
| -------------------------------------- | ---------------------------------------------- |
|
||||
| `yarn twenty server start` | Start the local server (pulls image if needed) |
|
||||
| `yarn twenty server start --port 3030` | Start on a custom port |
|
||||
| `yarn twenty server stop` | Stop the server (preserves data) |
|
||||
| `yarn twenty server status` | Show server status, URL, and credentials |
|
||||
| `yarn twenty server logs` | Stream server logs |
|
||||
| `yarn twenty server logs --lines 100` | Show the last 100 log lines |
|
||||
| `yarn twenty server reset` | Delete all data and start fresh |
|
||||
| 命令 | 描述 |
|
||||
| -------------------------------------- | --------------- |
|
||||
| `yarn twenty server start` | 启动本地服务器(按需拉取镜像) |
|
||||
| `yarn twenty server start --port 3030` | 在自定义端口启动 |
|
||||
| `yarn twenty server stop` | 停止服务器(保留数据) |
|
||||
| `yarn twenty server status` | 显示服务器状态、URL 和凭据 |
|
||||
| `yarn twenty server logs` | 流式输出服务器日志 |
|
||||
| `yarn twenty server logs --lines 100` | 显示最近 100 行日志 |
|
||||
| `yarn twenty server reset` | 删除所有数据并全新开始 |
|
||||
|
||||
## CI with GitHub Actions
|
||||
## 使用 GitHub Actions 进行 CI
|
||||
|
||||
The scaffolder generates a ready-to-use GitHub Actions workflow at `.github/workflows/ci.yml`. It runs your integration tests automatically on every push to `main` and on pull requests.
|
||||
脚手架工具会在 `.github/workflows/ci.yml` 生成一个开箱即用的 GitHub Actions 工作流。 它会在每次向 `main` 推送以及拉取请求上自动运行你的集成测试。
|
||||
|
||||
The workflow:
|
||||
工作流:
|
||||
|
||||
1. Checks out your code
|
||||
2. Spins up a temporary Twenty server using the `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` action
|
||||
3. Installs dependencies with `yarn install --immutable`
|
||||
4. Runs `yarn test` with `TWENTY_API_URL` and `TWENTY_API_KEY` injected from the action outputs
|
||||
1. 检出你的代码
|
||||
2. 使用 `twentyhq/twenty/.github/actions/spawn-twenty-docker-image` 动作启动一个临时的 Twenty 服务器
|
||||
3. 使用 `yarn install --immutable` 安装依赖
|
||||
4. 运行 `yarn test`,并从该动作的输出中注入 `TWENTY_API_URL` 和 `TWENTY_API_KEY`
|
||||
|
||||
```yaml .github/workflows/ci.yml
|
||||
name: CI
|
||||
@@ -369,21 +369,21 @@ jobs:
|
||||
TWENTY_API_KEY: ${{ steps.twenty.outputs.access-token }}
|
||||
```
|
||||
|
||||
You don't need to configure any secrets — the `spawn-twenty-docker-image` action starts an ephemeral Twenty server directly in the runner and outputs the connection details. The `GITHUB_TOKEN` secret is provided automatically by GitHub.
|
||||
你无需配置任何机密——`spawn-twenty-docker-image` 动作会在运行器中直接启动一个临时的 Twenty 服务器,并输出连接详情。 GitHub 会自动提供 `GITHUB_TOKEN` 机密。
|
||||
|
||||
To pin a specific Twenty version instead of `latest`, change the `TWENTY_VERSION` environment variable at the top of the workflow.
|
||||
若要固定为特定的 Twenty 版本而不是 `latest`,请在工作流顶部修改 `TWENTY_VERSION` 环境变量。
|
||||
|
||||
## 手动设置(不使用脚手架)
|
||||
|
||||
If you prefer to set things up yourself instead of using `create-twenty-app`, you can do it in two steps.
|
||||
如果你不想使用 `create-twenty-app`,而是自行完成设置,可以分两步进行。
|
||||
|
||||
**1. Add `twenty-sdk` and `twenty-client-sdk` as dependencies:**
|
||||
\*\*1. 将 `twenty-sdk` 和 `twenty-client-sdk` 添加为依赖项:
|
||||
|
||||
```bash filename="Terminal"
|
||||
yarn add twenty-sdk twenty-client-sdk
|
||||
```
|
||||
|
||||
**2. Add a `twenty` script to your `package.json`:**
|
||||
\*\*2. 在你的 `package.json` 中添加一个 `twenty` 脚本:
|
||||
|
||||
```json filename="package.json"
|
||||
{
|
||||
@@ -393,19 +393,19 @@ yarn add twenty-sdk twenty-client-sdk
|
||||
}
|
||||
```
|
||||
|
||||
You can now run `yarn twenty dev`, `yarn twenty help`, and all other commands.
|
||||
现在你可以运行 `yarn twenty dev`、`yarn twenty help` 以及所有其他命令。
|
||||
|
||||
<Note>
|
||||
Do not install `twenty-sdk` globally. Always use it as a local project dependency so that each project can pin its own version.
|
||||
不要全局安装 `twenty-sdk`。 始终将其作为本地项目依赖使用,以便每个项目都能固定其自己的版本。
|
||||
</Note>
|
||||
|
||||
## 故障排除
|
||||
|
||||
If you run into issues:
|
||||
如果遇到问题:
|
||||
|
||||
* Make sure **Docker is running** before starting the scaffolder with a local instance.
|
||||
* Make sure you are using **Node.js 24+** (`node -v` to check).
|
||||
* Make sure **Corepack is enabled** (`corepack enable`) so Yarn 4 is available.
|
||||
* Try deleting `node_modules` and running `yarn install` again if dependencies seem broken.
|
||||
* 在使用本地实例启动脚手架工具之前,请确保**Docker 已在运行**。
|
||||
* 请确保使用 **Node.js 24+**(运行 `node -v` 进行检查)。
|
||||
* 请确保**已启用 Corepack**(`corepack enable`),以便可使用 Yarn 4。
|
||||
* 如果依赖似乎有问题,尝试删除 `node_modules` 并重新运行 `yarn install`。
|
||||
|
||||
Still stuck? Ask for help on the [Twenty Discord](https://discord.com/channels/1130383047699738754/1130386664812982322).
|
||||
仍然遇到问题? 在 [Twenty 的 Discord](https://discord.com/channels/1130383047699738754/1130386664812982322) 上寻求帮助。
|
||||
|
||||
+9
-4
@@ -1,6 +1,7 @@
|
||||
import { FrontComponentErrorEffect } from '@/remote/components/FrontComponentErrorEffect';
|
||||
import { FrontComponentHostCommunicationApiEffect } from '@/remote/components/FrontComponentHostCommunicationApiEffect';
|
||||
import { FrontComponentInitializeHostCommunicationApiEffect } from '@/remote/components/FrontComponentInitializeHostCommunicationApiEffect';
|
||||
import { FrontComponentUpdateContextEffect } from '@/remote/components/FrontComponentUpdateContextEffect';
|
||||
import { FrontComponentUpdateHostCommunicationApiEffect } from '@/remote/components/FrontComponentUpdateHostCommunicationApiEffect';
|
||||
import { type FrontComponentHostCommunicationApi } from '@/types/FrontComponentHostCommunicationApi';
|
||||
import { type SdkClientUrls } from '@/types/HostToWorkerRenderContext';
|
||||
import { type WorkerExports } from '@/types/WorkerExports';
|
||||
@@ -55,7 +56,6 @@ export const FrontComponentRenderer = ({
|
||||
apiUrl={apiUrl}
|
||||
sdkClientUrls={sdkClientUrls}
|
||||
frontComponentId={executionContext.frontComponentId}
|
||||
frontComponentHostCommunicationApi={frontComponentHostCommunicationApi}
|
||||
setReceiver={setReceiver}
|
||||
setThread={setThread}
|
||||
setError={setError}
|
||||
@@ -63,7 +63,6 @@ export const FrontComponentRenderer = ({
|
||||
);
|
||||
}, [
|
||||
componentUrl,
|
||||
frontComponentHostCommunicationApi,
|
||||
setError,
|
||||
setReceiver,
|
||||
setThread,
|
||||
@@ -102,7 +101,13 @@ export const FrontComponentRenderer = ({
|
||||
|
||||
{isDefined(thread) && (
|
||||
<>
|
||||
<FrontComponentHostCommunicationApiEffect thread={thread} />
|
||||
<FrontComponentUpdateHostCommunicationApiEffect
|
||||
thread={thread}
|
||||
frontComponentHostCommunicationApi={
|
||||
frontComponentHostCommunicationApi
|
||||
}
|
||||
/>
|
||||
<FrontComponentInitializeHostCommunicationApiEffect thread={thread} />
|
||||
<FrontComponentUpdateContextEffect
|
||||
thread={thread}
|
||||
executionContext={executionContext}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
export { FrontComponentRenderer } from './host/components/FrontComponentRenderer';
|
||||
export { componentRegistry } from './host/generated/host-component-registry';
|
||||
export { FrontComponentErrorEffect } from './remote/components/FrontComponentErrorEffect';
|
||||
export { FrontComponentHostCommunicationApiEffect } from './remote/components/FrontComponentHostCommunicationApiEffect';
|
||||
export { FrontComponentInitializeHostCommunicationApiEffect } from './remote/components/FrontComponentInitializeHostCommunicationApiEffect';
|
||||
export { FrontComponentUpdateContextEffect } from './remote/components/FrontComponentUpdateContextEffect';
|
||||
export { FrontComponentUpdateHostCommunicationApiEffect } from './remote/components/FrontComponentUpdateHostCommunicationApiEffect';
|
||||
export { FrontComponentWorkerEffect } from './remote/components/FrontComponentWorkerEffect';
|
||||
export {
|
||||
HtmlA,
|
||||
|
||||
+3
-3
@@ -3,13 +3,13 @@ import { type WorkerExports } from '@/types/WorkerExports';
|
||||
import { type ThreadWebWorker } from '@quilted/threads';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
type FrontComponentHostCommunicationApiEffectProps = {
|
||||
type FrontComponentInitializeHostCommunicationApiEffectProps = {
|
||||
thread: ThreadWebWorker<WorkerExports, FrontComponentHostCommunicationApi>;
|
||||
};
|
||||
|
||||
export const FrontComponentHostCommunicationApiEffect = ({
|
||||
export const FrontComponentInitializeHostCommunicationApiEffect = ({
|
||||
thread,
|
||||
}: FrontComponentHostCommunicationApiEffectProps) => {
|
||||
}: FrontComponentInitializeHostCommunicationApiEffectProps) => {
|
||||
useEffect(() => {
|
||||
thread.imports.initializeHostCommunicationApi().catch((error) => {
|
||||
console.error('Failed to initialize host communication API:', error);
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
import { type FrontComponentHostCommunicationApi } from '@/types/FrontComponentHostCommunicationApi';
|
||||
import { type WorkerExports } from '@/types/WorkerExports';
|
||||
import { type ThreadWebWorker } from '@quilted/threads';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
type FrontComponentUpdateHostCommunicationApiEffectProps = {
|
||||
thread: ThreadWebWorker<WorkerExports, FrontComponentHostCommunicationApi>;
|
||||
frontComponentHostCommunicationApi: FrontComponentHostCommunicationApi;
|
||||
};
|
||||
|
||||
export const FrontComponentUpdateHostCommunicationApiEffect = ({
|
||||
thread,
|
||||
frontComponentHostCommunicationApi,
|
||||
}: FrontComponentUpdateHostCommunicationApiEffectProps) => {
|
||||
useEffect(() => {
|
||||
Object.assign(thread.exports, frontComponentHostCommunicationApi);
|
||||
}, [thread, frontComponentHostCommunicationApi]);
|
||||
|
||||
return null;
|
||||
};
|
||||
+16
-5
@@ -1,8 +1,8 @@
|
||||
import { ThreadWebWorker, release, retain } from '@quilted/threads';
|
||||
import { RemoteReceiver } from '@remote-dom/core/receivers';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { type ConfirmationModalCaller } from 'twenty-shared/types';
|
||||
import { type CommandConfirmationModalResult } from 'twenty-sdk';
|
||||
import { type ConfirmationModalCaller } from 'twenty-shared/types';
|
||||
import { type FrontComponentHostCommunicationApi } from '../../types/FrontComponentHostCommunicationApi';
|
||||
import { type SdkClientUrls } from '../../types/HostToWorkerRenderContext';
|
||||
import { type WorkerExports } from '../../types/WorkerExports';
|
||||
@@ -17,13 +17,26 @@ type CommandMenuItemConfirmationModalResultBrowserEventDetail = {
|
||||
confirmationResult: CommandConfirmationModalResult;
|
||||
};
|
||||
|
||||
const noopAsync = async () => {};
|
||||
|
||||
const HOST_COMMUNICATION_API_NOOP_INITIALIZATION: FrontComponentHostCommunicationApi =
|
||||
{
|
||||
navigate: noopAsync,
|
||||
requestAccessTokenRefresh: async () => '',
|
||||
openSidePanelPage: noopAsync,
|
||||
openCommandConfirmationModal: noopAsync,
|
||||
unmountFrontComponent: noopAsync,
|
||||
enqueueSnackbar: noopAsync,
|
||||
closeSidePanel: noopAsync,
|
||||
updateProgress: noopAsync,
|
||||
};
|
||||
|
||||
type FrontComponentWorkerEffectProps = {
|
||||
componentUrl: string;
|
||||
applicationAccessToken?: string;
|
||||
apiUrl?: string;
|
||||
sdkClientUrls?: SdkClientUrls;
|
||||
frontComponentId: string;
|
||||
frontComponentHostCommunicationApi: FrontComponentHostCommunicationApi;
|
||||
setReceiver: React.Dispatch<React.SetStateAction<RemoteReceiver | null>>;
|
||||
setThread: React.Dispatch<
|
||||
React.SetStateAction<ThreadWebWorker<
|
||||
@@ -40,7 +53,6 @@ export const FrontComponentWorkerEffect = ({
|
||||
apiUrl,
|
||||
sdkClientUrls,
|
||||
frontComponentId,
|
||||
frontComponentHostCommunicationApi,
|
||||
setReceiver,
|
||||
setThread,
|
||||
setError,
|
||||
@@ -68,7 +80,7 @@ export const FrontComponentWorkerEffect = ({
|
||||
WorkerExports,
|
||||
FrontComponentHostCommunicationApi
|
||||
>(worker, {
|
||||
exports: frontComponentHostCommunicationApi,
|
||||
exports: { ...HOST_COMMUNICATION_API_NOOP_INITIALIZATION },
|
||||
});
|
||||
|
||||
const handleCommandMenuItemConfirmationModalResultBrowserEvent = (
|
||||
@@ -135,7 +147,6 @@ export const FrontComponentWorkerEffect = ({
|
||||
setError,
|
||||
setReceiver,
|
||||
setThread,
|
||||
frontComponentHostCommunicationApi,
|
||||
]);
|
||||
|
||||
return null;
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
"workerDirectory": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ai-sdk/react": "3.0.99",
|
||||
"@apollo/client": "^4.0.0",
|
||||
"@blocknote/mantine": "^0.47.1",
|
||||
"@blocknote/react": "^0.47.1",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -129,6 +129,7 @@ export type Mutation = {
|
||||
deactivateWorkflowVersion: Scalars['Boolean'];
|
||||
deleteWorkflowVersionEdge: WorkflowVersionStepChanges;
|
||||
deleteWorkflowVersionStep: WorkflowVersionStepChanges;
|
||||
dismissMaintenanceModeBanner: Scalars['Boolean'];
|
||||
dismissReconnectAccountBanner: Scalars['Boolean'];
|
||||
duplicateWorkflow: WorkflowVersionDto;
|
||||
duplicateWorkflowVersionStep: WorkflowVersionStepChanges;
|
||||
@@ -249,6 +250,7 @@ export type Query = {
|
||||
getTimelineThreadsFromCompanyId: TimelineThreadsWithTotal;
|
||||
getTimelineThreadsFromOpportunityId: TimelineThreadsWithTotal;
|
||||
getTimelineThreadsFromPersonId: TimelineThreadsWithTotal;
|
||||
isMaintenanceModeBannerDismissed: Scalars['Boolean'];
|
||||
search: SearchResultConnection;
|
||||
};
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Voeg nota by"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Voeg objek by"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "KI Model"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI nie gekonfigureer nie. Stel OPENAI_API_KEY, ANTHROPIC_API_KEY of XAI_
|
||||
msgid "AI request prep"
|
||||
msgstr "Voorbereiding van KI-versoek"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "KI Antwoord Skema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Is jy seker jy wil hierdie verwante {relationObjectMetadataNameSingular}
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Is jy seker jy wil hierdie vaardigheid verwyder? Hierdie aksie kan nie ongedaan gemaak word nie."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Is jy seker jy wil hierdie rekords vernietig? Hulle sal nie meer herstelbaar wees nie."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Is jy seker jy wil hierdie rekord vernietig? Dit kan nie meer herstel word nie."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Is jy seker jy wil hierdie rekords herstel?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Is jy seker jy wil hierdie rekord herstel?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Besluit watter Subadresvelde jy wil vertoon"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Verwyder webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Verwyder widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beskryf wat jy wil hê die KI moet doen..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "vernietig"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Vernietig {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Vernietig rekords"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Aktiveer omseil opsies"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Aktiveer model-spesifieke funksies"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Einddatum"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Kon nie werkruimte-instruksies stoor nie"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Veld verwyder"
|
||||
msgid "Field name"
|
||||
msgstr "Veldnaam"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Veldnaam"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "indien"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Inligting"
|
||||
msgid "Input"
|
||||
msgstr "Invoer"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installeer..."
|
||||
msgid "Instances"
|
||||
msgstr "Instansies"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruksies"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Instruksie-redigeerder"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruksies vir KI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Uitlegte"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Kom meer te wete"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Lyn grafiek"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Skakel"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "lus"
|
||||
msgid "Mail Account"
|
||||
msgstr "Posrekening"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Toestemming om e-poskonsepte op te stel ontbreek."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missie voltooi!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Onderbreking"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Onderbreking"
|
||||
msgid "Output"
|
||||
msgstr "Uitset"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Uitvoerveld {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Permanent verwydering. Voer die aantal dae in."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Vernietig rekord permanent"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Vernietig rekords permanent"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Planwisseling is gekanselleer."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "herstel"
|
||||
msgid "Restore"
|
||||
msgstr "Herstel"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Herstel rekord"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Herstel rekords"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Hervat"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Probeer weer"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Skep die raamwerk vir 'n nuwe toepassing en gebruik dan die CLI om te on
|
||||
msgid "Schedule"
|
||||
msgstr "Skedule"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Kies kolom..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Kies datum en tyd"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Meld aan of Skep 'n rekening"
|
||||
msgid "Sign up"
|
||||
msgstr "Registreer"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Begin 'n nuwe ondernemingsintekening om ondernemingsfunksies weer te akt
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Begin 'n nuwe ondernemingsintekening."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-velde"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Soek"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Twee-faktor magtiging-setup suksesvol voltooi!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Ongenoemde"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Naamlose {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Veranderlike {variableKey} opgedateer"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Veranderlike suksesvol verwyder."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Probeer asseblief oor 'n paar sekondes weer, jammer."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Web Soek"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "أضف ملاحظة"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "إضافة كائن"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "نموذج الذكاء الاصطناعي"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "لم يتم تهيئة الذكاء الاصطناعي. عيّن OPENAI_
|
||||
msgid "AI request prep"
|
||||
msgstr "تحضير طلب الذكاء الاصطناعي"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "نموذج استجابة الذكاء الاصطناعي"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا {relationObjectMeta
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "هل أنت متأكد أنك تريد حذف هذه المهارة؟ لا يمكن التراجع عن هذا الإجراء."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "هل أنت متأكد أنك تريد إتلاف هذه السجلات؟ لن تكون قابلة للاسترداد بعد الآن."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "هل أنت متأكد أنك تريد تدمير هذا السجل؟ لن يمكن استرجاعه بعد الآن."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "هل أنت متأكد أنك تريد استعادة هذه السجلات؟"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "هل أنت متأكد أنك تريد استعادة هذا السجل؟"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "قرر أي حقول العناوين الفرعية تريد عرضها"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "حذف Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "حذف الأداة"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "صف ما تريد أن يقوم به الذكاء الاصطناعي...
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "تدمير"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "إتلاف {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "إتلاف السجلات"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "تمكين خيارات التجاوز"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "تمكين الميزات الخاصة بالنموذج"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "تاريخ الانتهاء"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "تعذّر حفظ تعليمات مساحة العمل"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "تم حذف الحقل"
|
||||
msgid "Field name"
|
||||
msgstr "اسم الحقل"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "اسم الحقل"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "إذا"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "معلومات"
|
||||
msgid "Input"
|
||||
msgstr "إدخال"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "جاري التثبيت..."
|
||||
msgid "Instances"
|
||||
msgstr "النماذج"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "إرشادات"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "محرر الإرشادات"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "تعليمات إلى الذكاء الاصطناعي"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "تخطيطات"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "معرفة المزيد"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "الرسم البياني الخطي"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "رابط"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "حلقة"
|
||||
msgid "Mail Account"
|
||||
msgstr "حساب البريد"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "إذن صياغة رسائل البريد الإلكتروني غير م
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "تم إنجاز المهمة!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "انقطاع"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "انقطاع"
|
||||
msgid "Output"
|
||||
msgstr "المخرجات"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "حقل المخرجات {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "الحذف الدائم. أدخل عدد الأيام."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "اتلاف السجل نهائيًا"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "إتلاف السجلات نهائيًا"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "الخطة"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "تم إلغاء تبديل الخطة."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "استعادة"
|
||||
msgid "Restore"
|
||||
msgstr "استعادة"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "استعادة السجل"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "استعادة السجلات"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "استئناف"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "إعادة المحاولة"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "أنشئ قالبًا لتطبيق جديد، ثم استخدم CLI لل
|
||||
msgid "Schedule"
|
||||
msgstr "الجدول الزمني"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "اختر العمود..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "اختر التاريخ والوقت"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "تسجيل الدخول أو إنشاء حساب"
|
||||
msgid "Sign up"
|
||||
msgstr "إنشاء حساب"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "ابدأ اشتراك Enterprise جديدًا لإعادة تفعيل م
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "ابدأ اشتراك Enterprise جديدًا."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "حقول Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "تويتر/X بحث"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "تم إكمال إعداد المصادقة الثنائية بنجاح!
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "بدون عنوان"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} بدون عنوان"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "تم تحديث المتغيّر {variableKey}"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "تم حذف المتغير بنجاح."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15410,7 +15470,7 @@ msgid ""
|
||||
msgstr "نحن في انتظار تأكيد من مزود الدفع لدينا (Stripe).\\nيرجى المحاولة مرة أخرى خلال بضع ثوانٍ، نأسف."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "بحث الويب"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Afegeix una nota"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Afegeix objecte"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Model IA"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "La IA no està configurada. Estableix OPENAI_API_KEY, ANTHROPIC_API_KEY
|
||||
msgid "AI request prep"
|
||||
msgstr "Preparació de la sol·licitud d'IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Esquema de resposta IA"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Segur que vols suprimir aquest {relationObjectMetadataNameSingular} rela
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Segur que vols suprimir aquesta habilitat? Aquesta acció no es pot desfer."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Esteu segur que voleu destruir aquests registres? Ja no seran recuperables."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Esteu segur que voleu destruir aquest registre? No es podrà recuperar més endavant."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Esteu segur que voleu restaurar aquests registres?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Esteu segur que voleu restaurar aquest registre?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decideix quins camps de Sub-adreça vols mostrar"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Esborrar webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Elimina el giny"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Descriviu què voleu que faci la IA..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "destruir"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Destruir {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Destruir registres"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Habilita opcions per a saltar"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Activar funcionalitats específiques del model"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data de Finalització"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "No s'han pogut desar les instruccions de l'espai de treball"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Camp eliminat"
|
||||
msgid "Field name"
|
||||
msgstr "Nom del camp"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nom del camp"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "si"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informació"
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instal·lant..."
|
||||
msgid "Instances"
|
||||
msgstr "Instàncies"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruccions"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor d'instruccions"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruccions per a la IA"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Dissenys"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Més informació"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Gràfic de línies"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Enllaç"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "bucle"
|
||||
msgid "Mail Account"
|
||||
msgstr "Compte de correu"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Falta el permís per redactar esborranys de correu electrònic."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missió acomplerta!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Interrupció"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Interrupció"
|
||||
msgid "Output"
|
||||
msgstr "Sortida"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Camp de sortida {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Eliminació permanent. Introduïu el nombre de dies."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Destruir permanentment el registre"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Destruir permanentment registres"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Pla"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "El canvi de pla ha estat cancel·lat."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaura"
|
||||
msgid "Restore"
|
||||
msgstr "Restaura"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaura el Registre"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaura Registres"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Reprendre"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Reintentar"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Genera l'esquelet d'una aplicació nova, després utilitza la CLI per de
|
||||
msgid "Schedule"
|
||||
msgstr "Horari"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Selecciona columna..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Selecciona data i hora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Inicia sessió o crea un compte"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrar-se"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Inicieu una nova subscripció Enterprise per tornar a habilitar les func
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Inicieu una nova subscripció Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Camps de Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Cerca de Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Configuració de l'autenticació de dos factors completada amb èxit!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Sense títol"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} sense títol"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variable {variableKey} actualitzada"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variable suprimida amb èxit."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Torna-ho a provar d'aquí a uns segons, si us plau. Disculpa."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Cerca web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Přidat poznámku"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Přidat objekt"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI Model"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI není nakonfigurována. V prostředí nastavte hodnotu OPENAI_API_KEY
|
||||
msgid "AI request prep"
|
||||
msgstr "Příprava požadavku AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schéma odpovědi AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Opravdu chcete smazat tento související objekt {relationObjectMetadata
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Opravdu chcete smazat tuto dovednost? Tuto akci nelze vrátit zpět."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Jste si jistí, že chcete zničit tyto záznamy? Nebude možné je obnovit."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Opravdu chcete zničit tento záznam? Nebude možné jej obnovit."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Opravdu chcete obnovit tyto záznamy?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Opravdu chcete obnovit tento záznam?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Rozhodněte se, která pole podadresy chcete zobrazit"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Smazat Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Odstranit widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Popište, co chcete, aby AI dělalo..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "zničit"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Zničit {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Zničit záznamy"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Povolit možnosti obejití"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Povolit funkce specifické pro model"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Datum ukončení"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Nepodařilo se uložit pokyny pracovního prostoru"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Pole smazáno"
|
||||
msgid "Field name"
|
||||
msgstr "Název pole"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Název pole"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "pokud"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informace"
|
||||
msgid "Input"
|
||||
msgstr "Vstup"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instaluje se..."
|
||||
msgid "Instances"
|
||||
msgstr "Instance"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Pokyny"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor pokynů"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Pokyny pro AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Rozvržení"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Další informace"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Liniový graf"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Odkaz"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "smyčka"
|
||||
msgid "Mail Account"
|
||||
msgstr "E-mailový účet"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Chybí oprávnění pro vytváření konceptů e-mailů."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Mise splněna!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Výpadek"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Výpadek"
|
||||
msgid "Output"
|
||||
msgstr "Výstup"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Výstupní pole {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Trvalé smazání. Zadejte počet dnů."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Trvale zničit záznam"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Trvale zničit záznamy"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plán"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Přepínání plánu bylo zrušeno."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "obnovit"
|
||||
msgid "Restore"
|
||||
msgstr "Obnovit"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Obnovit záznam"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Obnovit záznamy"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Pokračovat"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Opakovat"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Vytvořte kostru nové aplikace a poté pomocí CLI vyvíjejte, publikuj
|
||||
msgid "Schedule"
|
||||
msgstr "Plán"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Vybrat sloupec..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Vyberte datum a čas"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Přihlásit se nebo vytvořit účet"
|
||||
msgid "Sign up"
|
||||
msgstr "Zaregistrovat se"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Zahajte nové předplatné Enterprise a znovu povolte funkce Enterprise.
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Zahajte nové předplatné Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Pole Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Hledat"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Nastavení dvoufaktorového ověřování bylo úspěšně dokončeno!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Nepojmenovaný"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Nepojmenovaný {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Proměnná {variableKey} byla aktualizována"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Proměnná byla úspěšně odstraněna."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Zkuste to prosím za pár sekund znovu."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Hledání na webu"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Tilføj note"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Tilføj objekt"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI Model"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI ikke konfigureret. Angiv OPENAI_API_KEY, ANTHROPIC_API_KEY eller XAI_
|
||||
msgid "AI request prep"
|
||||
msgstr "Forberedelse af AI-anmodning"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI Svarskema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Er du sikker på, at du vil slette denne relaterede {relationObjectMetad
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Er du sikker på, at du vil slette denne færdighed? Denne handling kan ikke fortrydes."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Er du sikker på, at du vil ødelægge disse optegnelser? De kan ikke gendannes længere."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Er du sikker på, at du vil ødelægge denne post? Den kan ikke gendannes længere."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Er du sikker på, at du vil gendanne disse poster?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Er du sikker på, at du vil gendanne denne post?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Vælg hvilke underadressefelter du vil vise"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Slet webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Slet widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beskriv, hvad du vil have AI'en til at gøre..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "ødelæg"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Ødelæg {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Ødelæg records"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Aktiver forbigående muligheder"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Aktiver model-specifikke funktioner"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Slutdato"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Kunne ikke gemme instruktioner for arbejdsområdet"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Felt slettet"
|
||||
msgid "Field name"
|
||||
msgstr "Felt navn"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Feltnavn"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "hvis"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Info"
|
||||
msgid "Input"
|
||||
msgstr "Input"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installerer..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanser"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruktioner"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Instruktionseditor"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruktioner til AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Layouts"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Få mere at vide"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Linje Diagram"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "loop"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mailkonto"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Manglende tilladelse til at oprette e-mail-kladder."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Mission fuldført!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Nedetid"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Nedetid"
|
||||
msgid "Output"
|
||||
msgstr "Output"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Outputfelt {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Permanent sletning. Indtast antal dage."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Permanent slet post"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Permanent slet poster"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Planskift er blevet annulleret."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "gendan"
|
||||
msgid "Restore"
|
||||
msgstr "Gendan"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Gendan post"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Gendan poster"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Genoptag"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Prøv igen"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Generér et skelet til en ny app, og brug derefter CLI til at udvikle, u
|
||||
msgid "Schedule"
|
||||
msgstr "Tidsplan"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Vælg kolonne..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Vælg dato og tidspunkt"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Log ind eller Opret en konto"
|
||||
msgid "Sign up"
|
||||
msgstr "Tilmeld dig"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Start et nyt Enterprise-abonnement for at aktivere Enterprise-funktioner
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Start et nyt Enterprise-abonnement."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-felter"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Søg"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "Opsætning af to-faktor godkendelse blev gennemført med succes!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Uden titel"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Unavngivet {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr "Variablen {variableKey} opdateret"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabel slettet med succes."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Prøv igen om et øjeblik, beklager."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Websøgning"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Notiz hinzufügen"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Objekt hinzufügen"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "KI-Modell"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "KI nicht konfiguriert. Setzen Sie OPENAI_API_KEY, ANTHROPIC_API_KEY oder
|
||||
msgid "AI request prep"
|
||||
msgstr "Vorbereitung der KI-Anfrage"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Scheman der KI-Antwort"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Sind Sie sicher, dass Sie dieses zugehörige {relationObjectMetadataName
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Sind Sie sicher, dass Sie diesen Skill löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Sind Sie sicher, dass Sie diese Datensätze zerstören möchten? Sie können nicht wiederhergestellt werden."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Sind Sie sicher, dass Sie diesen Datensatz zerstören möchten? Er kann nicht wiederhergestellt werden."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Sind Sie sicher, dass Sie diese Datensätze wiederherstellen möchten?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Sind Sie sicher, dass Sie diesen Datensatz wiederherstellen möchten?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Entscheiden Sie, welche Unteradressfelder Sie anzeigen möchten"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Webhook löschen"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Widget löschen"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beschreiben Sie, was die KI tun soll..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "zerstören"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Zerstören {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Datensätze zerstören"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Umgehungsoptionen aktivieren"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Enable model-specific features"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Enddatum"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr "Fehler beim Speichern der Rollenberechtigungen: {errorMessage}"
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Fehler beim Speichern der Arbeitsbereichsanweisungen"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Feld gelöscht"
|
||||
msgid "Field name"
|
||||
msgstr "Feldname"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Feldname"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "wenn"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informationen"
|
||||
msgid "Input"
|
||||
msgstr "Eingabe"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Wird installiert..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanzen"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Anweisungen"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor für Anweisungen"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Anweisungen für die KI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Layouts"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Mehr erfahren"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Liniendiagramm"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "Schleife"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mail-Konto"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Berechtigung zum Erstellen von E-Mail-Entwürfen fehlt."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Mission erfüllt!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Ausfall"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Ausfall"
|
||||
msgid "Output"
|
||||
msgstr "Ausgabe"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Ausgabefeld {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Dauerhafte Löschung. Geben Sie die Anzahl der Tage ein."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Datensatz dauerhaft zerstören"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Datensätze dauerhaft zerstören"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Der Tarifwechsel wurde abgebrochen."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "wiederherstellen"
|
||||
msgid "Restore"
|
||||
msgstr "Wiederherstellen"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Datensatz wiederherstellen"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Datensätze wiederherstellen"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Fortsetzen"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Erneut versuchen"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Ein neues App-Gerüst erstellen und anschließend die CLI zum Entwickeln
|
||||
msgid "Schedule"
|
||||
msgstr "Zeitplan"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Spalte auswählen..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Datum und Uhrzeit auswählen"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Anmelden oder ein Konto erstellen"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrieren"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Starten Sie ein neues Enterprise-Abonnement, um die Enterprise-Funktione
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Starten Sie ein neues Enterprise-Abonnement."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-Felder"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Suche"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Einrichtung der Zwei-Faktor-Authentifizierung erfolgreich abgeschlossen!
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Unbenannt"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Unbenanntes {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variable {variableKey} aktualisiert"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variable erfolgreich gelöscht."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Bitte versuchen Sie es in ein paar Sekunden erneut, Entschuldigung."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Websuche"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Προσθήκη σημείωσης"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Προσθήκη αντικειμένου"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Μοντέλο AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "Το AI δεν έχει ρυθμιστεί. Ορίστε το OPENAI_API
|
||||
msgid "AI request prep"
|
||||
msgstr "Προετοιμασία αιτήματος AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Σχήμα Απόκρισης AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη δεξιότητα; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Είστε βέβαιοι ότι θέλετε να καταστρέψετε αυτές τις εγγραφές; Δεν θα είναι πλέον ανακτήσιμες."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Είστε σίγουροι ότι θέλετε να καταστρέψετε αυτή την εγγραφή; Δεν μπορεί να ανακτηθεί πλέον."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Είστε σίγουροι ότι θέλετε να επαναφέρετε αυτές τις εγγραφές;"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Είστε σίγουροι ότι θέλετε να επαναφέρετε αυτή την εγγραφή;"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Αποφασίστε ποια πεδία Υπο-διευθύνσεων θέλετε να εμφανίζονται"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Διαγραφή webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Διαγραφή γραφικού στοιχείου"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Περιγράψτε τι θέλετε να κάνει το AI..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "καταστροφή"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Καταστροφή {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Καταστροφή εγγραφών"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Ενεργοποίηση επιλογών παράκαμψης"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Ενεργοποιήστε τις λειτουργίες συγκεκριμένου μοντέλου"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Ημερομηνία Λήξης"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Αποτυχία αποθήκευσης των οδηγιών του χώρου εργασίας"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Το πεδίο διαγράφηκε"
|
||||
msgid "Field name"
|
||||
msgstr "Όνομα πεδίου"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Όνομα Πεδίου"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "εάν"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Πληροφορίες"
|
||||
msgid "Input"
|
||||
msgstr "Εισαγωγή"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Γίνεται εγκατάσταση..."
|
||||
msgid "Instances"
|
||||
msgstr "Παραδείγματα"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Οδηγίες"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Επεξεργαστής οδηγιών"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Οδηγίες για το AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Διατάξεις"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Μάθετε περισσότερα"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Διάγραμμα γραμμής"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Σύνδεσμος"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "βρόχο"
|
||||
msgid "Mail Account"
|
||||
msgstr "Λογαριασμός Ηλεκτρονικού Ταχυδρομείου"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Λείπει η άδεια για σύνταξη προσχεδίων em
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Αποστολή ολοκληρώθηκε!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Διακοπή λειτουργίας"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Διακοπή λειτουργίας"
|
||||
msgid "Output"
|
||||
msgstr "Έξοδος"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Πεδίο Εξόδου {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Μόνιμη διαγραφή. Εισάγετε τον αριθμό ημερών."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Καταστροφή της εγγραφής οριστικά"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Καταστρέψτε μόνιμα τις εγγραφές"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Σχέδιο"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Η αλλαγή προγράμματος ακυρώθηκε."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "επαναφορά"
|
||||
msgid "Restore"
|
||||
msgstr "Επαναφορά"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Επαναφορά εγγραφής"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Επαναφορά εγγραφών"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Συνέχιση"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Δοκιμή ξανά"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Δημιουργήστε τον σκελετό μιας νέας εφα
|
||||
msgid "Schedule"
|
||||
msgstr "Πρόγραμμα"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Επιλέξτε στήλη..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Επιλέξτε ημερομηνία & ώρα"
|
||||
|
||||
@@ -12897,6 +12936,11 @@ msgstr "Σύνδεση ή δημιουργία λογαριασμού"
|
||||
msgid "Sign up"
|
||||
msgstr "Εγγραφή"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13211,6 +13255,11 @@ msgstr "Ξεκινήστε μια νέα συνδρομή Enterprise για να
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Ξεκινήστε μια νέα συνδρομή Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14442,7 +14491,7 @@ msgid "Twenty fields"
|
||||
msgstr "Πεδία Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Αναζήτηση Twitter/X"
|
||||
|
||||
@@ -14477,6 +14526,7 @@ msgstr "Η εγκατάσταση δύο παραγοντικής ταυτοπο
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14700,6 +14750,11 @@ msgstr "Άτιτλος"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Χωρίς τίτλο {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15088,6 +15143,11 @@ msgstr "Η μεταβλητή {variableKey} ενημερώθηκε"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Η μεταβλητή διαγράφηκε με επιτυχία."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15416,7 +15476,7 @@ msgstr ""
|
||||
"Παρακαλούμε δοκιμάστε ξανά σε λίγα δευτερόλεπτα, συγγνώμη."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Αναζήτηση στον Ιστό"
|
||||
|
||||
|
||||
@@ -1007,6 +1007,7 @@ msgstr "Add note"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Add object"
|
||||
|
||||
@@ -1347,7 +1348,6 @@ msgstr "AI consumption over time."
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI Model"
|
||||
|
||||
@@ -1361,11 +1361,6 @@ msgstr "AI not configured. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or XAI_API_KEY
|
||||
msgid "AI request prep"
|
||||
msgstr "AI request prep"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI Response Schema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2008,25 +2003,29 @@ msgstr "Are you sure you want to delete this related {relationObjectMetadataName
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Are you sure you want to restore these records?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr "Are you sure you want to restore these {0}?"
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Are you sure you want to restore this record?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr "Are you sure you want to restore this {0}?"
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4426,7 +4425,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decide which Sub-address fields you want to display"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr "default"
|
||||
|
||||
@@ -4720,6 +4719,7 @@ msgstr "Delete webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Delete widget"
|
||||
|
||||
@@ -4776,7 +4776,6 @@ msgstr "Describe what you want the AI to do..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4796,11 +4795,6 @@ msgstr "destroy"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Destroy {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Destroy Records"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5471,15 +5465,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Enable bypass options"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Enable model-specific features"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr "End date"
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "End Date"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr "End date must be after start date."
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6405,6 +6409,11 @@ msgstr "Failed to save role permissions: {errorMessage}"
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Failed to save workspace instructions"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr "Failed to set maintenance mode."
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6567,11 +6576,6 @@ msgstr "Field deleted"
|
||||
msgid "Field name"
|
||||
msgstr "Field name"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Field Name"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7409,6 +7413,11 @@ msgstr "if"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr "If disabled, use advanced search filters to find these records"
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr "If there's no link, no button will appear."
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7625,6 +7634,11 @@ msgstr "Infos"
|
||||
msgid "Input"
|
||||
msgstr "Input"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr "Input (Prompt)"
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7705,6 +7719,11 @@ msgstr "Installing..."
|
||||
msgid "Instances"
|
||||
msgstr "Instances"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr "Instruction for AI"
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7715,11 +7734,6 @@ msgstr "Instructions"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Instructions Editor"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instructions for AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8280,6 +8294,7 @@ msgstr "Layouts"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Learn more"
|
||||
|
||||
@@ -8390,6 +8405,7 @@ msgstr "Line Chart"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8640,11 +8656,26 @@ msgstr "loop"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mail Account"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr "Maintenance"
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr "Maintenance mode"
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr "Make HTTP requests to external APIs"
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr "Manage"
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8955,6 +8986,11 @@ msgstr "Missing email draft permission."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Mission accomplished!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10531,6 +10567,7 @@ msgstr "Outage"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10541,11 +10578,6 @@ msgstr "Outage"
|
||||
msgid "Output"
|
||||
msgstr "Output"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Output Field {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10763,16 +10795,15 @@ msgstr "Perform administrative actions or permanently delete this user"
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Permanent deletion. Enter the number of days."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Permanently Destroy Record"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr "Permanently Destroy"
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Permanently Destroy Records"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr "Permanently Destroy {objectLabel}"
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10873,6 +10904,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Plan switching has been cancelled."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr "Planned for {formattedStartDate}"
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11779,17 +11816,10 @@ msgstr "restore"
|
||||
msgid "Restore"
|
||||
msgstr "Restore"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restore Record"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restore Records"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr "Restore {objectLabel}"
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11815,7 +11845,6 @@ msgstr "Resume"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Retry"
|
||||
|
||||
@@ -12033,6 +12062,16 @@ msgstr "Scaffold a new app, then use the CLI to develop, publish, and distribute
|
||||
msgid "Schedule"
|
||||
msgstr "Schedule"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr "Schedule a maintenance window and notify all users"
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12497,7 +12536,7 @@ msgid "Select column..."
|
||||
msgstr "Select column..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Select date & time"
|
||||
|
||||
@@ -12890,6 +12929,11 @@ msgstr "Sign in or Create an account"
|
||||
msgid "Sign up"
|
||||
msgstr "Sign up"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr "Sign-up is temporarily unavailable during maintenance."
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13204,6 +13248,11 @@ msgstr "Start a new enterprise subscription to re-enable enterprise features."
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Start a new enterprise subscription."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr "Start date"
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14435,7 +14484,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty fields"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Search"
|
||||
|
||||
@@ -14470,6 +14519,7 @@ msgstr "Two-factor authentication setup completed successfully!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14693,6 +14743,11 @@ msgstr "Untitled"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Untitled {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr "Untitled field"
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15081,6 +15136,11 @@ msgstr "Variable {variableKey} updated"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variable deleted successfully."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr "Variable Name"
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15409,7 +15469,7 @@ msgstr ""
|
||||
"Please try again in a few seconds, sorry."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Web Search"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Agregar nota"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Añadir objeto"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Modelo de IA"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "IA no configurada. Establece OPENAI_API_KEY, ANTHROPIC_API_KEY o XAI_API
|
||||
msgid "AI request prep"
|
||||
msgstr "Preparación de la solicitud de IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Esquema de respuesta de IA"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "¿Estás seguro de que quieres eliminar este {relationObjectMetadataName
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "¿Está seguro de que desea eliminar esta habilidad? Esta acción no se puede deshacer."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "¿Está seguro de que desea destruir estos registros? Ya no serán recuperables."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "¿Está seguro de que desea destruir este registro? Ya no se podrá recuperar."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "¿Está seguro de que desea restaurar estos registros?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "¿Está seguro de que desea restaurar este registro?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decide qué campos de subdirección deseas mostrar"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Eliminar webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Eliminar widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Describa lo que quiere que la IA haga..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "destruir"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Destruir {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Destruir registros"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Habilitar opciones de omisión"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Habilitar funciones específicas del modelo"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Fecha de finalización"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr "Error al guardar los permisos de rol: {errorMessage}"
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Error al guardar las instrucciones del espacio de trabajo"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Campo eliminado"
|
||||
msgid "Field name"
|
||||
msgstr "Nombre del campo"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nombre del campo"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "si"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Información"
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instalando..."
|
||||
msgid "Instances"
|
||||
msgstr "Instancias"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instrucciones"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor de instrucciones"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instrucciones para la IA"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Diseños"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Más información"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Gráfico de líneas"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Enlace"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "bucle"
|
||||
msgid "Mail Account"
|
||||
msgstr "Cuenta de Correo"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Falta el permiso para crear borradores de correos electrónicos."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "¡Misión cumplida!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Interrupción"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Interrupción"
|
||||
msgid "Output"
|
||||
msgstr "Salida"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Campo de salida {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Eliminación permanente. Introduzca el número de días."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Destruir registro permanentemente"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Destruir registros de forma permanente"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "El cambio de plan ha sido cancelado."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaurar"
|
||||
msgid "Restore"
|
||||
msgstr "Restaurar"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaurar registro"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaurar registros"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Resumen"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Reintentar"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Crea la estructura inicial de una nueva aplicación y luego usa la CLI p
|
||||
msgid "Schedule"
|
||||
msgstr "Programación"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Seleccionar columna..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Seleccione fecha y hora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Inicia sesión o crea una cuenta"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrarse"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Inicia una nueva suscripción Enterprise para volver a habilitar las fun
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Inicia una nueva suscripción Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Campos de Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Buscar"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "¡La configuración de la autenticación de dos factores se completó co
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Sin título"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} sin título"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr "Variable {variableKey} actualizada"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variable eliminada con éxito."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Por favor, inténtalo de nuevo en unos segundos, disculpa."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Buscar en la Web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Lisää muistiinpano"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Lisää objekti"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI-malli"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI ei ole määritetty. Aseta ympäristöösi OPENAI_API_KEY, ANTHROPIC_
|
||||
msgid "AI request prep"
|
||||
msgstr "AI-pyynnön valmistelu"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI-vastauskaavio"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Haluatko varmasti poistaa tämän siihen liittyvän kohteen {relationObj
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Haluatko varmasti poistaa tämän taidon? Tätä toimintoa ei voi perua."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Oletko varma, että haluat tuhota nämä tietueet? Niitä ei voida enää palauttaa."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Oletko varma, että haluat tuhota tämän tietueen? Sitä ei voi enää palauttaa."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Oletko varma, että haluat palauttaa nämä tietueet?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Oletko varma, että haluat palauttaa tämän tietueen?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Päätä, mitkä alikentät haluat näyttää"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Poista Webhooks"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Poista pienoisohjelma"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Kuvaile mitä haluat, että tekoäly tekee..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "tuhota"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Tuhoa {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Tuhota tietueet"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Ota ohitusvaihtoehdot käyttöön"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Ota käyttöön mallikohtaiset ominaisuudet"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Päättymispäivä"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Työtilan ohjeiden tallentaminen epäonnistui"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Kenttä poistettu"
|
||||
msgid "Field name"
|
||||
msgstr "Kentän nimi"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Kentän nimi"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "jos"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Tiedot"
|
||||
msgid "Input"
|
||||
msgstr "Syöttö"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Asennetaan..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanssit"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Ohjeet"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Ohjeeditori"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Ohjeet tekoälylle"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Ulkoasut"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Lue lisää"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Viivakaavio"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Linkki"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "silmukka"
|
||||
msgid "Mail Account"
|
||||
msgstr "Sähköpostitili"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Käyttöoikeus sähköpostiluonnosten laatimiseen puuttuu."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Tehtävä suoritettu!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Katkos"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Katkos"
|
||||
msgid "Output"
|
||||
msgstr "Tulos"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Tuloskenttä {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Pysyvä poistaminen. Anna päivien määrä."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Tuhota tiedosto pysyvästi"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Tuhota pysyvästi tietueet"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Suunnitelma"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Suunnitelman vaihto peruutettu."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "palauta"
|
||||
msgid "Restore"
|
||||
msgstr "Palauta"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Palauta tietue"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Palauta tietueet"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Jatka"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Yritä uudelleen"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Luo uuden sovelluksen perusrakenne ja käytä sitten CLI:tä kehittämis
|
||||
msgid "Schedule"
|
||||
msgstr "Aikataulu"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Valitse sarake..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Valitse päivämäärä ja aika"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Kirjaudu sisään tai luo tili"
|
||||
msgid "Sign up"
|
||||
msgstr "Rekisteröidy"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Aloita uusi Enterprise-tilaus ottaaksesi Enterprise-ominaisuudet uudelle
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Aloita uusi Enterprise-tilaus."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-kentät"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Haku"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Kaksivaiheisen todennuksen asennus on valmis!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Nimetön"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Nimetön {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Muuttuja {variableKey} päivitetty"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Muuttuja poistettu onnistuneesti."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Yritä hetken kuluttua uudelleen."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Verkkohaku"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Ajouter une note"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Ajouter un objet"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Modèle IA"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "IA non configurée. Définissez OPENAI_API_KEY, ANTHROPIC_API_KEY ou XAI
|
||||
msgid "AI request prep"
|
||||
msgstr "Préparation de la requête IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schéma de réponse IA"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Voulez-vous vraiment supprimer ce {relationObjectMetadataNameSingular} a
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Voulez-vous vraiment supprimer cette compétence ? Cette action ne peut pas être annulée."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Êtes-vous sûr de vouloir détruire ces enregistrements ? Ils ne seront plus récupérables."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Êtes-vous sûr de vouloir détruire cet enregistrement ? Il ne pourra pas être récupéré."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Êtes-vous sûr de vouloir restaurer ces enregistrements ?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Êtes-vous sûr de vouloir restaurer cet enregistrement ?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Décidez quels champs de sous-adresse vous souhaitez afficher"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Supprimer le webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Supprimer le widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Décrivez ce que vous voulez que l'IA fasse..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "détruire"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Détruire {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Détruire les enregistrements"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Activer les options de contournement"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Activer les fonctionnalités spécifiques au modèle"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Date de fin"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Impossible d'enregistrer les instructions de l'espace de travail"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Champ supprimé"
|
||||
msgid "Field name"
|
||||
msgstr "Nom du champ"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nom du champ"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "si"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informations"
|
||||
msgid "Input"
|
||||
msgstr "Entrée "
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installation en cours..."
|
||||
msgid "Instances"
|
||||
msgstr "Instances"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instructions"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Éditeur d'instructions"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instructions pour l'IA"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Dispositions"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "En savoir plus"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Lien"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "boucle"
|
||||
msgid "Mail Account"
|
||||
msgstr "Compte de messagerie"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Autorisation manquante pour rédiger des brouillons d'e-mails."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Mission accomplie !"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Panne"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Panne"
|
||||
msgid "Output"
|
||||
msgstr "Sortie"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Champ de sortie {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Suppression permanente. Entrez le nombre de jours."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Détruire définitivement l'enregistrement"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Détruire définitivement les enregistrements"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Le changement de plan a été annulé."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaurer"
|
||||
msgid "Restore"
|
||||
msgstr "Restaurer"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaurer l'enregistrement"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaurer les enregistrements"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Reprendre"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Recommencer"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Générez le squelette d'une nouvelle application, puis utilisez la CLI
|
||||
msgid "Schedule"
|
||||
msgstr "Planning"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Sélectionnez la colonne..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Sélectionnez la date et l'heure"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Se connecter ou Créer un compte"
|
||||
msgid "Sign up"
|
||||
msgstr "S'inscrire"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Démarrez un nouvel abonnement Enterprise pour réactiver les fonctionna
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Démarrez un nouvel abonnement Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Champs Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Recherche Twitter/X"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "Configuration de l'authentification à deux facteurs terminée avec succ
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Sans titre"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} sans titre"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr ""
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variable supprimée avec succès."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Veuillez réessayer dans quelques secondes, désolé."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Recherche Web"
|
||||
|
||||
|
||||
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
@@ -1012,6 +1012,7 @@ msgstr "הוסף הערה"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "הוסף אובייקט"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "מודל AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "ה-AI אינו מוגדר. הגדר את OPENAI_API_KEY, ANTHROPIC_API_K
|
||||
msgid "AI request prep"
|
||||
msgstr "הכנת בקשת AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "סכמת תגובת AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "האם אתה בטוח שברצונך למחוק את ה{relationObjectM
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "האם אתה בטוח שברצונך למחוק את המיומנות הזו? פעולה זו אינה ניתנת לביטול."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "האם אתה בטוח שברצונך להשמיד את הרשומות הללו? רשומות אלו לא תהיינה ניתנות לשחזור."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "האם אתה בטוח שברצונך להשמיד את הרשומה הזו? היא לא תהיה ניתנת לשחזור עוד."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "האם אתה בטוח שברצונך לשחזר את הרשומות הללו?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "האם אתה בטוח שברצונך לשחזר את הרשומה הזו?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "החליטו אילו שדות כתובת משנה אתם רוצים להציג"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "מחק Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "מחק וידג'ט"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "תאר מה אתה רוצה שהבינה המלאכותית תעשה..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "הרוס"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "השמדת {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "השמד רשומות"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "הפעל אפשרויות עקיפה"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "הפעל תכונות ספציפיות לדגם"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "תאריך סיום"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "אירע כשל בשמירת הנחיות סביבת העבודה"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "השדה נמחק"
|
||||
msgid "Field name"
|
||||
msgstr "שם שדה"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "שם שדה"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "אם"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "מידע"
|
||||
msgid "Input"
|
||||
msgstr "קלט"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "מתקין..."
|
||||
msgid "Instances"
|
||||
msgstr "מופעים"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "הוראות"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "עורך ההוראות"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "הוראות לבינה מלאכותית"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "פריסות"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "למידע נוסף"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "תרשים קו"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "קישור"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "לולאה"
|
||||
msgid "Mail Account"
|
||||
msgstr "חשבון דואר"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "אין הרשאה ליצירת טיוטות אימייל."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "המשימה הושלמה!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "השבתה"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "השבתה"
|
||||
msgid "Output"
|
||||
msgstr "פלט"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "שדה פלט {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "מחיקה קבועה. הזן את מספר הימים."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "השמד לצמיתות את הרשומה"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "השמד לצמיתות את הרשומות"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "תוכנית"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "החלפת התוכנית בוטלה."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "שחזור"
|
||||
msgid "Restore"
|
||||
msgstr "שחזור"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "שחזור רשומה"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "שחזור רשומות"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "חדש"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "נסה שוב"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "צור שלד לאפליקציה חדשה, ולאחר מכן השתמש
|
||||
msgid "Schedule"
|
||||
msgstr "לוח זמנים"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "בחר עמודה..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "בחר תאריך ושעה"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "היכנס או צור חשבון"
|
||||
msgid "Sign up"
|
||||
msgstr "\\"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "התחל מנוי Enterprise חדש כדי להפעיל מחדש את ת
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "התחל מנוי Enterprise חדש."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "שדות Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "חיפוש Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "הגדרת האימות הדו-שלבי הושלמה בהצלחה!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "ללא כותרת"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} ללא כותרת"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "המשתנה {variableKey} עודכן"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "המשתנה נמחק בהצלחה."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"אנא נסה שוב בעוד מספר שניות, סליחה."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "חיפוש באינטרנט"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Jegyzet hozzáadása"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Objektum hozzáadása"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI modell"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "Az AI nincs beállítva. Állítsa be a környezetében az OPENAI_API_KE
|
||||
msgid "AI request prep"
|
||||
msgstr "MI-kérés előkészítése"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI válasz séma"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Biztosan törli ezt a kapcsolódó {relationObjectMetadataNameSingular}
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Biztosan törölni szeretné ezt a készséget? Ez a művelet nem vonható vissza."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Biztos, hogy megsemmisíti ezeket a rekordokat? Többé nem lesznek visszaállíthatók."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Biztosan meg akarja semmisíteni ezt a rekordot? Többé nem állítható helyre."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Biztos, hogy vissza akarja állítani ezeket a rekordokat?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Biztos, hogy vissza akarja állítani ezt a rekordot?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Döntse el, melyik Al-cím mezőket szeretné megjeleníteni"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Webhook törlése"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Widget törlése"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Írja le, mit szeretne, hogy az AI végrehajtson..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "törlés"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Megsemmisítés {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Rekordok megsemmisítése"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Kikerülési opciók engedélyezése"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Model-specifikus funkciók engedélyezése"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Befejezés dátuma"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Nem sikerült menteni a munkaterületre vonatkozó utasításokat"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Mező törölve"
|
||||
msgid "Field name"
|
||||
msgstr "Mező neve"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Mező neve"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "ha"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Információk"
|
||||
msgid "Input"
|
||||
msgstr "Bemenet"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Telepítés..."
|
||||
msgid "Instances"
|
||||
msgstr "Példányok"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Utasítások"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Utasításszerkesztő"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Utasítások az AI-nak"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Elrendezések"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "További információk"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Vonaldiagram"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "ciklus"
|
||||
msgid "Mail Account"
|
||||
msgstr "Levélfiók"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Hiányzik az e-mail-piszkozatok létrehozásához szükséges engedély.
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Küldetés teljesítve!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Leállás"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Leállás"
|
||||
msgid "Output"
|
||||
msgstr "Kimenet"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Kimeneti mező {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Végleges törlés. Írja be a napok számát."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Rekord végleges megsemmisítése"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Rekordok végleges megsemmisítése"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Csomag"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "A csomagváltás törlésre került."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "visszaállítás"
|
||||
msgid "Restore"
|
||||
msgstr "Visszaállítás"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Rekord visszaállítása"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Rekordok visszaállítása"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Összefoglaló"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Újrapróbálkozás"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Hozz létre egy új alkalmazásvázat, majd használd a CLI-t a fejleszt
|
||||
msgid "Schedule"
|
||||
msgstr "Ütemezés"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Oszlop kiválasztása..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Válasszon dátumot és időt"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Bejelentkezés vagy Fiók létrehozása"
|
||||
msgid "Sign up"
|
||||
msgstr "Regisztráció"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Indítson új Enterprise előfizetést az Enterprise funkciók újbóli
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Indítson új Enterprise előfizetést."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty mezők"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Keresés"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Kétfaktoros hitelesítési beállítás sikeresen befejezve!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Cím nélkül"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Cím nélküli {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "A(z) {variableKey} változó frissítve"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "A változó sikeresen törölve."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Kérjük, próbálja meg néhány másodperc múlva, elnézést."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Webes Keresés"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Aggiungi nota"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Aggiungi oggetto"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Modello AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "IA non configurata. Imposta OPENAI_API_KEY, ANTHROPIC_API_KEY o XAI_API_
|
||||
msgid "AI request prep"
|
||||
msgstr "Preparazione della richiesta IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schema di risposta AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Sei sicuro di voler eliminare questo {relationObjectMetadataNameSingular
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Sei sicuro di voler eliminare questa abilità? Questa azione non può essere annullata."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Sei sicuro di voler distruggere questi record? Non saranno più recuperabili."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Sei sicuro di voler distruggere questo record? Non potrà più essere recuperato."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Sei sicuro di voler ripristinare questi record?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Sei sicuro di voler ripristinare questo record?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decidere quali campi del sottoindirizzo visualizzare"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Elimina webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Elimina widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Descrivi cosa vuoi che l'AI faccia..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "distruggi"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Distruggi {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Distruggi record"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Abilita opzioni di bypass"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Abilita le funzionalità specifiche del modello"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data di fine"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Impossibile salvare le istruzioni dello spazio di lavoro"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Campo eliminato"
|
||||
msgid "Field name"
|
||||
msgstr "Nome del campo"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nome del campo"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "se"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informazioni"
|
||||
msgid "Input"
|
||||
msgstr "Input"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installazione in corso..."
|
||||
msgid "Instances"
|
||||
msgstr "Istanze"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Istruzioni"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor delle istruzioni"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Istruzioni per l'AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Disposizioni"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Ulteriori informazioni"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Grafico a Linea"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Collegamento"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "ciclo"
|
||||
msgid "Mail Account"
|
||||
msgstr "Account di Posta"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Manca l'autorizzazione a creare bozze di email."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missione compiuta!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Interruzione"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Interruzione"
|
||||
msgid "Output"
|
||||
msgstr "Output"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Campo di Output {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Cancellazione permanente. Inserisci il numero di giorni."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Distruggi permanentemente il record"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Distruggi definitivamente i record"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Piano"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Il cambio di piano è stato annullato."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "ripristina"
|
||||
msgid "Restore"
|
||||
msgstr "Ripristina"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Ripristina record"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Ripristina record"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Ricomincia"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Riprova"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Genera una nuova app, quindi usa la CLI per svilupparla, pubblicarla e d
|
||||
msgid "Schedule"
|
||||
msgstr "Pianifica"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Seleziona colonna..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Seleziona una data e un'ora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Accedi o Crea un account"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrati"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Avvia un nuovo abbonamento Enterprise per riattivare le funzionalità En
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Avvia un nuovo abbonamento Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Campi di Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Cerca Twitter/X"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "Configurazione dell'autenticazione a due fattori completata con successo
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Senza titolo"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} senza titolo"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr "Variabile {variableKey} aggiornata"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabile eliminata con successo."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Riprova tra qualche secondo, ci dispiace."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Cerca sul Web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "メモを追加"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "オブジェクトを追加"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AIモデル"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI が構成されていません。環境変数に OPENAI_API_KEY、ANT
|
||||
msgid "AI request prep"
|
||||
msgstr "AI リクエストの準備"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AIレスポンススキーマ"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "この関連する{relationObjectMetadataNameSingular}を削除しても
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "このスキルを削除してもよろしいですか?この操作は元に戻せません。"
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "これらのレコードを本当に破壊しますか? もう復元できません。"
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "このレコードを削除してもよろしいですか? もう復元することはできません。"
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "これらのレコードを復元してもよろしいですか?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "このレコードを復元しますか?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "表示したいサブアドレスフィールドを選択してください"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Webhookを削除"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "ウィジェットを削除"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "AIにさせたいことを説明してください..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "破棄"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "{objectLabelPlural}を破壊する"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "レコードを破壊"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "バイパスオプションを有効にする"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "モデル固有の機能を有効にする"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "終了日"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "ワークスペースの指示を保存できませんでした"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "フィールドを削除しました"
|
||||
msgid "Field name"
|
||||
msgstr "フィールド名"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "フィールド名"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "条件"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "情報"
|
||||
msgid "Input"
|
||||
msgstr "入力"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "インストール中..."
|
||||
msgid "Instances"
|
||||
msgstr "インスタンス"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "指示"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "指示エディター"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "AIのための指示"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "レイアウト"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "さらに詳しく"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "ラインチャート"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "リンク"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "ループ"
|
||||
msgid "Mail Account"
|
||||
msgstr "メールアカウント"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "メールの下書き権限がありません。"
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "任務完了!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "障害"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "障害"
|
||||
msgid "Output"
|
||||
msgstr "出力"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "出力フィールド {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "永続的な削除。日数を入力してください。"
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "レコードを永久に削除"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "レコードを完全に破壊"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "プラン"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "プラン切替がキャンセルされました。"
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "復元"
|
||||
msgid "Restore"
|
||||
msgstr "復元"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "レコードを復元"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "レコードを復元"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "履歴書"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "リトライ"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "新しいアプリのひな型を作成し、CLI を使用して開発
|
||||
msgid "Schedule"
|
||||
msgstr "スケジュール"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "列を選択…"
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "日付と時刻を選択"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "サインインまたはアカウントを作成"
|
||||
msgid "Sign up"
|
||||
msgstr "サインアップ"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Enterprise 機能を再度有効化するには、新しい Enterprise
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "新しい Enterprise サブスクリプションを開始してください。"
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty のフィールド"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X 検索"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "二要素認証のセットアップが正常に完了しました!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "無題"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "無題の{labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "変数 {variableKey} を更新しました"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "変数が正常に削除されました"
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"数秒後にもう一度お試しください。申し訳ありません。"
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "ウェブ検索"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "메모 추가"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "개체 추가"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI 모델"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI가 구성되지 않았습니다. 환경에 OPENAI_API_KEY, ANTHROPIC_
|
||||
msgid "AI request prep"
|
||||
msgstr "AI 요청 준비"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI 응답 스키마"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "이 관련 {relationObjectMetadataNameSingular}을(를) 삭제하시겠
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "이 스킬을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "이 기록들을 파괴하시겠습니까? 더 이상 복구할 수 없습니다."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "이 기록을 파괴하시겠습니까? 더 이상 복구할 수 없습니다."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "이 기록들을 복원하시겠습니까?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "이 기록을 복원하시겠습니까?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "표시할 하위 주소 필드를 선택하세요"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Webhook 삭제"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "위젯 삭제"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "AI에 원하는 작업을 설명하세요..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "파기"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "{objectLabelPlural} 파기"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "기록 파기"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "우회 옵션 활성화"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "모델별 기능 활성화"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "종료 날짜"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "워크스페이스 지침을 저장하지 못했습니다"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "필드 삭제됨"
|
||||
msgid "Field name"
|
||||
msgstr "필드 이름"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "필드 이름"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "만약"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "정보"
|
||||
msgid "Input"
|
||||
msgstr "입력"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "설치 중..."
|
||||
msgid "Instances"
|
||||
msgstr "인스턴스"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "지침"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "지침 편집기"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "AI 사용 지침"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "레이아웃"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "자세히 알아보기"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "선형 차트"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "링크"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "반복"
|
||||
msgid "Mail Account"
|
||||
msgstr "메일 계정"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "이메일 초안 작성 권한이 없습니다."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "임무 완료!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "장애"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "장애"
|
||||
msgid "Output"
|
||||
msgstr "출력"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "출력 필드 {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "영구 삭제. 날짜를 입력하세요."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "기록을 영구적으로 파기합니다"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "기록을 영구적으로 파기합니다"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "플랜"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "플랜 전환이 취소되었습니다."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "복원"
|
||||
msgid "Restore"
|
||||
msgstr "복원"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "레코드 복원"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "기록 복원"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "다시 시작"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "재시도"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "새 앱을 스캐폴딩한 다음 CLI를 사용해 개발, 게시 및
|
||||
msgid "Schedule"
|
||||
msgstr "일정"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "열 선택..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "날짜 및 시간 선택"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "로그인 또는 계정 생성"
|
||||
msgid "Sign up"
|
||||
msgstr "가입하기"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "엔터프라이즈 기능을 다시 사용하려면 새 엔터프라이
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "새 엔터프라이즈 구독을 시작하세요."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty 필드"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "트위터/X 검색"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "이중 인증 설정이 성공적으로 완료되었습니다!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "제목 없음"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "제목 없음 {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "변수 {variableKey}가 업데이트됨"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "변수가 성공적으로 삭제되었습니다."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"잠시 후 다시 시도해 주세요. 불편을 드려 죄송합니다."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "웹 검색"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Voeg notitie toe"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Object toevoegen"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI Model"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI niet geconfigureerd. Stel OPENAI_API_KEY, ANTHROPIC_API_KEY of XAI_AP
|
||||
msgid "AI request prep"
|
||||
msgstr "Voorbereiding AI-verzoek"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI Antwoord Schema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Weet je zeker dat je deze gerelateerde {relationObjectMetadataNameSingul
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Weet je zeker dat je deze vaardigheid wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Weet je zeker dat je deze records wilt vernietigen? Ze zijn hierna niet meer te herstellen."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Weet je zeker dat je dit record wilt vernietigen? Het kan niet meer worden hersteld."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Weet je zeker dat je deze records wilt herstellen?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Weet je zeker dat je dit record wilt herstellen?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Beslis welke sub-adresvelden je wilt weergeven"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Verwijder webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Widget verwijderen"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beschrijf wat je wilt dat de AI doet..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "vernietigen"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Vernietig {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Vernietig Records"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Bypass-opties inschakelen"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Activeer model-specifieke functies"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Einddatum"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Het opslaan van werkruimte-instructies is mislukt"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Veld verwijderd"
|
||||
msgid "Field name"
|
||||
msgstr "Veldnaam"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Veldnaam"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "als"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informatie"
|
||||
msgid "Input"
|
||||
msgstr "Invoer"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installeren..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanties"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instructies"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor voor instructies"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instructies voor AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Lay-outs"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Meer informatie"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Lijngrafiek"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "lus"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mailaccount"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Toestemming voor het opstellen van e-mailconcepten ontbreekt."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missie volbracht!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Storing"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Storing"
|
||||
msgid "Output"
|
||||
msgstr "Uitvoer"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Uitvoerveld {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Definitieve verwijdering. Voer het aantal dagen in."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Vernietig Record Permanent"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Vernietig Records Permanent"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Planwissel is geannuleerd."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "herstel"
|
||||
msgid "Restore"
|
||||
msgstr "Herstel"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Record Herstellen"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Records Herstellen"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Hervatten"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Opnieuw proberen"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Zet een nieuwe app op en gebruik vervolgens de CLI om te ontwikkelen, pu
|
||||
msgid "Schedule"
|
||||
msgstr "Schema"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Selecteer kolom..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Selecteer datum en tijd"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Inloggen of een account aanmaken"
|
||||
msgid "Sign up"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Start een nieuw Enterprise-abonnement om Enterprise-functies opnieuw in
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Start een nieuw Enterprise-abonnement."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-velden"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Zoeken"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "Two-factor authenticatie setup met succes voltooid!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Naamloos"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Naamloze {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr "Variabele {variableKey} bijgewerkt"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabele succesvol verwijderd."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Probeer het over enkele seconden opnieuw, excuses."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Web Zoeken"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Legg til notat"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Legg til objekt"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI-modell"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr ""
|
||||
msgid "AI request prep"
|
||||
msgstr "Forberedelse av AI-forespørsel"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI-svarskjema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Er du sikker på at du vil slette denne relaterte {relationObjectMetadat
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Er du sikker på at du vil slette denne ferdigheten? Denne handlingen kan ikke angres."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Er du sikker på at du vil ødelegge disse postene? De kan ikke gjenopprettes."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Er du sikker på at du vil ødelegge denne posten? Den kan ikke gjenopprettes."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Er du sikker på at du vil gjenopprette disse postene?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Er du sikker på at du vil gjenopprette denne posten?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Bestem hvilke underadressefelt du vil vise"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Slett webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Slett widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beskriv hva du vil at AI skal gjøre..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "ødelegg"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Ødelegg {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Ødelegg poster"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Aktiver omgåelsesalternativer"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Aktiver modellspesifikke funksjoner"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Sluttdato"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Kunne ikke lagre instruksjoner for arbeidsområdet"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Felt slettet"
|
||||
msgid "Field name"
|
||||
msgstr "Feltnavn"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Feltnavn"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "hvis"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Info"
|
||||
msgid "Input"
|
||||
msgstr "Inndata"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installerer..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanser"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruksjoner"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Instruksjonsredigerer"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruksjoner for AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Oppsett"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Les mer"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Linjediagram"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Lenke"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "sløyfe"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mailkonto"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Mangler tillatelse til å opprette e-postutkast."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Oppdrag utført!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Nedetid"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Nedetid"
|
||||
msgid "Output"
|
||||
msgstr "Utdata"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Utdatafelt {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Permanent sletting. Skriv inn antall dager."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Permanent ødelegg post"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Permanent ødelegge poster"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Planbytte har blitt avbrutt."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "gjenopprett"
|
||||
msgid "Restore"
|
||||
msgstr "Gjenopprett"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Gjenopprett post"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Gjenopprett poster"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Gjenoppta"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Prøv igjen"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Opprett grunnstrukturen for en ny app, og bruk deretter CLI til å utvik
|
||||
msgid "Schedule"
|
||||
msgstr "Tidsplan"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Velg kolonne..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Velg dato og klokkeslett"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Logg inn eller opprett en konto"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrer deg"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Start et nytt Enterprise-abonnement for å aktivere Enterprise-funksjone
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Start et nytt Enterprise-abonnement."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-felter"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Søk"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Tofaktorautentiseringsoppsett fullført!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Uten tittel"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Uten tittel {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variabelen {variableKey} er oppdatert"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabel slettet vellykket."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Prøv igjen om noen sekunder, takk."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Web Søk"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Dodaj notatkę"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Dodaj obiekt"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Model AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI nie jest skonfigurowane. Ustaw w swoim środowisku OPENAI_API_KEY, AN
|
||||
msgid "AI request prep"
|
||||
msgstr "Przygotowanie żądania AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schemat odpowiedzi AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Czy na pewno chcesz usunąć ten powiązany {relationObjectMetadataNameS
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Czy na pewno chcesz usunąć tę umiejętność? Tej operacji nie można cofnąć."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Czy na pewno chcesz zniszczyć te rekordy? Nie będą już odzyskiwalne."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Czy na pewno chcesz zniszczyć ten rekord? Nie będzie można go już odzyskać."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Czy na pewno chcesz przywrócić te rekordy?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Czy na pewno chcesz przywrócić ten rekord?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Zdecyduj, które pola podrzędnego adresu chcesz wyświetlić"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Usuń webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Usuń widżet"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Opisz, co chcesz, aby AI zrobiło..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "zniszcz"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Zniszcz {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Zniszcz rekordy"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Włącz opcje obejścia"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Włącz funkcje specyficzne dla modelu"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data zakończenia"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Nie udało się zapisać instrukcji dla obszaru roboczego"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Pole usunięte"
|
||||
msgid "Field name"
|
||||
msgstr "Nazwa pola"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nazwa pola"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "jeśli"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informacje"
|
||||
msgid "Input"
|
||||
msgstr "Dane wejściowe"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instalowanie..."
|
||||
msgid "Instances"
|
||||
msgstr "Instancje"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instrukcje"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Edytor instrukcji"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instrukcje dla AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Układy"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Dowiedz się więcej"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Wykres liniowy"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "pętla"
|
||||
msgid "Mail Account"
|
||||
msgstr "Konto Mailowe"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Brak uprawnień do tworzenia szkiców wiadomości e-mail."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Misja zakończona!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Awaria"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Awaria"
|
||||
msgid "Output"
|
||||
msgstr "Wynik"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Pole Wyjściowe {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Stałe usunięcie. Wprowadź liczbę dni."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Trwale zniszcz rekord"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Trwale zniszcz rekordy"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Przełączanie planu zostało anulowane."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "przywróć"
|
||||
msgid "Restore"
|
||||
msgstr "Przywróć"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Przywróć rekord"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Przywróć rekordy"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Anuluj"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Ponów próbę"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Wygeneruj szkielet nowej aplikacji, a następnie użyj CLI, aby rozwija
|
||||
msgid "Schedule"
|
||||
msgstr "Harmonogram"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Wybierz kolumnę..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Wybierz datę i godzinę"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Zaloguj się lub utwórz konto"
|
||||
msgid "Sign up"
|
||||
msgstr "Zarejestruj się"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Rozpocznij nową subskrypcję Enterprise, aby ponownie włączyć funkcj
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Rozpocznij nową subskrypcję Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Pola Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Szukaj na Twitterze/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Konfiguracja uwierzytelniania dwuskładnikowego zakończona pomyślnie!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Nienazwana"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Bez tytułu {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Zmienna {variableKey} została zaktualizowana"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Zmienna została usunięta pomyślnie."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Spróbuj ponownie za kilka sekund, przepraszamy."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Szukaj w sieci"
|
||||
|
||||
|
||||
@@ -1007,6 +1007,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
@@ -1347,7 +1348,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr ""
|
||||
|
||||
@@ -1361,11 +1361,6 @@ msgstr ""
|
||||
msgid "AI request prep"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2008,24 +2003,28 @@ msgstr ""
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
@@ -4426,7 +4425,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4720,6 +4719,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr ""
|
||||
|
||||
@@ -4776,7 +4776,6 @@ msgstr ""
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4796,11 +4795,6 @@ msgstr ""
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5471,15 +5465,25 @@ msgid "Enable bypass options"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6405,6 +6409,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6567,11 +6576,6 @@ msgstr ""
|
||||
msgid "Field name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7409,6 +7413,11 @@ msgstr ""
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7625,6 +7634,11 @@ msgstr ""
|
||||
msgid "Input"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7705,6 +7719,11 @@ msgstr ""
|
||||
msgid "Instances"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7715,11 +7734,6 @@ msgstr ""
|
||||
msgid "Instructions Editor"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8280,6 +8294,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr ""
|
||||
|
||||
@@ -8390,6 +8405,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
@@ -8640,11 +8656,26 @@ msgstr ""
|
||||
msgid "Mail Account"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8955,6 +8986,11 @@ msgstr ""
|
||||
msgid "Mission accomplished!"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10531,6 +10567,7 @@ msgstr ""
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10541,11 +10578,6 @@ msgstr ""
|
||||
msgid "Output"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10763,15 +10795,14 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
@@ -10873,6 +10904,12 @@ msgstr ""
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11779,16 +11816,9 @@ msgstr ""
|
||||
msgid "Restore"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
@@ -11815,7 +11845,6 @@ msgstr ""
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
@@ -12033,6 +12062,16 @@ msgstr ""
|
||||
msgid "Schedule"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12497,7 +12536,7 @@ msgid "Select column..."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr ""
|
||||
|
||||
@@ -12890,6 +12929,11 @@ msgstr ""
|
||||
msgid "Sign up"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13204,6 +13248,11 @@ msgstr ""
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14433,7 +14482,7 @@ msgid "Twenty fields"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr ""
|
||||
|
||||
@@ -14468,6 +14517,7 @@ msgstr ""
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14691,6 +14741,11 @@ msgstr ""
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15079,6 +15134,11 @@ msgstr ""
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15405,7 +15465,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Adicionar nota"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Adicionar Objeto"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Modelo de IA"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "IA não configurada. Defina OPENAI_API_KEY, ANTHROPIC_API_KEY ou XAI_API
|
||||
msgid "AI request prep"
|
||||
msgstr "Preparação da solicitação de IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Esquema de Resposta de IA"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Tem certeza de que deseja excluir este(a) {relationObjectMetadataNameSin
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Tem certeza que deseja excluir esta habilidade? Esta ação não pode ser desfeita."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Tem certeza de que deseja destruir esses registros? Eles não serão mais recuperáveis."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Tem certeza de que deseja destruir este registro? Ele não poderá ser recuperado mais."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Tem certeza de que deseja restaurar esses registros?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Tem certeza de que deseja restaurar este registro?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decidir quais campos de sub-endereço você deseja exibir"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Excluir Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Excluir widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Descreva o que você quer que a IA faça..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "destruir"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Destruir {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Destruir Registros"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Ativar opções de contorno"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Habilitar recursos específicos do modelo"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data Final"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Falha ao salvar as instruções do espaço de trabalho"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Campo excluído"
|
||||
msgid "Field name"
|
||||
msgstr "Nome do campo"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nome do campo"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "se"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informações"
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instalando..."
|
||||
msgid "Instances"
|
||||
msgstr "Instâncias"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruções"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor de instruções"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruções para IA"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Layouts"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Saiba mais"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Gráfico de Linhas"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "loop"
|
||||
msgid "Mail Account"
|
||||
msgstr "Conta de Email"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Falta permissão para criar rascunhos de e-mail."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missão cumprida!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Interrupção"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Interrupção"
|
||||
msgid "Output"
|
||||
msgstr "Saída"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Campo de Saída {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Exclusão permanente. Insira o número de dias."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Destruir Registro Permanentemente"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Destruir Registros Permanentemente"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plano"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Alternância de plano foi cancelada."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaurar"
|
||||
msgid "Restore"
|
||||
msgstr "Restaurar"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaurar Registro"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaurar Registros"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Continuar"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Tentar Novamente"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Gere a estrutura de um novo aplicativo e, em seguida, use a CLI para des
|
||||
msgid "Schedule"
|
||||
msgstr "Agendar"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Selecionar coluna..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Selecione data e hora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Entrar ou Criar uma conta"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrar-se"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Inicie uma nova assinatura Enterprise para reativar os recursos Enterpri
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Inicie uma nova assinatura Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Campos do Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Pesquisar no Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Configuração de autenticação em duas etapas concluída com sucesso!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Sem Título"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} sem título"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variável {variableKey} atualizada"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variável excluída com sucesso."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Tente novamente em alguns segundos, por favor."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Pesquisar na Web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Adicionar nota"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Adicionar objeto"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Modelo de IA"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "IA não configurada. Defina OPENAI_API_KEY, ANTHROPIC_API_KEY ou XAI_API
|
||||
msgid "AI request prep"
|
||||
msgstr "Preparação do pedido de IA"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Esquema de Resposta de IA"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Tem a certeza de que pretende eliminar este {relationObjectMetadataNameS
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Tem certeza de que deseja excluir esta habilidade? Esta ação não pode ser desfeita."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Tem certeza de que deseja destruir esses registros? Eles não serão mais recuperáveis."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Tem certeza de que deseja destruir este registro? Ele não poderá ser recuperado."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Tem certeza de que deseja restaurar esses registros?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Tem certeza de que deseja restaurar este registro?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decidir quais campos de Sub-endereço você deseja exibir"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Eliminar webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Excluir widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Descreva o que você quer que a AI faça..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "destruir"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Destruir {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Destruir Registros"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Ativar opções de contorno"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Ativar recursos específicos do modelo"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data de Fim"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Falha ao guardar as instruções do espaço de trabalho"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Campo eliminado"
|
||||
msgid "Field name"
|
||||
msgstr "Nome do campo"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nome do Campo"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "se"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informações"
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Instalando..."
|
||||
msgid "Instances"
|
||||
msgstr "Instâncias"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruções"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor de Instruções"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruções para AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Layouts"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Saiba mais"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Gráfico de linha"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Ligação"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "laço"
|
||||
msgid "Mail Account"
|
||||
msgstr "Conta de Correio"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Falta permissão para criar rascunhos de e-mail."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Missão cumprida!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Interrupção"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Interrupção"
|
||||
msgid "Output"
|
||||
msgstr "Saída"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Campo de Saída {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Exclusão permanente. Insira o número de dias."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Destruir registro permanentemente"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Destruir Registros Permanentemente"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plano"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "A mudança de plano foi cancelada."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaurar"
|
||||
msgid "Restore"
|
||||
msgstr "Restaurar"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaurar registro"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaurar registros"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Resumo"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Tentar Novamente"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Crie a estrutura de um novo aplicativo e, em seguida, use a CLI para des
|
||||
msgid "Schedule"
|
||||
msgstr "Agendar"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Selecionar coluna..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Selecione a data e a hora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Entrar ou Criar uma conta"
|
||||
msgid "Sign up"
|
||||
msgstr "Inscrever-se"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Inicie uma nova assinatura Enterprise para reativar os recursos Enterpri
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Inicie uma nova assinatura Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Campos do Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Pesquisa no Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Configuração da autenticação em duas etapas concluída com sucesso!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Sem título"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} sem título"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variável {variableKey} atualizada"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variável excluída com sucesso."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Tente novamente dentro de alguns segundos, desculpe."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Pesquisa na Web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Adăugați notă"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Adaugă obiectul"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Model AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI nu este configurată. Setați OPENAI_API_KEY, ANTHROPIC_API_KEY sau X
|
||||
msgid "AI request prep"
|
||||
msgstr "Pregătire cerere AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schema răspuns AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Sigur doriți să ștergeți {relationObjectMetadataNameSingular} asocia
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Sigur doriți să ștergeți această abilitate? Această acțiune nu poate fi anulată."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Sunteți sigur că doriți să distrugeți aceste înregistrări? Ele nu vor mai fi recuperabile."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Sunteți sigur că doriți să distrugeți această înregistrare? Nu mai poate fi recuperată."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Sunteți sigur că doriți să restaurați aceste înregistrări?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Sunteți sigur că doriți să restaurați această înregistrare?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Decideți ce câmpuri Sub-adresă doriți să afișați"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Șterge webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Șterge widgetul"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Descrie ce dorești ca AI să facă..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "distrugere"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Distruge {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Distruge înregistrările"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Activează opțiunile de evitare"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Activează funcții specifice modelului"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Data de sfârșit"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Nu s-au putut salva instrucțiunile spațiului de lucru"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Câmp șters"
|
||||
msgid "Field name"
|
||||
msgstr "Nume câmp"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Nume câmp"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "dacă"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Informații"
|
||||
msgid "Input"
|
||||
msgstr "Intrare"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Se instalează..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanțe"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instrucțiuni"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Editor de instrucțiuni"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instrucțiuni pentru AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Aspecte"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Află mai multe"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Grafic liniar"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "buclă"
|
||||
msgid "Mail Account"
|
||||
msgstr "Cont de E-mail"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Lipsește permisiunea de a redacta e-mailuri."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Misiune îndeplinită!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Întrerupere"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Întrerupere"
|
||||
msgid "Output"
|
||||
msgstr "Ieșire"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Câmp ieșire {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Ștergere permanentă. Introduceți numărul de zile."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Distruge definitiv Înregistrarea"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Distrugere permanentă a înregistrărilor"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Schimbarea planului a fost anulată."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "restaurează"
|
||||
msgid "Restore"
|
||||
msgstr "Restaurează"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Restaurează înregistrarea"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Restaurează înregistrările"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Reluare"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Reîncercare"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Inițializează o aplicație nouă, apoi folosește CLI-ul pentru a dezv
|
||||
msgid "Schedule"
|
||||
msgstr "Program"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Selectează coloana..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Selectați data și ora"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Autentificare sau Creează un cont"
|
||||
msgid "Sign up"
|
||||
msgstr "Înregistrare"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Începeți un nou abonament Enterprise pentru a reactiva funcționalită
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Începeți un nou abonament Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Câmpuri Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Căutare Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Configurarea autentificării în doi pași a fost finalizată cu succes!
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Neintitulat"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} fără titlu"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Variabila {variableKey} a fost actualizată"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabila a fost ștearsă cu succes."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Vă rugăm să încercați din nou peste câteva secunde."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Căutare pe web"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1012,6 +1012,7 @@ msgstr "Додај белешку"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Додајте објекат"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI модел"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI није подешен. Подесите OPENAI_API_KEY, ANTHROPIC_A
|
||||
msgid "AI request prep"
|
||||
msgstr "Припрема AI захтева"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Схема одговора AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Да ли сте сигурни да желите да обришете
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Да ли сте сигурни да желите да обришете ову вештину? Ова радња се не може опозвати."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Да ли сте сигурни да желите уништити ове записе? Они више неће бити доступни."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Да ли сте сигурни да желите уништити овај запис? Неповратно је."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Да ли сте сигурни да желите враћати ове записе?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Да ли сте сигурни да желите вратити овај запис?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Одлучите која поља под-адресе желите да прикажете"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Обриши Вебхук"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Обришите виџет"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Опишите шта желите да AI уради..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "уништи"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Уништи {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Уништи записе"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Активирајте опције заобилажења"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Омогући специфичне карактеристике модела"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Датум завршетка"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Није успело чување упутстава за радни простор"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Поље је обрисано"
|
||||
msgid "Field name"
|
||||
msgstr "Име поља"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Име поља"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "ако"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Информације"
|
||||
msgid "Input"
|
||||
msgstr "Унос"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Инсталирање..."
|
||||
msgid "Instances"
|
||||
msgstr "Појаве"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Упутства"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Уређивач упутстава"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Упутства за AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Изгледи"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Сазнајте више"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Дијаграм линија"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Линк"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "петља"
|
||||
msgid "Mail Account"
|
||||
msgstr "Имејл налог"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Недостаје дозвола за креирање нацрта и
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Мисија завршена!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Прекид рада"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Прекид рада"
|
||||
msgid "Output"
|
||||
msgstr "Излаз"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Излазно поље {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Трајно брисање. Унесите број дана."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Трајно уништите запис"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Трајно уништите записе"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "План"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Промена плана је отказана."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "врати"
|
||||
msgid "Restore"
|
||||
msgstr "Врати"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Врати запис"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Врати записе"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Наставите"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Покушај поново"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Генеришите почетну структуру нове апли
|
||||
msgid "Schedule"
|
||||
msgstr "Распоред"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Изаберите колону..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Изаберите датум и време"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Пријавите се или креирајте налог"
|
||||
msgid "Sign up"
|
||||
msgstr "Региструјте се"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Покрените нову Enterprise претплату да бист
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Покрените нову Enterprise претплату."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty поља"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Твитер/X Претрага"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Подешавање двофакторске аутентификаци
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Неназван"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Без назива {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Променљива {variableKey} је ажурирана"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Променљива је успешно обрисана."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Покушајте поново за неколико секунди, извините."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Веб Претрага"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Lägg till anteckning"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Lägg till objekt"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI-modell"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI är inte konfigurerat. Ställ in OPENAI_API_KEY, ANTHROPIC_API_KEY el
|
||||
msgid "AI request prep"
|
||||
msgstr "Förberedelse av AI-begäran"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI-svarsschema"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Är du säker på att du vill ta bort denna relaterade {relationObjectMe
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Är du säker på att du vill ta bort den här färdigheten? Den här åtgärden kan inte ångras."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Är du säker på att du vill förstöra dessa poster? De kommer inte att gå att återställa längre."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Är du säker på att du vill förstöra denna post? Den kan inte återställas längre."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Är du säker på att du vill återställa dessa poster?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Är du säker på att du vill återställa denna post?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Bestäm vilka deladressfält du vill visa"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Ta bort webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Radera widget"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Beskriv vad du vill att AI:n ska göra..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "förstör"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Förstör {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Förstöra poster"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Aktivera förbikopplingsalternativ"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Aktivera modellens specifika funktioner"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Slutdatum"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Det gick inte att spara instruktionerna för arbetsytan"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Fält raderat"
|
||||
msgid "Field name"
|
||||
msgstr "Fältnamn"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Fältnamn"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "om"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Information"
|
||||
msgid "Input"
|
||||
msgstr "Inmatning"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Installerar..."
|
||||
msgid "Instances"
|
||||
msgstr "Instanser"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Instruktioner"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Instruktionsredigerare"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Instruktioner för AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Layouter"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Läs mer"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Linjediagram"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Länk"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "loop"
|
||||
msgid "Mail Account"
|
||||
msgstr "E-postkonto"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Behörighet för e-postutkast saknas."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Uppdrag slutfört!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10538,6 +10574,7 @@ msgstr "Avbrott"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10548,11 +10585,6 @@ msgstr "Avbrott"
|
||||
msgid "Output"
|
||||
msgstr "Utdata"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Utdatafält {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10770,16 +10802,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Permanent radering. Ange antalet dagar."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Förstör permanent post"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Förstör permanent poster"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10880,6 +10911,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Planbytet har avbrutits."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11786,17 +11823,10 @@ msgstr "återställ"
|
||||
msgid "Restore"
|
||||
msgstr "Återställ"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Återställ post"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Återställ poster"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11822,7 +11852,6 @@ msgstr "Återuppta"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Återförsök"
|
||||
|
||||
@@ -12042,6 +12071,16 @@ msgstr "Skapa en ny app med grundstruktur och använd sedan CLI för att utveckl
|
||||
msgid "Schedule"
|
||||
msgstr "Schema"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12506,7 +12545,7 @@ msgid "Select column..."
|
||||
msgstr "Välj kolumn..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Välj datum och tid"
|
||||
|
||||
@@ -12899,6 +12938,11 @@ msgstr "Logga in eller Skapa ett konto"
|
||||
msgid "Sign up"
|
||||
msgstr "Registrera dig"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13213,6 +13257,11 @@ msgstr "Starta ett nytt Enterprise-abonnemang för att återaktivera Enterprise-
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Starta ett nytt Enterprise-abonnemang."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14446,7 +14495,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty-fält"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Sök"
|
||||
|
||||
@@ -14481,6 +14530,7 @@ msgstr "Tvåfaktorsautentisering uppsättning genomförd lyckades!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14704,6 +14754,11 @@ msgstr "Obetitlad"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Obetitlad {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15092,6 +15147,11 @@ msgstr "Variabel {variableKey} uppdaterad"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Variabel borttagen framgångsrikt."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15420,7 +15480,7 @@ msgstr ""
|
||||
"Försök igen om några sekunder, tyvärr."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Webbsök"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Not ekle"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Nesne Ekle"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI Modeli"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "Yapay Zekâ yapılandırılmadı. Ortamınızda OPENAI_API_KEY, ANTHROPI
|
||||
msgid "AI request prep"
|
||||
msgstr "Yapay zeka istek hazırlığı"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI Yanıt Şeması"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Bu ilişkili {relationObjectMetadataNameSingular} öğesini silmek isted
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Bu beceriyi silmek istediğinizden emin misiniz? Bu işlem geri alınamaz."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Bu kayıtları yok etmek istediğinizden emin misiniz? Artık kurtarılamayacaklar."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Bu kaydı yok etmek istediğinizden emin misiniz? Artık kurtarılamayacak."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Bu kayıtları geri yüklemek istediğinizden emin misiniz?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Bu kaydı geri yüklemek istediğinizden emin misiniz?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Görüntülemek istediğiniz Alt-adres alanlarını seçin"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Webhook'u Sil"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Bileşeni sil"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "AI'nın ne yapmasını istediğinizi tarif edin..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "yok Et"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "{objectLabelPlural} Yok Et"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Kayıtları Yok Et"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Atlama seçeneklerini etkinleştir"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Modelde özgül özellikleri etkinleştir"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Bitiş Tarihi"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Çalışma alanı talimatları kaydedilemedi"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Alan silindi"
|
||||
msgid "Field name"
|
||||
msgstr "Alan adı"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Alan Adı"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "eğer"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Bilgiler"
|
||||
msgid "Input"
|
||||
msgstr "Girdi"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Yükleniyor..."
|
||||
msgid "Instances"
|
||||
msgstr "Örnekler"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Talimatlar"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Talimat Düzenleyicisi"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "AI için Talimatlar"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Düzenler"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Daha fazla bilgi edinin"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Çizgi Grafiği"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Bağlantı"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "döngü"
|
||||
msgid "Mail Account"
|
||||
msgstr "Mail Hesabı"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "E-posta taslağı oluşturma izni eksik."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Görev tamamlandı!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Kesinti"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Kesinti"
|
||||
msgid "Output"
|
||||
msgstr "Çıktı"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Çıktı Alanı {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Kalıcı silme. Gün sayısını girin."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Kaydı Kalıcı Olarak Yok Et"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Kayıtları Kalıcı Olarak Yok Et"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Plan"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Plan değişikliği iptal edildi."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "geri yükle"
|
||||
msgid "Restore"
|
||||
msgstr "Geri Yükle"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Kaydı Geri Yükle"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Kayıtları Geri Yükle"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Devam"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Tekrar dene"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Yeni bir uygulamanın iskeletini oluşturun, ardından geliştirmek, yay
|
||||
msgid "Schedule"
|
||||
msgstr "Program"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Sütun seç..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Tarih ve saat seçin"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Giriş yapın veya bir hesap oluşturun"
|
||||
msgid "Sign up"
|
||||
msgstr "Kaydol"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Kurumsal özellikleri yeniden etkinleştirmek için yeni bir kurumsal ab
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Yeni bir kurumsal abonelik başlatın."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty alanları"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X Ara"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "İki faktörlü doğrulama kurulumu başarıyla tamamlandı!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "İsimsiz"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "İsimsiz {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Değişken {variableKey} güncellendi"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Değişken başarıyla silindi."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Lütfen birkaç saniye sonra tekrar deneyin, özür dileriz."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Web Ara"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Додати примітку"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Додати об'єкт"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Модель ІІ"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "ШІ не налаштовано. Встановіть у своєму
|
||||
msgid "AI request prep"
|
||||
msgstr "Підготовка запиту ШІ"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Схема відповіді ІІ"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Ви впевнені, що хочете видалити пов’яз
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Ви впевнені, що хочете видалити цю навичку? Цю дію не можна скасувати."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Ви впевнені, що хочете знищити ці записи? Їх не можна буде відновити."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Ви впевнені, що хочете знищити цей запис? Його не можна буде відновити."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Ви впевнені, що хочете відновити ці записи?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Ви впевнені, що хочете відновити цей запис?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Виберіть, які поля під-адреси ви хочете відобразити"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Видалити вебхук"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Видалити віджет"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Опишіть, що ви хочете, щоб AI зробив..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "знищити"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Знищити {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Знищити записи"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Увімкнути параметри обходу"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Увімкнути функції, специфічні для моделі"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Дата закінчення"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Не вдалося зберегти інструкції робочого простору"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Поле видалено"
|
||||
msgid "Field name"
|
||||
msgstr "Назва поля"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Назва поля"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "якщо"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Інформація"
|
||||
msgid "Input"
|
||||
msgstr "Вхідні дані"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Встановлення..."
|
||||
msgid "Instances"
|
||||
msgstr "Екземпляри"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Інструкції"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Редактор інструкцій"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Інструкції для AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Макети"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Докладніше"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Лінійна діаграма"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Посилання"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "цикл"
|
||||
msgid "Mail Account"
|
||||
msgstr "Обліковий запис пошти"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Відсутній дозвіл на створення чернеток
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Місію виконано!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Збій"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Збій"
|
||||
msgid "Output"
|
||||
msgstr "Вивід"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Поле результату {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Безповоротне видалення. Введіть кількість днів."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Назавжди знищити записи"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Назавжди знищити записи"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "План"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Перемикання плану скасовано."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "відновити"
|
||||
msgid "Restore"
|
||||
msgstr "Відновити"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Відновити запис"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Відновити записи"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Продовжити"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Повторити спробу"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Згенеруйте каркас нового застосунку, п
|
||||
msgid "Schedule"
|
||||
msgstr "Розклад"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Виберіть стовпець..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Виберіть дату й час"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Увійти або Створити аккаунт"
|
||||
msgid "Sign up"
|
||||
msgstr "Зареєструватися"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Почніть нову підписку Enterprise, щоб знову
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Почніть нову підписку Enterprise."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14440,7 +14489,7 @@ msgid "Twenty fields"
|
||||
msgstr "Поля Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Пошук у Twitter/X"
|
||||
|
||||
@@ -14475,6 +14524,7 @@ msgstr "Налаштування двофакторної аутентифіка
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14698,6 +14748,11 @@ msgstr "Неназваний"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "Без назви {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15086,6 +15141,11 @@ msgstr "Змінну {variableKey} оновлено"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Змінну успішно видалено."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15414,7 +15474,7 @@ msgstr ""
|
||||
"Будь ласка, спробуйте ще раз за кілька секунд."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Веб-пошук"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "Thêm ghi chú"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "Thêm đối tượng"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "Mô hình AI"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "AI chưa được cấu hình. Thiết lập OPENAI_API_KEY, ANTHROPIC_A
|
||||
msgid "AI request prep"
|
||||
msgstr "Chuẩn bị yêu cầu AI"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "Schema phản hồi AI"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "Bạn có chắc muốn xóa {relationObjectMetadataNameSingular} liên
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "Bạn có chắc chắn muốn xóa kỹ năng này không? Hành động này không thể hoàn tác."
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "Bạn có chắc chắn muốn hủy bỏ các bản ghi này không? Chúng sẽ không thể khôi phục được nữa."
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "Bạn có chắc chắn muốn hủy bỏ bản ghi này không? Nó sẽ không thể khôi phục được nữa."
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "Bạn có chắc chắn muốn khôi phục các bản ghi này không?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "Bạn có chắc chắn muốn khôi phục bản ghi này không?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "Quyết định các trường Phân nhóm địa chỉ mà bạn muốn hiển thị"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "Xóa Webhooks"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "Xóa tiện ích"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "Mô tả điều bạn muốn AI làm gì..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "hủy"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "Hủy {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "Hủy bản ghi"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "Kích hoạt tùy chọn bỏ qua"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "Kích hoạt các tính năng cụ thể của mô hình"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "Ngày kết thúc"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "Không thể lưu hướng dẫn của không gian làm việc"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "Đã xóa trường"
|
||||
msgid "Field name"
|
||||
msgstr "Tên trường"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "Tên Trường"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "nếu"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "Thông tin"
|
||||
msgid "Input"
|
||||
msgstr "Đầu vào"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "Đang cài đặt..."
|
||||
msgid "Instances"
|
||||
msgstr "Thực thể"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "Hướng dẫn"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "Trình chỉnh sửa hướng dẫn"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "Hướng dẫn cho AI"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "Bố trí"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "Tìm hiểu thêm"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "Biểu đồ đường"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "Liên kết"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "vòng lặp"
|
||||
msgid "Mail Account"
|
||||
msgstr "Tài Khoản Email"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "Thiếu quyền soạn thảo email."
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "Nhiệm vụ đã hoàn thành!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "Gián đoạn"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "Gián đoạn"
|
||||
msgid "Output"
|
||||
msgstr "Đầu ra"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "Trường Đầu Ra {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "Xóa vĩnh viễn. Nhập số ngày."
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "Hủy bản ghi vĩnh viễn"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "Hủy bỏ vĩnh viễn các bản ghi"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "Gói"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "Chuyển đổi kế hoạch đã bị hủy."
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "khôi phục"
|
||||
msgid "Restore"
|
||||
msgstr "Khôi phục"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "Khôi phục bản ghi"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "Khôi phục bản ghi"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "Tiếp tục"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "Thử lại"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "Tạo khung cho ứng dụng mới, sau đó dùng CLI để phát tri
|
||||
msgid "Schedule"
|
||||
msgstr "Lịch trình"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "Chọn cột..."
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "Chọn ngày & giờ"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "Đăng nhập hoặc Tạo tài khoản"
|
||||
msgid "Sign up"
|
||||
msgstr "Đăng ký"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "Bắt đầu một gói đăng ký Enterprise mới để kích hoạt l
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "Bắt đầu một gói đăng ký Enterprise mới."
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Các trường của Twenty"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Tìm kiếm Twitter/X"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "Thiết lập xác thực hai yếu tố thành công!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "Chưa đặt tên"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "{labelSingular} chưa có tiêu đề"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "Biến {variableKey} đã được cập nhật"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "Biến đã được xóa thành công."
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"Vui lòng thử lại sau vài giây, xin lỗi."
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "Tìm kiếm web"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "添加笔记"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "添加对象"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI 模型"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "未配置 AI。请在您的环境中设置 OPENAI_API_KEY、ANTHROPIC_AP
|
||||
msgid "AI request prep"
|
||||
msgstr "AI 请求准备"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI 响应架构"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "确定要删除此相关的 {relationObjectMetadataNameSingular} 吗?<
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "确定要删除此技能吗?此操作无法撤销。"
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "您确定要销毁这些记录吗?它们将无法恢复。"
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "您确定要销毁此记录吗?它将无法恢复。"
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "您确定要恢复这些记录吗?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "您确定要恢复此记录吗?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "请选择您要显示的子地址字段"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "删除 Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "删除小部件"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "描述你希望 AI 执行的操作..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "销毁"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "销毁 {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "销毁记录"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "启用绕过选项"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "启用特定模型功能"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "结束日期"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "保存工作区说明失败"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "字段已删除"
|
||||
msgid "Field name"
|
||||
msgstr "字段名称"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "字段名称"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "如果"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "信息"
|
||||
msgid "Input"
|
||||
msgstr "输入"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "正在安装..."
|
||||
msgid "Instances"
|
||||
msgstr "实例"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr "指令"
|
||||
msgid "Instructions Editor"
|
||||
msgstr "指令编辑器"
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "AI 指令"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "布局"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "了解更多"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "折线图"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "链接"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "循环"
|
||||
msgid "Mail Account"
|
||||
msgstr "邮件账户"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "缺少电子邮件草稿权限。"
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "任务完成!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "中断"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "中断"
|
||||
msgid "Output"
|
||||
msgstr "输出"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "输出字段 {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "永久删除。 输入天数。"
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "永久销毁记录"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "永久销毁记录"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "计划"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "计划切换已取消。"
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "恢复"
|
||||
msgid "Restore"
|
||||
msgstr "恢复"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "恢复记录"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "恢复记录"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "恢复"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "重试"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "为新应用搭建脚手架,然后使用 CLI 进行开发、发布和
|
||||
msgid "Schedule"
|
||||
msgstr "计划"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "选择列……"
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "选择日期和时间"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "登录或创建账户"
|
||||
msgid "Sign up"
|
||||
msgstr "注册"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "开始新的企业订阅以重新启用企业功能。"
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "开始新的企业订阅。"
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty 字段"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X 搜索"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "双因素身份验证设置成功完成!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "未命名"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "未命名的 {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "变量 {variableKey} 已更新"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "变量删除成功。"
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"请在几秒后重试,抱歉。"
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "网络搜索"
|
||||
|
||||
|
||||
@@ -1012,6 +1012,7 @@ msgstr "添加筆記"
|
||||
|
||||
#. js-lingui-id: dEO3Zx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx
|
||||
msgid "Add object"
|
||||
msgstr "添加對象"
|
||||
|
||||
@@ -1352,7 +1353,6 @@ msgstr ""
|
||||
#. js-lingui-id: kNfr85
|
||||
#: src/pages/settings/ai/forms/components/SettingsAIAgentForm.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAgentSettingsTab.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "AI Model"
|
||||
msgstr "AI模型"
|
||||
|
||||
@@ -1366,11 +1366,6 @@ msgstr "未設定 AI。請在您的環境中設定 OPENAI_API_KEY、ANTHROPIC_AP
|
||||
msgid "AI request prep"
|
||||
msgstr "AI 請求準備"
|
||||
|
||||
#. js-lingui-id: QwgquD
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "AI Response Schema"
|
||||
msgstr "AI回應結構"
|
||||
|
||||
#. js-lingui-id: tzhisR
|
||||
#: src/pages/settings/ai/SettingsAIUsageUserDetail.tsx
|
||||
#: src/pages/settings/ai/components/SettingsAIUsageTab.tsx
|
||||
@@ -2013,25 +2008,29 @@ msgstr "您確定要刪除此相關的 {relationObjectMetadataNameSingular} 嗎
|
||||
msgid "Are you sure you want to delete this skill? This action cannot be undone."
|
||||
msgstr "您確定要刪除此技能嗎?此操作無法復原。"
|
||||
|
||||
#. js-lingui-id: OJOR8q
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these records? They won't be recoverable anymore."
|
||||
msgstr "您確定要刪除這些記錄嗎?它們將不可恢復。"
|
||||
#. js-lingui-id: EySr+c
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy these {0}? They won't be recoverable anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: UK5TO6
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to destroy this record? It cannot be recovered anymore."
|
||||
msgstr "您確定要銷毀此記錄嗎?它將無法恢復。"
|
||||
#. js-lingui-id: GfgNgF
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Are you sure you want to destroy this {0}? It cannot be recovered anymore."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: mcHVC1
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these records?"
|
||||
msgstr "您確定要恢復這些記錄嗎?"
|
||||
#. js-lingui-id: RzJL8J
|
||||
#. placeholder {0}: objectMetadataItem.labelPlural
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore these {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: lmgkf0
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Are you sure you want to restore this record?"
|
||||
msgstr "您確定要恢復此記錄嗎?"
|
||||
#. js-lingui-id: XTKWxO
|
||||
#. placeholder {0}: objectMetadataItem.labelSingular
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Are you sure you want to restore this {0}?"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: 9JFf0y
|
||||
#: src/modules/settings/members/components/MemberPermissionsTab.tsx
|
||||
@@ -4431,7 +4430,7 @@ msgid "Decide which Sub-address fields you want to display"
|
||||
msgstr "決定您希望顯示哪些子地址欄位"
|
||||
|
||||
#. js-lingui-id: Bn9+El
|
||||
#: src/modules/ai/components/AIChatEditorSection.tsx
|
||||
#: src/modules/ai/hooks/useAiModelOptions.ts
|
||||
msgid "default"
|
||||
msgstr ""
|
||||
|
||||
@@ -4725,6 +4724,7 @@ msgstr "刪除 Webhook"
|
||||
|
||||
#. js-lingui-id: tWD0z0
|
||||
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsFooter.tsx
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Delete widget"
|
||||
msgstr "刪除小工具"
|
||||
|
||||
@@ -4781,7 +4781,6 @@ msgstr "描述您希望 AI 實現的功能..."
|
||||
#: src/pages/settings/data-model/SettingsObjectFieldEdit.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationsTable.tsx
|
||||
#: src/pages/settings/applications/components/SettingsApplicationNameDescriptionTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentTable.tsx
|
||||
#: src/modules/settings/logic-functions/components/SettingsLogicFunctionNewForm.tsx
|
||||
@@ -4801,11 +4800,6 @@ msgstr "銷毀"
|
||||
msgid "Destroy {objectLabelPlural}"
|
||||
msgstr "銷毀 {objectLabelPlural}"
|
||||
|
||||
#. js-lingui-id: kG5yO6
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Destroy Records"
|
||||
msgstr "銷毀記錄"
|
||||
|
||||
#. js-lingui-id: L68qSB
|
||||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsSection.tsx
|
||||
msgid "Destroy Records on All Objects"
|
||||
@@ -5476,15 +5470,25 @@ msgid "Enable bypass options"
|
||||
msgstr "啟用繞過選項"
|
||||
|
||||
#. js-lingui-id: gZo0V9
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Enable model-specific features"
|
||||
msgstr "啟用特定模型功能"
|
||||
|
||||
#. js-lingui-id: IrI9pg
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VFv2ZC
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "End Date"
|
||||
msgstr "結束日期"
|
||||
|
||||
#. js-lingui-id: Fqu/aC
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "End date must be after start date."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: k1i50B
|
||||
#: src/modules/information-banner/components/billing/InformationBannerEndTrialPeriod.tsx
|
||||
msgid "End Trial Period"
|
||||
@@ -6410,6 +6414,11 @@ msgstr ""
|
||||
msgid "Failed to save workspace instructions"
|
||||
msgstr "儲存工作區指示失敗"
|
||||
|
||||
#. js-lingui-id: aj02T8
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Failed to set maintenance mode."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: LVcnN8
|
||||
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
|
||||
msgid "Failed to transfer ownership. Check that the subdomain is correct."
|
||||
@@ -6572,11 +6581,6 @@ msgstr "欄位已刪除"
|
||||
msgid "Field name"
|
||||
msgstr "字段名稱"
|
||||
|
||||
#. js-lingui-id: fV7qkH
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Field Name"
|
||||
msgstr "欄位名稱"
|
||||
|
||||
#. js-lingui-id: x07QTl
|
||||
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationForm.tsx
|
||||
msgid "Field on destination"
|
||||
@@ -7414,6 +7418,11 @@ msgstr "如果"
|
||||
msgid "If disabled, use advanced search filters to find these records"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bTDz/2
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "If there's no link, no button will appear."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: ZfP/Ap
|
||||
#: src/modules/object-record/record-table/empty-state/components/RecordTableEmptyStateRemote.tsx
|
||||
msgid "If this is unexpected, please verify your settings."
|
||||
@@ -7630,6 +7639,11 @@ msgstr "資訊"
|
||||
msgid "Input"
|
||||
msgstr "輸入"
|
||||
|
||||
#. js-lingui-id: /OdOC/
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Input (Prompt)"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: JE2tjr
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
|
||||
@@ -7710,6 +7724,11 @@ msgstr "安裝中..."
|
||||
msgid "Instances"
|
||||
msgstr "實例"
|
||||
|
||||
#. js-lingui-id: tc328m
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Instruction for AI"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: NxHkkp
|
||||
#: src/pages/settings/ai/SettingsSkillForm.tsx
|
||||
msgid "Instructions"
|
||||
@@ -7720,11 +7739,6 @@ msgstr ""
|
||||
msgid "Instructions Editor"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: g+29+d
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Instructions for AI"
|
||||
msgstr "AI 指示"
|
||||
|
||||
#. js-lingui-id: RGm66q
|
||||
#: src/utils/title-utils.ts
|
||||
msgid "Integrations - Settings"
|
||||
@@ -8285,6 +8299,7 @@ msgstr "佈局"
|
||||
|
||||
#. js-lingui-id: zwWKhA
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Learn more"
|
||||
msgstr "瞭解更多"
|
||||
|
||||
@@ -8395,6 +8410,7 @@ msgstr "折線圖"
|
||||
|
||||
#. js-lingui-id: yzF66j
|
||||
#: src/modules/side-panel/components/SidePanelLinkInfo.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/navigation-menu-item/edit/side-panel/components/SidePanelNewSidebarItemMainMenu.tsx
|
||||
msgid "Link"
|
||||
msgstr "鏈接"
|
||||
@@ -8645,11 +8661,26 @@ msgstr "循環"
|
||||
msgid "Mail Account"
|
||||
msgstr "郵件帳戶"
|
||||
|
||||
#. js-lingui-id: 6Dd2PM
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: /hmUGb
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Maintenance mode"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: MOLprz
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useActionRolePermissionFlagConfig.ts
|
||||
msgid "Make HTTP requests to external APIs"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: wckWOP
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutFieldsSettings.tsx
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: n0FHLv
|
||||
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
|
||||
msgid "Manage API keys and webhooks"
|
||||
@@ -8960,6 +8991,11 @@ msgstr "缺少撰寫電子郵件草稿的權限。"
|
||||
msgid "Mission accomplished!"
|
||||
msgstr "任務完成!"
|
||||
|
||||
#. js-lingui-id: scu3wk
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowAiAgentPromptTab.tsx
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: bC/dq9
|
||||
#. placeholder {0}: values.label.trim()
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
@@ -10536,6 +10572,7 @@ msgstr "中斷"
|
||||
|
||||
#. js-lingui-id: gh06VD
|
||||
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
#: src/modules/workflow/components/WorkflowStepExecutionResult.tsx
|
||||
#: src/modules/side-panel/pages/workflow/step/view-run/components/SidePanelWorkflowRunViewStepContent.tsx
|
||||
#: src/modules/logic-functions/components/LogicFunctionExecutionResult.tsx
|
||||
@@ -10546,11 +10583,6 @@ msgstr "中斷"
|
||||
msgid "Output"
|
||||
msgstr "輸出"
|
||||
|
||||
#. js-lingui-id: xvfn7l
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Output Field {fieldNumber}"
|
||||
msgstr "輸出欄位 {fieldNumber}"
|
||||
|
||||
#. js-lingui-id: i1+tKD
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
|
||||
@@ -10768,16 +10800,15 @@ msgstr ""
|
||||
msgid "Permanent deletion. Enter the number of days."
|
||||
msgstr "永久刪除。輸入天數。"
|
||||
|
||||
#. js-lingui-id: 35dBYb
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/DestroySingleRecordCommand.tsx
|
||||
msgid "Permanently Destroy Record"
|
||||
msgstr "永久銷毀記錄"
|
||||
#. js-lingui-id: EPkrPQ
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: YyP8vD
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/DestroyMultipleRecordsCommand.tsx
|
||||
msgid "Permanently Destroy Records"
|
||||
msgstr "永久銷毀記錄"
|
||||
#. js-lingui-id: 64gHBj
|
||||
#: src/modules/command-menu-item/engine-command/record/components/DestroyRecordsCommand.tsx
|
||||
msgid "Permanently Destroy {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: yWmZKk
|
||||
#: src/modules/metadata-error-handler/hooks/useMetadataErrorHandler.ts
|
||||
@@ -10878,6 +10909,12 @@ msgstr "方案"
|
||||
msgid "Plan switching has been cancelled."
|
||||
msgstr "方案切換已取消。"
|
||||
|
||||
#. js-lingui-id: QLv09h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Planned for {formattedStartDate}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: VUi6Nf
|
||||
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
|
||||
msgid "Please check your cron expression syntax."
|
||||
@@ -11784,17 +11821,10 @@ msgstr "還原"
|
||||
msgid "Restore"
|
||||
msgstr "還原"
|
||||
|
||||
#. js-lingui-id: NzMNOA
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/single-record/components/RestoreSingleRecordCommand.tsx
|
||||
msgid "Restore Record"
|
||||
msgstr "還原記錄"
|
||||
|
||||
#. js-lingui-id: Xqj0Cb
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
#: src/modules/command-menu-item/engine-command/record/multiple-records/components/RestoreMultipleRecordsCommand.tsx
|
||||
msgid "Restore Records"
|
||||
msgstr "還原記錄"
|
||||
#. js-lingui-id: 8KyDbM
|
||||
#: src/modules/command-menu-item/engine-command/record/components/RestoreRecordsCommand.tsx
|
||||
msgid "Restore {objectLabel}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hO3AfV
|
||||
#: src/pages/settings/ai/components/SettingsAIModelsTab.tsx
|
||||
@@ -11820,7 +11850,6 @@ msgstr "恢復"
|
||||
#. js-lingui-id: 6gRgw8
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal.tsx
|
||||
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu.tsx
|
||||
#: src/modules/ai/components/AIChatErrorMessage.tsx
|
||||
msgid "Retry"
|
||||
msgstr "重試"
|
||||
|
||||
@@ -12038,6 +12067,16 @@ msgstr "為新的應用程式搭建腳手架,然後使用 CLI 進行開發、
|
||||
msgid "Schedule"
|
||||
msgstr "排程"
|
||||
|
||||
#. js-lingui-id: Ys/D8h
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Schedule a maintenance window and notify all users"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: f5yMQc
|
||||
#: src/modules/information-banner/components/maintenance/InformationBannerMaintenance.tsx
|
||||
msgid "Scheduled maintenance: {startFormatted} — {endFormatted}"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: QJ8HBJ
|
||||
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
|
||||
msgid "Schema"
|
||||
@@ -12502,7 +12541,7 @@ msgid "Select column..."
|
||||
msgstr "選擇欄位……"
|
||||
|
||||
#. js-lingui-id: U+WOF9
|
||||
#: src/pages/settings/security/event-logs/components/EventLogDatePickerInput.tsx
|
||||
#: src/modules/settings/components/SettingsDatePickerInput.tsx
|
||||
msgid "Select date & time"
|
||||
msgstr "選取日期與時間"
|
||||
|
||||
@@ -12895,6 +12934,11 @@ msgstr "登入或建立賬戶"
|
||||
msgid "Sign up"
|
||||
msgstr "註冊"
|
||||
|
||||
#. js-lingui-id: mHC57v
|
||||
#: src/modules/auth/sign-in-up/components/internal/SignInUpWithCredentials.tsx
|
||||
msgid "Sign-up is temporarily unavailable during maintenance."
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: BZdVGR
|
||||
#: src/modules/settings/data-model/fields/forms/select/components/SettingsDataModelFieldSelectForm.tsx
|
||||
msgid "Single edit"
|
||||
@@ -13209,6 +13253,11 @@ msgstr "開始新的企業訂閱以重新啟用企業功能。"
|
||||
msgid "Start a new enterprise subscription."
|
||||
msgstr "開始新的企業訂閱。"
|
||||
|
||||
#. js-lingui-id: WAjFYI
|
||||
#: src/modules/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceMode.tsx
|
||||
msgid "Start date"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: D3iCkb
|
||||
#: src/pages/settings/security/event-logs/components/EventLogFilters.tsx
|
||||
msgid "Start Date"
|
||||
@@ -14438,7 +14487,7 @@ msgid "Twenty fields"
|
||||
msgstr "Twenty 欄位"
|
||||
|
||||
#. js-lingui-id: YIjS4q
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Twitter/X Search"
|
||||
msgstr "Twitter/X 搜索"
|
||||
|
||||
@@ -14473,6 +14522,7 @@ msgstr "雙因素身份驗證設定成功完成!"
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/pages/settings/ai/components/SettingsToolsTable.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputFieldTypeSelector.tsx
|
||||
#: src/modules/settings/security/components/SSO/SettingsSSOIdentitiesProvidersForm.tsx
|
||||
#: src/modules/settings/data-model/object-details/components/SettingsObjectRelationsTable.tsx
|
||||
#: src/modules/settings/components/SettingsDnsRecordsTable.tsx
|
||||
@@ -14696,6 +14746,11 @@ msgstr "無標題"
|
||||
msgid "Untitled {labelSingular}"
|
||||
msgstr "未命名的 {labelSingular}"
|
||||
|
||||
#. js-lingui-id: zJsHrW
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Untitled field"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: RBz20h
|
||||
#: src/modules/side-panel/pages/page-layout/components/SidePanelPageLayoutWidgetTypeSelect.tsx
|
||||
msgid "Untitled iFrame"
|
||||
@@ -15084,6 +15139,11 @@ msgstr "變數 {variableKey} 已更新"
|
||||
msgid "Variable deleted successfully."
|
||||
msgstr "變量成功刪除。"
|
||||
|
||||
#. js-lingui-id: +woNYv
|
||||
#: src/modules/workflow/workflow-steps/workflow-actions/ai-agent-action/components/WorkflowOutputSchemaBuilder.tsx
|
||||
msgid "Variable Name"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: dY/1ir
|
||||
#: src/modules/object-record/record-field/ui/form-types/components/VariableChip.tsx
|
||||
msgid "Variable not found"
|
||||
@@ -15412,7 +15472,7 @@ msgstr ""
|
||||
"請稍後幾秒再試,抱歉。"
|
||||
|
||||
#. js-lingui-id: LnnVIT
|
||||
#: src/pages/settings/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
#: src/modules/ai/components/SettingsAgentModelCapabilities.tsx
|
||||
msgid "Web Search"
|
||||
msgstr "網路搜索"
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ const StyledEditorContainer = styled.div<{
|
||||
box-sizing: border-box;
|
||||
color: ${({ readonly }) =>
|
||||
readonly
|
||||
? themeCssVariables.font.color.light
|
||||
? themeCssVariables.font.color.secondary
|
||||
: themeCssVariables.font.color.primary};
|
||||
font-family: ${themeCssVariables.font.family};
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
|
||||
@@ -6,6 +6,7 @@ import { IconDotsVertical } from 'twenty-ui/display';
|
||||
import { LazyMarkdownRenderer } from '@/ai/components/LazyMarkdownRenderer';
|
||||
import { ToolStepRenderer } from '@/ai/components/ToolStepRenderer';
|
||||
import { groupContiguousThinkingStepParts } from '@/ai/utils/groupContiguousThinkingStepParts';
|
||||
import { isCodeInterpreterToolPart } from '@/ai/utils/isCodeInterpreterToolPart';
|
||||
import { styled } from '@linaria/react';
|
||||
import { isToolUIPart, type ToolUIPart } from 'ai';
|
||||
import { type ExtendedUIMessagePart } from 'twenty-shared/ai';
|
||||
@@ -92,16 +93,13 @@ export const AIChatAssistantMessageRenderer = ({
|
||||
isLastMessageStreaming: boolean;
|
||||
hasError?: boolean;
|
||||
}) => {
|
||||
// Filter out data-code-execution parts when tool-code_interpreter exists
|
||||
// (the tool part contains the final result, data-code-execution is for streaming updates)
|
||||
// Also filter out data-thread-title (consumed by useAgentChat, not rendered)
|
||||
const hasCodeInterpreterTool = messageParts.some(
|
||||
(part) => part.type === 'tool-code_interpreter',
|
||||
const hasCodeExecutionData = messageParts.some(
|
||||
(part) => part.type === 'data-code-execution',
|
||||
);
|
||||
const filteredParts = messageParts.filter(
|
||||
(part) =>
|
||||
part.type !== 'data-thread-title' &&
|
||||
(!hasCodeInterpreterTool || part.type !== 'data-code-execution'),
|
||||
!(hasCodeExecutionData && isCodeInterpreterToolPart(part)),
|
||||
);
|
||||
const renderItems = groupContiguousThinkingStepParts(filteredParts);
|
||||
|
||||
|
||||
@@ -11,17 +11,13 @@ import { AIChatEditorFocusEffect } from '@/ai/components/internal/AIChatEditorFo
|
||||
import { AIChatSkeletonLoader } from '@/ai/components/internal/AIChatSkeletonLoader';
|
||||
import { SendMessageButton } from '@/ai/components/internal/SendMessageButton';
|
||||
import { useAIChatEditor } from '@/ai/hooks/useAIChatEditor';
|
||||
import { useAiModelOptions } from '@/ai/hooks/useAiModelOptions';
|
||||
import { useAgentChatModelId } from '@/ai/hooks/useAgentChatModelId';
|
||||
import { useWorkspaceAiModelAvailability } from '@/ai/hooks/useWorkspaceAiModelAvailability';
|
||||
import { agentChatUserSelectedModelState } from '@/ai/states/agentChatUserSelectedModelState';
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { aiModelsState } from '@/client-config/states/aiModelsState';
|
||||
import { getModelIcon } from '@/settings/admin-panel/ai/utils/getModelIcon';
|
||||
import { Select } from '@/ui/input/components/Select';
|
||||
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { type SelectOption } from 'twenty-ui/input';
|
||||
|
||||
const StyledInputArea = styled.div<{ isMobile: boolean }>`
|
||||
align-items: flex-end;
|
||||
@@ -110,9 +106,18 @@ const StyledRightButtonsContainer = styled.div`
|
||||
|
||||
export const AIChatEditorSection = () => {
|
||||
const isMobile = useIsMobile();
|
||||
const currentWorkspace = useAtomStateValue(currentWorkspaceState);
|
||||
const aiModels = useAtomStateValue(aiModelsState);
|
||||
const { enabledModels } = useWorkspaceAiModelAvailability();
|
||||
const { options, pinnedOption } = useAiModelOptions({
|
||||
variant: 'pinned-default',
|
||||
});
|
||||
|
||||
const smartModelOptions: SelectOption<string | null>[] = options;
|
||||
const defaultPinnedOption: SelectOption<string | null> | undefined =
|
||||
pinnedOption
|
||||
? {
|
||||
...pinnedOption,
|
||||
value: null,
|
||||
}
|
||||
: undefined;
|
||||
const setAgentChatUserSelectedModel = useSetAtomState(
|
||||
agentChatUserSelectedModelState,
|
||||
);
|
||||
@@ -120,36 +125,6 @@ export const AIChatEditorSection = () => {
|
||||
|
||||
const { editor, handleSendAndClear } = useAIChatEditor();
|
||||
|
||||
const workspaceSmartModel = aiModels.find(
|
||||
(model) => model.modelId === currentWorkspace?.smartModel,
|
||||
);
|
||||
|
||||
const resolvedDefaultModelId = enabledModels.find(
|
||||
(model) =>
|
||||
model.label === workspaceSmartModel?.label &&
|
||||
model.providerName === workspaceSmartModel?.providerName,
|
||||
)?.modelId;
|
||||
|
||||
const defaultPinnedOption = workspaceSmartModel
|
||||
? {
|
||||
value: null as string | null,
|
||||
label: workspaceSmartModel.label,
|
||||
Icon: getModelIcon(
|
||||
workspaceSmartModel.modelFamily,
|
||||
workspaceSmartModel.providerName,
|
||||
),
|
||||
contextualText: t`default`,
|
||||
}
|
||||
: undefined;
|
||||
|
||||
const smartModelOptions = enabledModels
|
||||
.filter((model) => model.modelId !== resolvedDefaultModelId)
|
||||
.map((model) => ({
|
||||
value: model.modelId as string | null,
|
||||
label: model.label,
|
||||
Icon: getModelIcon(model.modelFamily, model.providerName),
|
||||
}));
|
||||
|
||||
return (
|
||||
<>
|
||||
<AIChatEditorFocusEffect editor={editor} />
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
import { AGENT_CHAT_RETRY_EVENT_NAME } from '@/ai/constants/AgentChatRetryEventName';
|
||||
import { agentChatIsStreamingState } from '@/ai/states/agentChatIsStreamingState';
|
||||
import { dispatchBrowserEvent } from '@/browser-event/utils/dispatchBrowserEvent';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { styled } from '@linaria/react';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { IconAlertCircle, IconRefresh } from 'twenty-ui/display';
|
||||
import { Button } from 'twenty-ui/input';
|
||||
import { IconAlertCircle } from 'twenty-ui/display';
|
||||
import { useContext } from 'react';
|
||||
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
@@ -49,12 +44,6 @@ type AIChatErrorMessageProps = {
|
||||
};
|
||||
|
||||
export const AIChatErrorMessage = ({ error }: AIChatErrorMessageProps) => {
|
||||
const agentChatIsStreaming = useAtomStateValue(agentChatIsStreamingState);
|
||||
|
||||
const handleRetryClick = () => {
|
||||
dispatchBrowserEvent(AGENT_CHAT_RETRY_EVENT_NAME);
|
||||
};
|
||||
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
return (
|
||||
@@ -68,14 +57,6 @@ export const AIChatErrorMessage = ({ error }: AIChatErrorMessageProps) => {
|
||||
{error.message || t`An error occurred while processing your message`}
|
||||
</StyledErrorMessage>
|
||||
</StyledErrorContent>
|
||||
<Button
|
||||
variant="secondary"
|
||||
size="small"
|
||||
Icon={IconRefresh}
|
||||
onClick={handleRetryClick}
|
||||
disabled={agentChatIsStreaming}
|
||||
title={t`Retry`}
|
||||
/>
|
||||
</StyledErrorContainer>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ const StyledMessageText = styled.div<{ isUser?: boolean }>`
|
||||
padding: ${({ isUser }) =>
|
||||
isUser ? `0 ${themeCssVariables.spacing[2]}` : '0'};
|
||||
white-space: normal;
|
||||
width: fit-content;
|
||||
width: ${({ isUser }) => (isUser ? 'fit-content' : '100%')};
|
||||
/* Pre-wrap within the whole container turns every newline between block
|
||||
elements into extra spacing; keep normal flow and only pre-wrap code. */
|
||||
word-wrap: break-word;
|
||||
@@ -189,23 +189,22 @@ export const AIChatMessage = ({
|
||||
<AIChatErrorRenderer error={error} />
|
||||
)}
|
||||
</StyledMessageContainer>
|
||||
{agentChatMessage.parts.length > 0 &&
|
||||
agentChatMessage.metadata?.createdAt && (
|
||||
<StyledMessageFooter className="message-footer">
|
||||
<StyledMessageTimestamp>
|
||||
{beautifyPastDateRelativeToNow(
|
||||
agentChatMessage.metadata?.createdAt,
|
||||
localeCatalog,
|
||||
)}
|
||||
</StyledMessageTimestamp>
|
||||
<LightCopyIconButton
|
||||
copyText={
|
||||
agentChatMessage.parts.find((part) => part.type === 'text')
|
||||
?.text ?? ''
|
||||
}
|
||||
/>
|
||||
</StyledMessageFooter>
|
||||
)}
|
||||
{agentChatMessage.parts.length > 0 && (
|
||||
<StyledMessageFooter className="message-footer">
|
||||
<StyledMessageTimestamp>
|
||||
{beautifyPastDateRelativeToNow(
|
||||
agentChatMessage.metadata?.createdAt ?? new Date(),
|
||||
localeCatalog,
|
||||
)}
|
||||
</StyledMessageTimestamp>
|
||||
<LightCopyIconButton
|
||||
copyText={
|
||||
agentChatMessage.parts.find((part) => part.type === 'text')
|
||||
?.text ?? ''
|
||||
}
|
||||
/>
|
||||
</StyledMessageFooter>
|
||||
)}
|
||||
</StyledMessageBubble>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
import { styled } from '@linaria/react';
|
||||
|
||||
import { agentChatQueuedMessagesComponentFamilyState } from '@/ai/states/agentChatQueuedMessagesComponentFamilyState';
|
||||
import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState';
|
||||
import { useDeleteQueuedMessage } from '@/ai/hooks/useDeleteQueuedMessage';
|
||||
import { useAtomComponentFamilyStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentFamilyStateValue';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { IconX } from 'twenty-ui/display';
|
||||
import { LightIconButton } from 'twenty-ui/input';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledQueueContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
padding: 0 ${themeCssVariables.spacing[3]};
|
||||
`;
|
||||
|
||||
const StyledQueueLabel = styled.div`
|
||||
color: ${themeCssVariables.font.color.light};
|
||||
font-size: ${themeCssVariables.font.size.xs};
|
||||
padding-left: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledQueuedItem = styled.div`
|
||||
align-items: center;
|
||||
background: ${themeCssVariables.background.tertiary};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
color: ${themeCssVariables.font.color.secondary};
|
||||
display: flex;
|
||||
font-size: ${themeCssVariables.font.size.md};
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
justify-content: space-between;
|
||||
padding: ${themeCssVariables.spacing[1]} ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
const StyledQueuedText = styled.span`
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
export const AIChatQueuedMessages = () => {
|
||||
const currentAIChatThread = useAtomStateValue(currentAIChatThreadState);
|
||||
const agentChatQueuedMessages = useAtomComponentFamilyStateValue(
|
||||
agentChatQueuedMessagesComponentFamilyState,
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
const { deleteQueuedMessage } = useDeleteQueuedMessage();
|
||||
|
||||
if (!isDefined(currentAIChatThread) || agentChatQueuedMessages.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<StyledQueueContainer>
|
||||
<StyledQueueLabel>
|
||||
{agentChatQueuedMessages.length} Queued
|
||||
</StyledQueueLabel>
|
||||
{agentChatQueuedMessages.map((message) => {
|
||||
const textPart = message.parts?.find((part) => part.type === 'text');
|
||||
const displayText = textPart && 'text' in textPart ? textPart.text : '';
|
||||
|
||||
return (
|
||||
<StyledQueuedItem key={message.id}>
|
||||
<StyledQueuedText>{displayText}</StyledQueuedText>
|
||||
<LightIconButton
|
||||
Icon={IconX}
|
||||
onClick={() => deleteQueuedMessage(message.id)}
|
||||
size="small"
|
||||
/>
|
||||
</StyledQueuedItem>
|
||||
);
|
||||
})}
|
||||
</StyledQueueContainer>
|
||||
);
|
||||
};
|
||||
@@ -10,6 +10,7 @@ import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState';
|
||||
import { threadIdCreatedFromDraftState } from '@/ai/states/threadIdCreatedFromDraftState';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
|
||||
import { AIChatQueuedMessages } from '@/ai/components/AIChatQueuedMessages';
|
||||
import { AIChatTabMessageList } from '@/ai/components/AIChatTabMessageList';
|
||||
|
||||
const StyledContainer = styled.div<{ isDraggingFile: boolean }>`
|
||||
@@ -51,6 +52,7 @@ export const AIChatTab = () => {
|
||||
{!isDraggingFile && (
|
||||
<>
|
||||
<AIChatTabMessageList />
|
||||
<AIChatQueuedMessages />
|
||||
<AIChatEditorSection key={editorSectionKey} />
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useStore } from 'jotai';
|
||||
import { type AgentChatSubscriptionEvent } from 'twenty-shared/ai';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { AGENT_CHAT_REFETCH_MESSAGES_EVENT_NAME } from '@/ai/constants/AgentChatRefetchMessagesEventName';
|
||||
import { AGENT_CHAT_UNKNOWN_THREAD_ID } from '@/ai/constants/AgentChatUnknownThreadId';
|
||||
import { agentChatFirstLiveSeqState } from '@/ai/states/agentChatFirstLiveSeqState';
|
||||
import { agentChatHandleEventCallbackState } from '@/ai/states/agentChatHandleEventCallbackState';
|
||||
import { AGENT_CHAT_NEW_THREAD_DRAFT_KEY } from '@/ai/states/agentChatDraftsByThreadIdState';
|
||||
import { agentChatFetchedMessagesComponentFamilyState } from '@/ai/states/agentChatFetchedMessagesComponentFamilyState';
|
||||
import { agentChatMessagesLoadingState } from '@/ai/states/agentChatMessagesLoadingState';
|
||||
import { agentChatQueuedMessagesComponentFamilyState } from '@/ai/states/agentChatQueuedMessagesComponentFamilyState';
|
||||
import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState';
|
||||
import { skipMessagesSkeletonUntilLoadedState } from '@/ai/states/skipMessagesSkeletonUntilLoadedState';
|
||||
import { mapDBMessagesToUIMessages } from '@/ai/utils/mapDBMessagesToUIMessages';
|
||||
@@ -20,6 +25,7 @@ import {
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
export const AgentChatMessagesFetchEffect = () => {
|
||||
const store = useStore();
|
||||
const currentAIChatThread = useAtomStateValue(currentAIChatThreadState);
|
||||
|
||||
const isNewThread = useMemo(
|
||||
@@ -42,6 +48,11 @@ export const AgentChatMessagesFetchEffect = () => {
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
|
||||
const setAgentChatQueuedMessages = useSetAtomComponentFamilyState(
|
||||
agentChatQueuedMessagesComponentFamilyState,
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
|
||||
const handleFirstLoad = useCallback(
|
||||
(_data: GetChatMessagesQuery) => {
|
||||
setSkipMessagesSkeletonUntilLoaded(false);
|
||||
@@ -52,9 +63,42 @@ export const AgentChatMessagesFetchEffect = () => {
|
||||
const handleDataLoaded = useCallback(
|
||||
(data: GetChatMessagesQuery) => {
|
||||
const uiMessages = mapDBMessagesToUIMessages(data.chatMessages ?? []);
|
||||
setAgentChatFetchedMessages(uiMessages);
|
||||
setAgentChatFetchedMessages(
|
||||
uiMessages.filter((message) => message.status !== 'queued'),
|
||||
);
|
||||
setAgentChatQueuedMessages(
|
||||
uiMessages.filter((message) => message.status === 'queued'),
|
||||
);
|
||||
|
||||
const catchup = data.chatStreamCatchupChunks;
|
||||
|
||||
if (!isDefined(catchup) || catchup.chunks.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const handleEvent = store.get(agentChatHandleEventCallbackState.atom);
|
||||
|
||||
if (!isDefined(handleEvent)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const firstLiveSeq = store.get(agentChatFirstLiveSeqState.atom);
|
||||
|
||||
for (let index = 0; index < catchup.chunks.length; index++) {
|
||||
const chunkSeq = index + 1;
|
||||
|
||||
if (firstLiveSeq !== null && chunkSeq >= firstLiveSeq) {
|
||||
break;
|
||||
}
|
||||
|
||||
handleEvent({
|
||||
type: 'stream-chunk',
|
||||
chunk: catchup.chunks[index],
|
||||
seq: chunkSeq,
|
||||
} as AgentChatSubscriptionEvent);
|
||||
}
|
||||
},
|
||||
[setAgentChatFetchedMessages],
|
||||
[setAgentChatFetchedMessages, setAgentChatQueuedMessages, store],
|
||||
);
|
||||
|
||||
const handleLoadingChange = useCallback(
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AgentChatAiSdkStreamEffect } from '@/ai/components/AgentChatAiSdkStreamEffect';
|
||||
import { AgentChatStreamSubscriptionEffect } from '@/ai/components/AgentChatStreamSubscriptionEffect';
|
||||
import { AgentChatMessagesFetchEffect } from '@/ai/components/AgentChatMessagesFetchEffect';
|
||||
import { AgentChatSessionStartTimeEffect } from '@/ai/components/AgentChatSessionStartTimeEffect';
|
||||
|
||||
@@ -20,7 +20,7 @@ export const AgentChatProviderContent = ({
|
||||
>
|
||||
<AgentChatThreadInitializationEffect />
|
||||
<AgentChatMessagesFetchEffect />
|
||||
<AgentChatAiSdkStreamEffect />
|
||||
<AgentChatStreamSubscriptionEffect />
|
||||
<AgentChatStreamingPartsDiffSyncEffect />
|
||||
<AgentChatSessionStartTimeEffect />
|
||||
<AgentChatStreamingAutoScrollEffect />
|
||||
|
||||
+28
-67
@@ -1,11 +1,13 @@
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import { isValidUuid } from 'twenty-shared/utils';
|
||||
|
||||
import { AGENT_CHAT_ENSURE_THREAD_FOR_DRAFT_EVENT_NAME } from '@/ai/constants/AgentChatEnsureThreadForDraftEventName';
|
||||
import { AGENT_CHAT_REFETCH_MESSAGES_EVENT_NAME } from '@/ai/constants/AgentChatRefetchMessagesEventName';
|
||||
import { useAgentChat } from '@/ai/hooks/useAgentChat';
|
||||
import { useAgentChatSubscription } from '@/ai/hooks/useAgentChatSubscription';
|
||||
import { useCreateAgentChatThread } from '@/ai/hooks/useCreateAgentChatThread';
|
||||
import { useEnsureAgentChatThreadExistsForDraft } from '@/ai/hooks/useEnsureAgentChatThreadExistsForDraft';
|
||||
import { useEnsureAgentChatThreadIdForSend } from '@/ai/hooks/useEnsureAgentChatThreadIdForSend';
|
||||
import { agentChatDisplayedThreadState } from '@/ai/states/agentChatDisplayedThreadState';
|
||||
import { agentChatErrorState } from '@/ai/states/agentChatErrorState';
|
||||
import { agentChatFetchedMessagesComponentFamilyState } from '@/ai/states/agentChatFetchedMessagesComponentFamilyState';
|
||||
import { agentChatIsInitialScrollPendingOnThreadChangeState } from '@/ai/states/agentChatIsInitialScrollPendingOnThreadChangeState';
|
||||
import { agentChatIsLoadingState } from '@/ai/states/agentChatIsLoadingState';
|
||||
@@ -14,23 +16,14 @@ import { agentChatMessagesComponentFamilyState } from '@/ai/states/agentChatMess
|
||||
import { agentChatMessagesLoadingState } from '@/ai/states/agentChatMessagesLoadingState';
|
||||
import { agentChatThreadsLoadingState } from '@/ai/states/agentChatThreadsLoadingState';
|
||||
import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState';
|
||||
import { mergeAgentChatFetchedAndStreamingMessages } from '@/ai/utils/mergeAgentChatFetchedAndStreamingMessages';
|
||||
import { normalizeAiSdkError } from '@/ai/utils/normalizeAiSdkError';
|
||||
import { useListenToBrowserEvent } from '@/browser-event/hooks/useListenToBrowserEvent';
|
||||
import { dispatchBrowserEvent } from '@/browser-event/utils/dispatchBrowserEvent';
|
||||
import { useAtomComponentFamilyStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentFamilyStateValue';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { useSetAtomComponentFamilyState } from '@/ui/utilities/state/jotai/hooks/useSetAtomComponentFamilyState';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import { isValidUuid } from 'twenty-shared/utils';
|
||||
|
||||
export const AgentChatAiSdkStreamEffect = () => {
|
||||
export const AgentChatStreamSubscriptionEffect = () => {
|
||||
const currentAIChatThread = useAtomStateValue(currentAIChatThreadState);
|
||||
const agentChatFetchedMessages = useAtomComponentFamilyStateValue(
|
||||
agentChatFetchedMessagesComponentFamilyState,
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
|
||||
const { createChatThread } = useCreateAgentChatThread();
|
||||
|
||||
@@ -45,47 +38,27 @@ export const AgentChatAiSdkStreamEffect = () => {
|
||||
onBrowserEvent: ensureThreadExistsForDraft,
|
||||
});
|
||||
|
||||
const onStreamingComplete = useCallback(() => {
|
||||
dispatchBrowserEvent(AGENT_CHAT_REFETCH_MESSAGES_EVENT_NAME);
|
||||
}, []);
|
||||
useAgentChat(ensureThreadIdForSend);
|
||||
|
||||
const chatState = useAgentChat(
|
||||
agentChatFetchedMessages,
|
||||
ensureThreadIdForSend,
|
||||
onStreamingComplete,
|
||||
const subscriptionThreadId =
|
||||
currentAIChatThread !== null && isValidUuid(currentAIChatThread)
|
||||
? currentAIChatThread
|
||||
: null;
|
||||
|
||||
useAgentChatSubscription(subscriptionThreadId);
|
||||
|
||||
const agentChatFetchedMessages = useAtomComponentFamilyStateValue(
|
||||
agentChatFetchedMessagesComponentFamilyState,
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
|
||||
// Attempt to resume an active stream when navigating to an existing
|
||||
// thread. We call resumeStream() manually instead of using useChat's
|
||||
// resume:true option so that the stop button can coexist with
|
||||
// resumption (resume:true is incompatible with abort signals).
|
||||
// Only resume when the thread already has fetched messages — this
|
||||
// avoids resuming on newly created threads where the thread ID
|
||||
// transitions from a placeholder to a real UUID mid-conversation.
|
||||
useEffect(() => {
|
||||
if (
|
||||
currentAIChatThread === null ||
|
||||
!isValidUuid(currentAIChatThread) ||
|
||||
agentChatFetchedMessages.length === 0 ||
|
||||
chatState.status === 'streaming' ||
|
||||
chatState.status === 'submitted'
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
chatState.resumeStream();
|
||||
// We intentionally omit chatState.resumeStream and status from deps
|
||||
// to avoid resume loops. We do include agentChatFetchedMessages.length
|
||||
// so that resume fires once messages are fetched (they may arrive
|
||||
// after the thread ID is set).
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [currentAIChatThread, agentChatFetchedMessages.length]);
|
||||
|
||||
const setAgentChatMessages = useSetAtomComponentFamilyState(
|
||||
agentChatMessagesComponentFamilyState,
|
||||
{ threadId: currentAIChatThread },
|
||||
);
|
||||
|
||||
const agentChatIsStreaming = useAtomStateValue(agentChatIsStreamingState);
|
||||
|
||||
const agentChatDisplayedThread = useAtomStateValue(
|
||||
agentChatDisplayedThreadState,
|
||||
);
|
||||
@@ -99,22 +72,21 @@ export const AgentChatAiSdkStreamEffect = () => {
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const mergedMessages = mergeAgentChatFetchedAndStreamingMessages(
|
||||
agentChatFetchedMessages,
|
||||
chatState.messages,
|
||||
);
|
||||
if (agentChatIsStreaming) {
|
||||
return;
|
||||
}
|
||||
|
||||
setAgentChatMessages(mergedMessages);
|
||||
setAgentChatMessages(agentChatFetchedMessages);
|
||||
|
||||
if (currentAIChatThread !== agentChatDisplayedThread) {
|
||||
if (mergedMessages.length > 0) {
|
||||
if (agentChatFetchedMessages.length > 0) {
|
||||
setAgentChatIsInitialScrollPendingOnThreadChange(true);
|
||||
}
|
||||
setAgentChatDisplayedThread(currentAIChatThread);
|
||||
}
|
||||
}, [
|
||||
agentChatFetchedMessages,
|
||||
chatState.messages,
|
||||
agentChatIsStreaming,
|
||||
setAgentChatMessages,
|
||||
currentAIChatThread,
|
||||
agentChatDisplayedThread,
|
||||
@@ -130,31 +102,20 @@ export const AgentChatAiSdkStreamEffect = () => {
|
||||
agentChatMessagesLoadingState,
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const handleLoadingChange = useCallback(() => {
|
||||
const combinedIsLoading =
|
||||
chatState.isLoading ||
|
||||
agentChatMessagesLoading ||
|
||||
agentChatThreadsLoading;
|
||||
agentChatMessagesLoading || agentChatThreadsLoading;
|
||||
|
||||
setAgentChatIsLoading(combinedIsLoading);
|
||||
}, [
|
||||
chatState.isLoading,
|
||||
agentChatMessagesLoading,
|
||||
agentChatThreadsLoading,
|
||||
setAgentChatIsLoading,
|
||||
]);
|
||||
|
||||
const setAgentChatError = useSetAtomState(agentChatErrorState);
|
||||
|
||||
useEffect(() => {
|
||||
setAgentChatError(normalizeAiSdkError(chatState.error));
|
||||
}, [chatState.error, setAgentChatError]);
|
||||
|
||||
const setAgentChatIsStreaming = useSetAtomState(agentChatIsStreamingState);
|
||||
|
||||
useEffect(() => {
|
||||
setAgentChatIsStreaming(chatState.status === 'streaming');
|
||||
}, [chatState.status, setAgentChatIsStreaming]);
|
||||
handleLoadingChange();
|
||||
}, [handleLoadingChange]);
|
||||
|
||||
return null;
|
||||
};
|
||||
+80
-70
@@ -1,25 +1,24 @@
|
||||
import { useStore } from 'jotai';
|
||||
import { useCallback } from 'react';
|
||||
import { useAtomValue, useStore } from 'jotai';
|
||||
import { useEffect } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { CHAT_THREADS_PAGE_SIZE } from '@/ai/constants/ChatThreads';
|
||||
import {
|
||||
AGENT_CHAT_NEW_THREAD_DRAFT_KEY,
|
||||
agentChatDraftsByThreadIdState,
|
||||
} from '@/ai/states/agentChatDraftsByThreadIdState';
|
||||
import { agentChatInputState } from '@/ai/states/agentChatInputState';
|
||||
import { agentChatThreadsLoadingState } from '@/ai/states/agentChatThreadsLoadingState';
|
||||
import { agentChatThreadsSelector } from '@/ai/states/agentChatThreadsSelector';
|
||||
import { agentChatUsageState } from '@/ai/states/agentChatUsageState';
|
||||
import { currentAIChatThreadState } from '@/ai/states/currentAIChatThreadState';
|
||||
import { currentAIChatThreadTitleState } from '@/ai/states/currentAIChatThreadTitleState';
|
||||
import { hasInitializedAgentChatThreadsState } from '@/ai/states/hasInitializedAgentChatThreadsState';
|
||||
import { hasTriggeredCreateForDraftState } from '@/ai/states/hasTriggeredCreateForDraftState';
|
||||
import { useQueryWithCallbacks } from '@/apollo/hooks/useQueryWithCallbacks';
|
||||
import { metadataStoreState } from '@/metadata-store/states/metadataStoreState';
|
||||
import { type FlatAgentChatThread } from '@/metadata-store/types/FlatAgentChatThread';
|
||||
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||
import {
|
||||
type GetChatThreadsQuery,
|
||||
GetChatThreadsDocument,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
export const AgentChatThreadInitializationEffect = () => {
|
||||
const currentAIChatThread = useAtomStateValue(currentAIChatThreadState);
|
||||
@@ -33,71 +32,82 @@ export const AgentChatThreadInitializationEffect = () => {
|
||||
agentChatThreadsLoadingState,
|
||||
);
|
||||
const store = useStore();
|
||||
|
||||
const handleFirstLoad = useCallback(
|
||||
(data: GetChatThreadsQuery) => {
|
||||
const threads = data.chatThreads.edges.map((edge) => edge.node);
|
||||
|
||||
if (threads.length > 0) {
|
||||
const firstThread = threads[0];
|
||||
const draftForThread =
|
||||
store.get(agentChatDraftsByThreadIdState.atom)[firstThread.id] ?? '';
|
||||
|
||||
setCurrentAIChatThread(firstThread.id);
|
||||
setAgentChatInput(draftForThread);
|
||||
setCurrentAIChatThreadTitle(firstThread.title ?? null);
|
||||
|
||||
const hasUsageData =
|
||||
(firstThread.conversationSize ?? 0) > 0 &&
|
||||
isDefined(firstThread.contextWindowTokens);
|
||||
|
||||
setAgentChatUsage(
|
||||
hasUsageData
|
||||
? {
|
||||
lastMessage: null,
|
||||
conversationSize: firstThread.conversationSize ?? 0,
|
||||
contextWindowTokens: firstThread.contextWindowTokens ?? 0,
|
||||
inputTokens: firstThread.totalInputTokens,
|
||||
outputTokens: firstThread.totalOutputTokens,
|
||||
inputCredits: firstThread.totalInputCredits,
|
||||
outputCredits: firstThread.totalOutputCredits,
|
||||
}
|
||||
: null,
|
||||
);
|
||||
} else {
|
||||
store.set(hasTriggeredCreateForDraftState.atom, false);
|
||||
setCurrentAIChatThread(AGENT_CHAT_NEW_THREAD_DRAFT_KEY);
|
||||
setAgentChatInput(
|
||||
store.get(agentChatDraftsByThreadIdState.atom)[
|
||||
AGENT_CHAT_NEW_THREAD_DRAFT_KEY
|
||||
] ?? '',
|
||||
);
|
||||
setCurrentAIChatThreadTitle(null);
|
||||
setAgentChatUsage(null);
|
||||
}
|
||||
},
|
||||
[
|
||||
setCurrentAIChatThread,
|
||||
setAgentChatInput,
|
||||
setCurrentAIChatThreadTitle,
|
||||
setAgentChatUsage,
|
||||
store,
|
||||
],
|
||||
const agentChatThreads = useAtomStateValue(agentChatThreadsSelector);
|
||||
const storeEntry = useAtomValue(
|
||||
metadataStoreState.atomFamily('agentChatThreads'),
|
||||
);
|
||||
const [hasInitializedAgentChatThreads, setHasInitializedAgentChatThreads] =
|
||||
useAtomState(hasInitializedAgentChatThreadsState);
|
||||
|
||||
const handleLoadingChange = useCallback(
|
||||
(loading: boolean) => {
|
||||
setAgentChatThreadsLoading(loading);
|
||||
},
|
||||
[setAgentChatThreadsLoading],
|
||||
);
|
||||
useEffect(() => {
|
||||
setAgentChatThreadsLoading(storeEntry.status === 'empty');
|
||||
}, [storeEntry.status, setAgentChatThreadsLoading]);
|
||||
|
||||
useQueryWithCallbacks(GetChatThreadsDocument, {
|
||||
variables: { paging: { first: CHAT_THREADS_PAGE_SIZE } },
|
||||
skip: isDefined(currentAIChatThread),
|
||||
onFirstLoad: handleFirstLoad,
|
||||
onLoadingChange: handleLoadingChange,
|
||||
});
|
||||
useEffect(() => {
|
||||
if (hasInitializedAgentChatThreads || isDefined(currentAIChatThread)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (storeEntry.status === 'empty') {
|
||||
return;
|
||||
}
|
||||
|
||||
setHasInitializedAgentChatThreads(true);
|
||||
|
||||
const sortedThreads = agentChatThreads.toSorted(
|
||||
(a: FlatAgentChatThread, b: FlatAgentChatThread) =>
|
||||
new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),
|
||||
);
|
||||
|
||||
if (sortedThreads.length > 0) {
|
||||
const firstThread = sortedThreads[0];
|
||||
const draftForThread =
|
||||
store.get(agentChatDraftsByThreadIdState.atom)[firstThread.id] ?? '';
|
||||
|
||||
setCurrentAIChatThread(firstThread.id);
|
||||
setAgentChatInput(draftForThread);
|
||||
setCurrentAIChatThreadTitle(firstThread.title ?? null);
|
||||
|
||||
const hasUsageData =
|
||||
(firstThread.conversationSize ?? 0) > 0 &&
|
||||
isDefined(firstThread.contextWindowTokens);
|
||||
|
||||
setAgentChatUsage(
|
||||
hasUsageData
|
||||
? {
|
||||
lastMessage: null,
|
||||
conversationSize: firstThread.conversationSize ?? 0,
|
||||
contextWindowTokens: firstThread.contextWindowTokens ?? 0,
|
||||
inputTokens: firstThread.totalInputTokens,
|
||||
outputTokens: firstThread.totalOutputTokens,
|
||||
inputCredits: firstThread.totalInputCredits,
|
||||
outputCredits: firstThread.totalOutputCredits,
|
||||
}
|
||||
: null,
|
||||
);
|
||||
} else {
|
||||
store.set(hasTriggeredCreateForDraftState.atom, false);
|
||||
setCurrentAIChatThread(AGENT_CHAT_NEW_THREAD_DRAFT_KEY);
|
||||
setAgentChatInput(
|
||||
store.get(agentChatDraftsByThreadIdState.atom)[
|
||||
AGENT_CHAT_NEW_THREAD_DRAFT_KEY
|
||||
] ?? '',
|
||||
);
|
||||
setCurrentAIChatThreadTitle(null);
|
||||
setAgentChatUsage(null);
|
||||
}
|
||||
}, [
|
||||
agentChatThreads,
|
||||
currentAIChatThread,
|
||||
hasInitializedAgentChatThreads,
|
||||
setHasInitializedAgentChatThreads,
|
||||
storeEntry.status,
|
||||
setCurrentAIChatThread,
|
||||
setAgentChatInput,
|
||||
setCurrentAIChatThreadTitle,
|
||||
setAgentChatUsage,
|
||||
store,
|
||||
]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
+5
-4
@@ -1,13 +1,13 @@
|
||||
import { styled } from '@linaria/react';
|
||||
import { aiModelsState } from '@/client-config/states/aiModelsState';
|
||||
import { InputLabel } from '@/ui/input/components/InputLabel';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { styled } from '@linaria/react';
|
||||
import { t } from '@lingui/core/macro';
|
||||
import { useContext } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { IconBrandX, IconWorld } from 'twenty-ui/display';
|
||||
import { Checkbox } from 'twenty-ui/input';
|
||||
import { Section } from 'twenty-ui/layout';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { useContext } from 'react';
|
||||
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledCheckboxContainer = styled.div<{ disabled: boolean }>`
|
||||
@@ -15,8 +15,9 @@ const StyledCheckboxContainer = styled.div<{ disabled: boolean }>`
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
|
||||
display: flex;
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
justify-content: space-between;
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
padding-inline: ${themeCssVariables.spacing[2]};
|
||||
transition: background-color
|
||||
calc(${themeCssVariables.animation.duration.normal} * 1s) ease;
|
||||
|
||||
@@ -8,13 +8,13 @@ import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
import { CodeExecutionDisplay } from '@/ai/components/CodeExecutionDisplay';
|
||||
import { ShimmeringText } from '@/ai/components/ShimmeringText';
|
||||
import { getToolIcon } from '@/ai/utils/getToolIcon';
|
||||
import { ToolOutputMessageSchema } from '@/ai/schemas/toolOutputMessageSchema';
|
||||
import { ToolOutputResultSchema } from '@/ai/schemas/toolOutputResultSchema';
|
||||
import {
|
||||
getToolDisplayMessage,
|
||||
resolveToolInput,
|
||||
} from '@/ai/utils/getToolDisplayMessage';
|
||||
import { ToolOutputMessageSchema } from '@/ai/schemas/toolOutputMessageSchema';
|
||||
import { ToolOutputResultSchema } from '@/ai/schemas/toolOutputResultSchema';
|
||||
import { getToolIcon } from '@/ai/utils/getToolIcon';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { type ToolUIPart } from 'ai';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
@@ -152,9 +152,15 @@ export const ToolStepRenderer = ({
|
||||
const isExpandable = isDefined(output) || hasError;
|
||||
const ToolIcon = getToolIcon(toolName);
|
||||
|
||||
const outputResult = ToolOutputResultSchema.safeParse(output);
|
||||
const unwrappedOutput =
|
||||
rawToolName === 'execute_tool' && outputResult.success
|
||||
? outputResult.data.result
|
||||
: output;
|
||||
|
||||
if (toolName === 'code_interpreter') {
|
||||
const codeInput = toolInput as { code?: string } | undefined;
|
||||
const codeOutput = output as {
|
||||
const codeOutput = unwrappedOutput as {
|
||||
result?: {
|
||||
stdout?: string;
|
||||
stderr?: string;
|
||||
@@ -168,7 +174,7 @@ export const ToolStepRenderer = ({
|
||||
};
|
||||
} | null;
|
||||
|
||||
const isRunning = !output && !hasError && isStreaming;
|
||||
const isRunning = !unwrappedOutput && !hasError && isStreaming;
|
||||
|
||||
return (
|
||||
<CodeExecutionDisplay
|
||||
@@ -210,12 +216,6 @@ export const ToolStepRenderer = ({
|
||||
);
|
||||
}
|
||||
|
||||
const outputResult = ToolOutputResultSchema.safeParse(output);
|
||||
const unwrappedOutput =
|
||||
rawToolName === 'execute_tool' && outputResult.success
|
||||
? outputResult.data.result
|
||||
: output;
|
||||
|
||||
const unwrappedResult = ToolOutputResultSchema.safeParse(unwrappedOutput);
|
||||
const unwrappedMessage = ToolOutputMessageSchema.safeParse(unwrappedOutput);
|
||||
|
||||
|
||||
+57
-3
@@ -109,7 +109,7 @@ describe('AIChatAssistantMessageRenderer', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should keep code interpreter rendering path unchanged and out of thinking grouping', () => {
|
||||
it('should show data-code-execution during streaming and hide the tool part to avoid duplicates', () => {
|
||||
const messageParts = [
|
||||
{
|
||||
type: 'tool-code_interpreter',
|
||||
@@ -134,11 +134,65 @@ describe('AIChatAssistantMessageRenderer', () => {
|
||||
|
||||
renderAssistantRenderer(messageParts);
|
||||
|
||||
expect(screen.queryByTestId('thinking-steps-display')).toBeNull();
|
||||
expect(screen.queryByTestId('tool-step-renderer')).toBeNull();
|
||||
expect(screen.getByTestId('code-execution-display')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('should render tool-execute_tool wrapping code_interpreter via ToolStepRenderer after refetch', () => {
|
||||
const messageParts = [
|
||||
{
|
||||
type: 'tool-execute_tool',
|
||||
toolCallId: 'tool-exec-1',
|
||||
input: {
|
||||
toolName: 'code_interpreter',
|
||||
arguments: { code: 'print(42)' },
|
||||
},
|
||||
output: {
|
||||
result: { stdout: '42', stderr: '', exitCode: 0, files: [] },
|
||||
},
|
||||
state: 'output-available',
|
||||
},
|
||||
] as ExtendedUIMessagePart[];
|
||||
|
||||
renderAssistantRenderer(messageParts);
|
||||
|
||||
expect(screen.queryByTestId('thinking-steps-display')).toBeNull();
|
||||
expect(screen.getByTestId('tool-step-renderer')).toHaveTextContent(
|
||||
'tool-code_interpreter',
|
||||
'tool-execute_tool',
|
||||
);
|
||||
expect(screen.queryByTestId('code-execution-display')).toBeNull();
|
||||
});
|
||||
|
||||
it('should hide execute_tool wrapping code_interpreter when data-code-execution parts exist', () => {
|
||||
const messageParts = [
|
||||
{
|
||||
type: 'tool-execute_tool',
|
||||
toolCallId: 'tool-exec-1',
|
||||
input: {
|
||||
toolName: 'code_interpreter',
|
||||
arguments: { code: 'print(42)' },
|
||||
},
|
||||
output: null,
|
||||
state: 'call',
|
||||
},
|
||||
{
|
||||
type: 'data-code-execution',
|
||||
data: {
|
||||
executionId: 'exec-2',
|
||||
state: 'running',
|
||||
code: 'print(42)',
|
||||
language: 'python',
|
||||
stdout: '42',
|
||||
stderr: '',
|
||||
files: [],
|
||||
},
|
||||
},
|
||||
] as ExtendedUIMessagePart[];
|
||||
|
||||
renderAssistantRenderer(messageParts);
|
||||
|
||||
expect(screen.queryByTestId('tool-step-renderer')).toBeNull();
|
||||
expect(screen.getByTestId('code-execution-display')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('should render non-thinking parts directly when there are no thinking steps', () => {
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export const AGENT_CHAT_INSTANCE_ID = 'agentChatComponentInstance';
|
||||
@@ -1 +0,0 @@
|
||||
export const AGENT_CHAT_RETRY_EVENT_NAME = 'agent-chat-retry' as const;
|
||||
@@ -0,0 +1,7 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const DELETE_QUEUED_CHAT_MESSAGE = gql`
|
||||
mutation DeleteQueuedChatMessage($messageId: UUID!) {
|
||||
deleteQueuedChatMessage(messageId: $messageId)
|
||||
}
|
||||
`;
|
||||
@@ -0,0 +1,23 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const SEND_CHAT_MESSAGE = gql`
|
||||
mutation SendChatMessage(
|
||||
$threadId: UUID!
|
||||
$text: String!
|
||||
$messageId: UUID!
|
||||
$browsingContext: JSON
|
||||
$modelId: String
|
||||
) {
|
||||
sendChatMessage(
|
||||
threadId: $threadId
|
||||
text: $text
|
||||
messageId: $messageId
|
||||
browsingContext: $browsingContext
|
||||
modelId: $modelId
|
||||
) {
|
||||
messageId
|
||||
queued
|
||||
streamId
|
||||
}
|
||||
}
|
||||
`;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user