Compare commits

..
Author SHA1 Message Date
Félix MalfaitandGitHub aac099f2e8 Merge branch 'main' into feat/seed-apps-for-dev-workspaces 2026-03-12 08:55:50 +01:00
f262437da6 Refactor dev environment setup with auto-detection and Docker support (#18564)
## Summary
Completely rewrites the development environment setup script to be more
robust, idempotent, and flexible. The new implementation auto-detects
available services (local PostgreSQL/Redis vs Docker), provides multiple
operational modes, and includes comprehensive health checks and error
handling.

## Key Changes

- **Enhanced setup script** (`packages/twenty-utils/setup-dev-env.sh`):
- Added auto-detection logic to prefer local services (PostgreSQL 16,
Redis) over Docker
  - Implemented service health checks with retry logic (30s timeout)
- Added command-line flags: `--docker` (force Docker), `--down` (stop
services), `--reset` (wipe data)
- Improved error handling with `set -euo pipefail` and descriptive
failure messages
- Added helper functions for service detection, startup, and status
checking
  - Fallback to manual `.env` file copying if Nx is unavailable
  - Enhanced output with clear status messages and usage instructions

- **New Docker Compose file**
(`packages/twenty-docker/docker-compose.dev.yml`):
  - Dedicated development infrastructure file (PostgreSQL 16 + Redis 7)
  - Includes health checks for both services
  - Configured with appropriate restart policies and volume management
  - Separate from production compose configuration

- **Updated documentation** (`CLAUDE.md`):
- Clarified that all environments (CI, local, Claude Code, Cursor) use
the same setup script
  - Documented new command-line flags and their purposes
- Noted that CI workflows manage services independently via GitHub
Actions

- **Updated Cursor environment config** (`.cursor/environment.json`):
- Simplified to use the new unified setup script instead of complex
inline commands

## Implementation Details

The script now follows a clear three-phase approach:
1. **Service startup** — Auto-detects and starts PostgreSQL and Redis
(local or Docker)
2. **Database creation** — Creates 'default' and 'test' databases
3. **Environment configuration** — Sets up `.env` files via Nx or direct
file copy

The auto-detection logic prioritizes local services for better
performance while gracefully falling back to Docker if local services
aren't available. All operations are idempotent and safe to run multiple
times.

https://claude.ai/code/session_01UDxa2Kp1ub9tTL3pnpBVFs

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-12 08:43:58 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
15d0970f72 Bump @swc/core from 1.15.11 to 1.15.18 (#18570)
Bumps
[@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core)
from 1.15.11 to 1.15.18.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/swc-project/swc/blob/main/CHANGELOG.md"><code>@​swc/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>[1.15.18] - 2026-03-01</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>(html/wasm)</strong> Publish <code>@​swc/html-wasm</code>
for nodejs (<a
href="https://redirect.github.com/swc-project/swc/issues/11601">#11601</a>)
(<a
href="https://github.com/swc-project/swc/commit/bd443f582c553e9d898a1d5e7395abaad60b26d2">bd443f5</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>
<p>Add AGENTS note about next-gen ast (<a
href="https://redirect.github.com/swc-project/swc/issues/11592">#11592</a>)
(<a
href="https://github.com/swc-project/swc/commit/80b4be872d85dc82cbb6e84c91fe102d807a2780">80b4be8</a>)</p>
</li>
<li>
<p>Add typescript-eslint AST compatibility note (<a
href="https://redirect.github.com/swc-project/swc/issues/11598">#11598</a>)
(<a
href="https://github.com/swc-project/swc/commit/c7bfebec4fb691e6e49f3c3b7b257be178e7f238">c7bfebe</a>)</p>
</li>
</ul>
<h3>Features</h3>
<ul>
<li>
<p><strong>(es/ast)</strong> Add runtime arena crate and bootstrap
swc_es_ast (<a
href="https://redirect.github.com/swc-project/swc/issues/11588">#11588</a>)
(<a
href="https://github.com/swc-project/swc/commit/7a06d967e43fe2f84078fc241bc655b41450d2c1">7a06d96</a>)</p>
</li>
<li>
<p><strong>(es/parser)</strong> Add <code>swc_es_parser</code> (<a
href="https://redirect.github.com/swc-project/swc/issues/11593">#11593</a>)
(<a
href="https://github.com/swc-project/swc/commit/f11fd705ee84909f6b0f984b1b5fc35abf73ec05">f11fd70</a>)</p>
</li>
</ul>
<h3>Ci</h3>
<ul>
<li>Triage main CI breakage (<a
href="https://redirect.github.com/swc-project/swc/issues/11589">#11589</a>)
(<a
href="https://github.com/swc-project/swc/commit/075af578c46c0bfdb74c450c157d0e1753024a36">075af57</a>)</li>
</ul>
<h2>[1.15.17] - 2026-02-26</h2>
<h3>Documentation</h3>
<ul>
<li>Add submodule update step before test runs (<a
href="https://redirect.github.com/swc-project/swc/issues/11576">#11576</a>)
(<a
href="https://github.com/swc-project/swc/commit/81b22c31d1acb447caae1a2d2bd530b2e6a40c26">81b22c3</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>
<p><strong>(bindings)</strong> Add html wasm binding and publish wiring
(<a
href="https://redirect.github.com/swc-project/swc/issues/11587">#11587</a>)
(<a
href="https://github.com/swc-project/swc/commit/b3869c3ae2a592d4539f4cbfbabeaf615e55d69e">b3869c3</a>)</p>
</li>
<li>
<p><strong>(sourcemap)</strong> Support safe scopes round-trip metadata
(<a
href="https://redirect.github.com/swc-project/swc/issues/11581">#11581</a>)
(<a
href="https://github.com/swc-project/swc/commit/de2a348daed80e47c75dabaf2f0ce945d850210a">de2a348</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/swc-project/swc/commit/7cb1be24a7857a94abd7f3cfe9709d22ac314379"><code>7cb1be2</code></a>
chore: Publish <code>1.15.18</code> with <code>swc_core</code>
<code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/2821ed060a6f59a168ab8c60cde08ddc3e5cf0d5"><code>2821ed0</code></a>
chore: Publish <code>1.15.18-nightly-20260301.1</code> with
<code>swc_core</code> <code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/08806dfffa4361414f1aad647bc1a9206ac29dbc"><code>08806df</code></a>
chore: Publish <code>1.15.17</code> with <code>swc_core</code>
<code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/2fdd5ee6b17733583ba7cf5102534826d0d853bf"><code>2fdd5ee</code></a>
chore: Publish <code>1.15.17-nightly-20260226.1</code> with
<code>swc_core</code> <code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/316e5035014020d6430262b4fc5e1b7cf4be9980"><code>316e503</code></a>
chore: Publish <code>1.15.16-nightly-20260226.1</code> with
<code>swc_core</code> <code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/fb0ce2af0c6a88cd74bb3e55434f3081e7a5aa75"><code>fb0ce2a</code></a>
chore: Publish <code>1.15.15-nightly-20260226.1</code> with
<code>swc_core</code> <code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/5f8fc7bac5be0e25a674455c581cea476aa2f6c7"><code>5f8fc7b</code></a>
chore: Publish <code>1.15.14-nightly-20260225.1</code> with
<code>swc_core</code> <code>v58.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/2e0ea183f4a92735243a02829d8e02237aa94de3"><code>2e0ea18</code></a>
chore: Publish <code>1.15.13</code> with <code>swc_core</code>
<code>v57.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/4e7a14c3a28ff667bb1aaac6e4aab83af626b173"><code>4e7a14c</code></a>
chore: Publish <code>1.15.13-nightly-20260223.1</code> with
<code>swc_core</code> <code>v57.0.1</code></li>
<li><a
href="https://github.com/swc-project/swc/commit/efccf48e991f21211377239ece3d7c1475eaae84"><code>efccf48</code></a>
chore: Publish <code>1.15.12-nightly-20260222.1</code> with
<code>swc_core</code> <code>v57.0.1</code></li>
<li>See full diff in <a
href="https://github.com/swc-project/swc/commits/v1.15.18/packages/core">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-12 07:16:45 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1adc325887 Bump path-to-regexp from 8.2.0 to 8.3.0 (#18571)
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from
8.2.0 to 8.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pillarjs/path-to-regexp/releases">path-to-regexp's
releases</a>.</em></p>
<blockquote>
<h2>8.3.0</h2>
<p><strong>Changed</strong></p>
<ul>
<li>Add custom error class (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/398">#398</a>)
2a7f2a4</li>
<li>Allow plain objects for <code>TokenData</code> (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/391">#391</a>)
687a9bb</li>
<li>Escape text should escape backslash (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/390">#390</a>)
a4a8552</li>
<li>Improved error messages and stack size (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/363">#363</a>)
a6bdf40</li>
</ul>
<p><strong>Other</strong></p>
<ul>
<li>Minifying the parser
<ul>
<li>PR (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/401">#401</a>)
9df2448</li>
<li>PR (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/395">#395</a>)
4a91505</li>
<li>Shaving some bytes  d63f44b</li>
<li>Remove optional operator  973d15c</li>
</ul>
</li>
</ul>
<p><a
href="https://github.com/pillarjs/path-to-regexp/compare/v8.2.0...v8.3.0">https://github.com/pillarjs/path-to-regexp/compare/v8.2.0...v8.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/c4f5b3fc10782a5de2bee55c3e40e5af890c9cad"><code>c4f5b3f</code></a>
8.3.0</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/6587c812746cba94855867612f3a719bb25f794e"><code>6587c81</code></a>
Move parameter name errors up in docs (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/402">#402</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/9df2448fdfca9d2957cf47a1777b5deda9be18cf"><code>9df2448</code></a>
Remove more bytes from parser (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/401">#401</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/012a54a83c9e7fe77d1ee436c67048bca0512aca"><code>012a54a</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/403">#403</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/9385f7df7406b4607c3d18dfb276d5371f885418"><code>9385f7d</code></a>
Remove engines from package (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/399">#399</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/2a7f2a4e9ba42eee41aa9d7a1a69eddb43b79a61"><code>2a7f2a4</code></a>
Add custom error class (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/398">#398</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/265a2a7a26916a18fc6d1c5936c878a32a0fedb7"><code>265a2a7</code></a>
100% test coverage (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/396">#396</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/4a915059a843dfdd122a0c4936837c7fdda2d4ee"><code>4a91505</code></a>
Reduce bytes in parse function (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/395">#395</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/687a9bbc735245b2688c17db7e9fe86013ea0c77"><code>687a9bb</code></a>
Allow plain objects for <code>TokenData</code> (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/391">#391</a>)</li>
<li><a
href="https://github.com/pillarjs/path-to-regexp/commit/a4a8552c9fb4449c470fb9ead458df1c89cadb72"><code>a4a8552</code></a>
Escape text should escape backslash (<a
href="https://redirect.github.com/pillarjs/path-to-regexp/issues/390">#390</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pillarjs/path-to-regexp/compare/v8.2.0...v8.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=path-to-regexp&package-manager=npm_and_yarn&previous-version=8.2.0&new-version=8.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-12 06:50:07 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5726bd6e17 Bump oxlint from 1.51.0 to 1.53.0 (#18569)
Bumps [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)
from 1.51.0 to 1.53.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/releases">oxlint's
releases</a>.</em></p>
<blockquote>
<h2>oxlint v1.27.0 &amp;&amp; oxfmt v0.12.0</h2>
<h1>Oxlint v1.27.0</h1>
<h3>🚀 Features</h3>
<ul>
<li>222a8f0 linter/plugins: Implement
<code>SourceCode#isSpaceBetween</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15498">#15498</a>)
(overlookmotel)</li>
<li>2f9735d linter/plugins: Implement
<code>context.languageOptions</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15486">#15486</a>)
(overlookmotel)</li>
<li>bc731ff linter/plugins: Stub out all <code>Context</code> APIs (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15479">#15479</a>)
(overlookmotel)</li>
<li>5822cb4 linter/plugins: Add <code>extend</code> method to
<code>FILE_CONTEXT</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15477">#15477</a>)
(overlookmotel)</li>
<li>7b1e6f3 apps: Add pure rust binaries and release to github (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15469">#15469</a>)
(Boshen)</li>
<li>2a89b43 linter: Introduce debug assertions after fixes to assert
validity (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15389">#15389</a>)
(camc314)</li>
<li>ad3c45a editor: Add <code>oxc.path.node</code> option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15040">#15040</a>)
(Sysix)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>6f3cd77 linter/no-var: Incorrect warning for blocks (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15504">#15504</a>)
(Hamir Mahal)</li>
<li>6957fb9 linter/plugins: Do not allow access to
<code>Context#id</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15489">#15489</a>)
(overlookmotel)</li>
<li>7409630 linter/plugins: Allow access to <code>cwd</code> in
<code>createOnce</code> in ESLint interop mode (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15488">#15488</a>)
(overlookmotel)</li>
<li>732205e parser: Reject <code>using</code> / <code>await using</code>
in a switch <code>case</code> / <code>default</code> clause (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15225">#15225</a>)
(sapphi-red)</li>
<li>a17ca32 linter/plugins: Replace <code>Context</code> class (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15448">#15448</a>)
(overlookmotel)</li>
<li>ecf2f7b language_server: Fail gracefully when tsgolint executable
not found (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15436">#15436</a>)
(camc314)</li>
<li>3c8d3a7 lang-server: Improve logging in failure case for tsgolint
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15299">#15299</a>)
(camc314)</li>
<li>ef71410 linter: Use jsx if source type is JS in fix debug assertion
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15434">#15434</a>)
(camc314)</li>
<li>e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer
(<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15426">#15426</a>)
(camc314)</li>
<li>6565dbe linter/switch-case-braces: Skip comments when searching for
<code>:</code> token (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15425">#15425</a>)
(camc314)</li>
<li>85bd19a linter/prefer-class-fields: Insert value after type
annotation in fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15423">#15423</a>)
(camc314)</li>
<li>fde753e linter/plugins: Block access to
<code>context.settings</code> in <code>createOnce</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15394">#15394</a>)
(overlookmotel)</li>
<li>ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper
in invalid positions (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15388">#15388</a>)
(camc314)</li>
<li>dac2a9c linter/no-template-curly-in-string: Remove fixer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15387">#15387</a>)
(camc314)</li>
<li>989b8e3 linter/no-var: Only fix to <code>const</code> if the var has
an initializer (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15385">#15385</a>)
(camc314)</li>
<li>cc403f5 linter/plugins: Return empty object for unimplemented
parserServices (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15364">#15364</a>)
(magic-akari)</li>
</ul>
<h3> Performance</h3>
<ul>
<li>25d577e language_server: Start tools in parallel (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15500">#15500</a>)
(Sysix)</li>
<li>3c57291 linter/plugins: Optimize loops (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15449">#15449</a>)
(overlookmotel)</li>
<li>3166233 linter/plugins: Remove <code>Arc</code>s (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15431">#15431</a>)
(overlookmotel)</li>
<li>9de1322 linter/plugins: Lazily deserialize settings JSON (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15395">#15395</a>)
(overlookmotel)</li>
<li>3049ec2 linter/plugins: Optimize <code>deepFreezeSettings</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15392">#15392</a>)
(overlookmotel)</li>
<li>444ebfd linter/plugins: Use single object for
<code>parserServices</code> (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15378">#15378</a>)
(overlookmotel)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>97d2104 linter: Update comment in lint.rs about default value for
tsconfig path (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15530">#15530</a>)
(Connor Shea)</li>
<li>2c6bd9e linter: Always refer as &quot;ES2015&quot; instead of
&quot;ES6&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15411">#15411</a>)
(sapphi-red)</li>
<li>a0c5203 linter/import/named: Update &quot;ES7&quot; comment in
examples (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15410">#15410</a>)
(sapphi-red)</li>
<li>3dc24b5 linter,minifier: Always refer as &quot;ES Modules&quot;
instead of &quot;ES6 Modules&quot; (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15409">#15409</a>)
(sapphi-red)</li>
<li>2ad77fb linter/no-this-before-super: Correct &quot;Why is this
bad?&quot; section (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15408">#15408</a>)
(sapphi-red)</li>
<li>57f0ce1 linter: Add backquotes where appropriate (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/15407">#15407</a>)
(sapphi-red)</li>
</ul>
<h1>Oxfmt v0.12.0</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md">oxlint's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this package will be documented in this
file.</p>
<p>The format is based on <a
href="https://keepachangelog.com/en/1.0.0">Keep a Changelog</a>.</p>
<h2>[1.52.0] - 2026-03-09</h2>
<h3>🚀 Features</h3>
<ul>
<li>61bf388 linter: Add
<code>options.reportUnusedDisableDirectives</code> to config file (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19799">#19799</a>)
(Peter Wagenet)</li>
<li>2919313 linter: Introduce denyWarnings config options (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19926">#19926</a>)
(camc314)</li>
<li>a607119 linter: Introduce maxWarnings config option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19777">#19777</a>)
(camc314)</li>
</ul>
<h3>📚 Documentation</h3>
<ul>
<li>6c0e0b5 linter: Add oxlint.config.ts to the config docs. (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19941">#19941</a>)
(connorshea)</li>
<li>160e423 linter: Add a note that the typeAware and typeCheck options
require oxlint-tsgolint (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19940">#19940</a>)
(connorshea)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/oxc-project/oxc/commit/856781f99c7eb521b6221fab0047cfd09343df50"><code>856781f</code></a>
release(apps): oxlint v1.53.0 &amp;&amp; oxfmt v0.38.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/20218">#20218</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/9870467e0025f0cca44b24cda5ccaa9414b51a56"><code>9870467</code></a>
release(apps): oxlint v1.52.0 &amp;&amp; oxfmt v0.37.0 (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/20143">#20143</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/61bf3883fd8435e061a055e528db6f664e737132"><code>61bf388</code></a>
feat(linter): add <code>options.reportUnusedDisableDirectives</code> to
config file (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19">#19</a>...</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/6c0e0b5721cd791f82e36bc7376f7417518c0548"><code>6c0e0b5</code></a>
docs(linter): Add oxlint.config.ts to the config docs. (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19941">#19941</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/160e423dce9900f7f7c6bce7f6845229d5732f8b"><code>160e423</code></a>
docs(linter): Add a note that the typeAware and typeCheck options
require oxl...</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/2919313574b988ae9c711c9808fee57bea4d326f"><code>2919313</code></a>
feat(linter): introduce denyWarnings config options (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19926">#19926</a>)</li>
<li><a
href="https://github.com/oxc-project/oxc/commit/a60711957ea4244885134972bbaac8810f42451c"><code>a607119</code></a>
feat(linter): introduce maxWarnings config option (<a
href="https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint/issues/19777">#19777</a>)</li>
<li>See full diff in <a
href="https://github.com/oxc-project/oxc/commits/oxlint_v1.53.0/npm/oxlint">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-12 06:38:30 +00:00
Abdul RahmanandGitHub 102b49f919 Fix new navbar item position after reordering existing items (#18516)
Closes [#2296](https://github.com/twentyhq/core-team-issues/issues/2296)
2026-03-11 20:35:15 +00:00
Thomas TrompetteandGitHub 2af3121c51 Fix dashboard creation + role permission page design (#18565)
1. **Creating a new dashboard crashes with "Tab not found"** and widgets
can't be added after the crash is prevented.

**Root cause:** `initializePageLayout` wrapped both the persisted and
draft state updates behind an `isDeeplyEqual` guard. After navigation,
`resetPageLayoutEditMode` resets the draft atom to its default but
leaves the persisted atom untouched. On re-initialization,
`isDeeplyEqual` returns true (persisted unchanged), so the draft is
never repopulated. But edit mode is still activated.

**Fix**: Move the draft store.set outside the isDeeplyEqual guard so
it's always set on initialization. Also add a defensive check in
`PageLayoutRendererContent` to prevent the crash when activeTabId
doesn't match available tabs.


https://github.com/user-attachments/assets/bcd69866-63eb-4e5e-a1bb-655e71ba6dc5

2. **Permission role page design broken**
Before
<img width="573" height="1130" alt="role-page-broken"
src="https://github.com/user-attachments/assets/09f60fd2-ef08-4133-bb28-034b15579481"
/>

After
<img width="573" height="266" alt="Capture d’écran 2026-03-11 à 14 25
55"
src="https://github.com/user-attachments/assets/c34f9993-51e1-4108-a7e6-f434f558edfd"
/>
2026-03-11 17:57:54 +00:00
Thomas TrompetteandGitHub a024a04e01 Fix breadcrumb infinite loop (#18561)
`RecordTableNoRecordGroupScrollToPreviousRecordEffect` uses
`useAtomState(lastShowPageRecordIdState)` to read the atom value and
check whether to trigger an effect. Inside `run()`, it calls
`setLastShowPageRecordId(null)` to reset the atom, then`
triggerInitialRecordTableDataLoad()` which fires many `store.set()`
calls on other atoms.

These high-frequency store updates cause the component to re-render
before Jotai's internal useReducer dispatch (propagating the null value)
is processed by React. The result: useAtomState returns a stale non-null
value on every subsequent render, even though the Jotai store already
holds null. The effect re-runs, sees the stale non-null value, calls
`run()` again, creating an infinite loop.

This is a Jotai v2 edge case where useAtom's rendered value desyncs from
the actual store value under high-frequency concurrent updates.

### The fix

Read lastShowPageRecordId directly from the Jotai store via
`store.get()` inside the effect instead of relying on the rendered value
from useAtomState. This guarantees the effect always sees the true store
value and correctly skips when the atom is null.
2026-03-11 18:26:02 +01:00
Félix MalfaitGitHubclaude[bot] <41898282+claude[bot]@users.noreply.github.com>
f0c83434a7 feat: default code interpreter and logic function to Disabled in production (#18559)
## Summary

For security reasons, the code interpreter and logic function drivers
now default based on `NODE_ENV`:

- **Production** (`NODE_ENV=production` or unset): Default to
**Disabled**
- **Development** (`NODE_ENV=development`): Default to **LOCAL** for
convenience

This ensures self-hosted production deployments don't accidentally run
user-provided code without explicit configuration.

## Changes

### Config (`config-variables.ts`)
- `CODE_INTERPRETER_TYPE`: Disabled in prod, LOCAL in dev
- `LOGIC_FUNCTION_TYPE`: Disabled in prod, LOCAL in dev

### Documentation (`setup.mdx`)
- Added **Security Defaults** section explaining NODE_ENV-based behavior
- Fixed variable names: `SERVERLESS_TYPE` → `LOGIC_FUNCTION_TYPE`,
`SERVERLESS_LAMBDA_*` → `LOGIC_FUNCTION_LAMBDA_*`
- Added **Code Interpreter** section with available drivers (Disabled,
Local, E2B)

### Environment files
- `.env.example`: Updated to `LOGIC_FUNCTION_TYPE` with comments
- `.env.test`: Added `LOGIC_FUNCTION_TYPE=LOCAL` for logic function
integration tests

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

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
2026-03-11 17:54:55 +01:00
Paul RastoinandGitHub b699619756 Create twenty app e2e test ci (#18497)
# Introduction
Verifies whole following flow:
- Create and sdk app build and publication
- Global create-twenty-app installation
- Creating an app
- installing app dependencies
- auth:login
- app:build
- function:execute
- Running successfully auto-generated integration tests

## Create twenty app options refactor
Allow having a flow that do not require any prompt
2026-03-11 16:30:28 +01:00
Raphaël BosiandGitHub b2f053490d Add standard front component ci (#18560)
Checks if the build has been generated correctly before merging
2026-03-11 16:06:13 +01:00
21de221420 i18n - translations (#18557)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-11 15:57:19 +01:00
Félix MalfaitandGitHub a3c0c62506 Merge branch 'main' into feat/seed-apps-for-dev-workspaces 2026-03-11 15:52:06 +01:00
martmullandGitHub d9b3507866 Run vulnerable operation in isolated environment (#18523)
When driver = LAMBDA:
- run esbuild ts transpilation on dedicated lambda
- run yarn install on app dependencies on a dedicated lambda
2026-03-11 14:08:47 +00:00
Thomas TrompetteandGitHub b346f4fb59 Add common loader (#18556)
To avoid white screens on reload, building a shared skeleton.

Before

https://github.com/user-attachments/assets/42bd0667-141d-4df4-9072-4077192cc71d

After

https://github.com/user-attachments/assets/e6031a72-2e25-47e3-a873-b89aaddfbd3a
2026-03-11 14:56:49 +01:00
Félix MalfaitandGitHub 390ae34ed8 Merge branch 'main' into feat/seed-apps-for-dev-workspaces 2026-03-11 14:52:19 +01:00
nitinandGitHub 2c5af2654d Separate code pathways for IS_COMMAND_MENU_ITEM_ENABLED flag (#18542) 2026-03-11 13:30:22 +00:00
WeikoandGitHub 6cbc7725b7 fix standard app for server build (#18558) 2026-03-11 14:37:18 +01:00
744ef3aa9d i18n - translations (#18555)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-11 14:21:20 +01:00
Félix Malfait fe59c333ac Merge remote-tracking branch 'origin/main' into feat/seed-apps-for-dev-workspaces
Made-with: Cursor

# Conflicts:
#	packages/twenty-sdk/src/clients/generated/metadata/types.ts
2026-03-11 14:11:16 +01:00
Félix Malfait 6c0da189cb Fix prettier formatting and regenerate GraphQL/SDK metadata
Made-with: Cursor
2026-03-11 14:03:35 +01:00
WeikoandGitHub ef92d2d321 Backfill standard views command (#18540) 2026-03-11 13:48:59 +01:00
WeikoandGitHub 00c3cd1051 Add system view fallback (#18536)
## Context
The goal is to add a "See records" button in all objects that would
redirect to that view (this will be done in a later PR). See screenshot
below.
<img width="665" height="312" alt="Screenshot 2026-03-10 at 15 54 36"
src="https://github.com/user-attachments/assets/6e23a75b-cff0-4d93-bce8-b5481b05c6f6"
/>

## Implementation
- If a view does not exist on an object, there is a **temporary**
fallback where the frontend creates the missing view as a custom view
when going over the object index page
- System objects are now surfaced but we don't want their records to be
editable, they will be readonly (mostly, all fields will be non-editable
except for their custom fields).
- We can't create a new record of a system object, some actions are also
hidden.
- The backend now rejects if you are trying to delete the last view of
an object
2026-03-11 13:48:02 +01:00
99f885306e i18n - translations (#18553)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-11 13:44:13 +01:00
413d1124bb Fix navigation drag drop indicator position (#18515)
Closes [#2295](https://github.com/twentyhq/core-team-issues/issues/2295)

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Félix Malfait <felix@twenty.com>
2026-03-11 13:35:09 +01:00
Félix Malfait 5aea16f070 Setup 2026-03-11 13:26:41 +01:00
ab5fb1f658 Replace newFieldDefaultConfiguration with newFieldDefaultVisibility (#18539)
https://github.com/user-attachments/assets/365092cb-0fe1-44f7-9ae6-c6fc5edb98b2

---------

Co-authored-by: Weiko <corentin@twenty.com>
2026-03-11 12:14:30 +00:00
Félix MalfaitandGitHub 2f542d6763 Merge branch 'main' into feat/seed-apps-for-dev-workspaces 2026-03-11 12:44:43 +01:00
Félix Malfait 4ac38449cb Use require.resolve instead of findMonorepoRoot for fixture paths
Follow the existing pattern from standard-front-component-upload.service.ts:
resolve package location via Node module resolution rather than traversing
the filesystem looking for nx.json.

Made-with: Cursor
2026-03-11 12:40:46 +01:00
Félix Malfait dab4cbcb7d Extract shared install logic into installFromExtractedDir
Both installFromLocalDirectory and doInstallApplication now delegate to
a single private method, eliminating the duplicated ensureApplicationExists
+ writeFilesToStorage + synchronizeFromManifest sequence.

Made-with: Cursor
2026-03-11 12:38:42 +01:00
Félix Malfait a73f586619 Revert hello-world view to use ViewKey enum instead of string literal
Made-with: Cursor
2026-03-11 12:37:32 +01:00
Félix Malfait d1126f507d Refactor app seeding to use committed fixture manifests
Instead of inlining manifest JSON in app-seeds.constant.ts, the seeder
now reads manifest.json directly from fixture app .twenty/output/
directories. Adds findMonorepoRoot() for robust path resolution and
graceful error handling so one failing app doesn't block others.

Made-with: Cursor
2026-03-11 12:24:23 +01:00
Abdul RahmanandGitHub e4e7137660 Navigate to page when clicking nav item in edit mode (#18526)
Closes [#2298](https://github.com/twentyhq/core-team-issues/issues/2298)
2026-03-11 10:59:22 +00:00
Félix MalfaitandGitHub 7fb8cc1c39 Improve apps settings UI and remove unused tarball upload code (#18549)
## Summary
- Improves the Developer Tab in Settings > Applications: adds
source-type badges (Dev / Npm / Internal), better empty state with `yarn
twenty app:dev` CLI command, renames sections to "Create & Develop" and
"Your Apps"
- Simplifies the Distribution Tab: only shows marketplace section for
npm-sourced apps, removes the manual `isListed` toggle (now managed
automatically by the catalog sync cron)
- Removes dead frontend code: `installApplication` mutation (unused —
installs go through `installMarketplaceApp`), `uploadAppTarball`
mutation/hook, and `SettingsUploadTarballModal`

## Test plan
- [ ] Navigate to Settings > Applications > Developer tab: verify badges
show correctly, empty state shows CLI command
- [ ] Create/view a LOCAL app registration: verify Distribution tab does
NOT show marketplace section
- [ ] Create/view an NPM app registration: verify Distribution tab shows
marketplace section with Featured toggle
- [ ] Verify no references to upload tarball or install application
remain in the UI


Made with [Cursor](https://cursor.com)
2026-03-11 11:40:00 +01:00
Thomas TrompetteandGitHub 1d95670252 Fix form field select + form field number (#18538)
Before
<img width="398" height="138" alt="Capture d’écran 2026-03-10 à 16 23
19"
src="https://github.com/user-attachments/assets/c28c0a7f-6911-4c77-a45c-42a79073a92a"
/>

After
<img width="398" height="138" alt="Capture d’écran 2026-03-10 à 16 32
56"
src="https://github.com/user-attachments/assets/b93d2fe9-5928-4803-8d5e-30a0a9eeb28f"
/>

Addition:
- hover on forget password
- settings field width
2026-03-11 08:58:51 +00:00
f855dacec9 i18n - docs translations (#18546)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-03-11 09:55:15 +01:00
Félix Malfait 3a1f10e572 Change strat 2026-03-10 20:46:54 +01:00
Félix MalfaitandGitHub d16299a624 Merge branch 'main' into feat/seed-apps-for-dev-workspaces 2026-03-10 20:07:17 +01:00
Félix Malfait 61d058bb1f Seed dev workspaces with three fixture apps
Add installFromLocalDirectory() to ApplicationInstallService so apps can
be installed from a local directory without network access.  The seeder
creates an ApplicationRegistration, writes the manifest and package.json
to a temp dir, then calls the standard install pipeline
(ensureApplicationExists → writeFilesToStorage → synchronizeFromManifest).

Three apps are seeded into both dev workspaces:
- Hello World (NPM source) — full manifest with objects, fields, roles,
  skills, logic functions, views, and navigation menu items
- Postcard App (tarball source) — minimal manifest
- Minimal App (local source) — minimal manifest

Also adds a hello-world integration test to the SDK that validates the
generated manifest against an expected snapshot, which keeps the seed
manifest in sync with the app source.

Made-with: Cursor
2026-03-10 20:05:07 +01:00
426 changed files with 11720 additions and 6060 deletions
-18
View File
@@ -1,18 +0,0 @@
{
"install": "curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - && sudo apt-get install -y nodejs && node --version && yarn install && echo 'Setting up Docker Compose environment...' && cd packages/twenty-docker && cp -n docker-compose.yml docker-compose.dev.yml || true && echo 'Dependencies installed and docker-compose prepared'",
"start": "sudo service docker start && echo 'Docker service started' && cd packages/twenty-docker && echo 'Installing yq for YAML processing...' && sudo apt-get update -qq && sudo apt-get install -y wget && wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 && sudo chmod +x /usr/local/bin/yq && echo 'Patching docker-compose for local development...' && yq eval 'del(.services.server.image)' -i docker-compose.dev.yml && yq eval '.services.server.build.context = \"../../\"' -i docker-compose.dev.yml && yq eval '.services.server.build.dockerfile = \"./packages/twenty-docker/twenty/Dockerfile\"' -i docker-compose.dev.yml && yq eval 'del(.services.worker.image)' -i docker-compose.dev.yml && yq eval '.services.worker.build.context = \"../../\"' -i docker-compose.dev.yml && yq eval '.services.worker.build.dockerfile = \"./packages/twenty-docker/twenty/Dockerfile\"' -i docker-compose.dev.yml && echo 'Setting up .env file with database configuration...' && echo 'SERVER_URL=http://localhost:3000' > .env && echo 'APP_SECRET='$(openssl rand -base64 32) >> .env && echo 'PG_DATABASE_PASSWORD='$(openssl rand -hex 16) >> .env && echo 'PG_DATABASE_URL=postgres://postgres:password@localhost:5432/postgres' >> .env && echo 'SIGN_IN_PREFILLED=true' >> .env && echo 'Building and starting services...' && docker-compose -f docker-compose.dev.yml up -d --build && echo 'Waiting for services to initialize...' && sleep 30 && echo 'Checking service health...' && docker-compose -f docker-compose.dev.yml ps && echo 'Environment setup complete!'",
"terminals": [
{
"name": "Database Setup & Seed",
"command": "sleep 40 && cd packages/twenty-docker && echo 'Waiting for PostgreSQL to be ready...' && until docker-compose -f docker-compose.dev.yml exec -T db pg_isready -U postgres; do echo 'Waiting for PostgreSQL...'; sleep 5; done && echo 'PostgreSQL is ready!' && echo 'Waiting for Twenty server to be healthy...' && until docker-compose -f docker-compose.dev.yml exec -T server curl --fail http://localhost:3000/healthz 2>/dev/null; do echo 'Waiting for server...'; sleep 5; done && echo 'Server is healthy!' && echo 'Running database setup and seeding...' && docker-compose -f docker-compose.dev.yml exec -T server npx nx database:reset twenty-server && echo 'Database seeded successfully!' && bash"
},
{
"name": "Application Logs",
"command": "sleep 35 && cd packages/twenty-docker && echo 'Following application logs...' && docker-compose -f docker-compose.dev.yml logs -f server worker"
},
{
"name": "Service Monitor",
"command": "sleep 15 && cd packages/twenty-docker && echo '=== Service Status Monitor ===' && while true; do clear; echo '=== Service Status at $(date) ===' && docker-compose -f docker-compose.dev.yml ps && echo '\\n=== Health Status ===' && (docker-compose -f docker-compose.dev.yml exec -T server curl -s http://localhost:3000/healthz 2>/dev/null && echo '✅ Twenty Server: Healthy') || echo '❌ Twenty Server: Not Ready' && (docker-compose -f docker-compose.dev.yml exec -T db pg_isready -U postgres 2>/dev/null && echo '✅ PostgreSQL: Ready') || echo '❌ PostgreSQL: Not Ready' && echo '\\n=== Database Connection Test ===' && docker-compose -f docker-compose.dev.yml exec -T server node -e \"const { Client } = require('pg'); const client = new Client({connectionString: process.env.PG_DATABASE_URL}); client.connect().then(() => {console.log('✅ Database Connection: OK'); client.end();}).catch(e => console.log('❌ Database Connection: Failed -', e.message));\" || echo 'Connection test failed' && sleep 45; done"
}
]
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"install": "yarn install",
"start": "sudo service docker start && sleep 2 && (docker start twenty_pg 2>/dev/null || make -C packages/twenty-docker postgres-on-docker) && (docker start twenty_redis 2>/dev/null || make -C packages/twenty-docker redis-on-docker) && until docker exec twenty_pg pg_isready -U postgres -h localhost 2>/dev/null; do sleep 1; done && echo 'PostgreSQL ready' && until docker exec twenty_redis redis-cli ping 2>/dev/null | grep -q PONG; do sleep 1; done && echo 'Redis ready' && bash packages/twenty-utils/setup-dev-env.sh && npx nx database:reset twenty-server",
"start": "(sudo service docker start || service docker start || true) && bash packages/twenty-utils/setup-dev-env.sh && npx nx database:reset twenty-server",
"terminals": [
{
"name": "Development Server",
+19
View File
@@ -0,0 +1,19 @@
storage: /tmp/verdaccio-storage
auth:
htpasswd:
file: /tmp/verdaccio-htpasswd
max_users: 100
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'twenty-sdk':
access: $all
publish: $all
'create-twenty-app':
access: $all
publish: $all
'**':
access: $all
proxy: npmjs
log: { type: stdout, format: pretty, level: warn }
+182
View File
@@ -0,0 +1,182 @@
name: CI Create App E2E
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
changed-files-check:
uses: ./.github/workflows/changed-files.yaml
with:
files: |
packages/create-twenty-app/**
packages/twenty-sdk/**
packages/twenty-shared/**
packages/twenty-server/**
!packages/create-twenty-app/package.json
!packages/twenty-sdk/package.json
!packages/twenty-shared/package.json
!packages/twenty-server/package.json
create-app-e2e:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest-4-cores
services:
postgres:
image: twentycrm/twenty-postgres-spilo
env:
PGUSER_SUPERUSER: postgres
PGPASSWORD_SUPERUSER: postgres
ALLOW_NOSSL: 'true'
SPILO_PROVIDER: 'local'
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis
ports:
- 6379:6379
steps:
- name: Fetch custom Github Actions and base branch history
uses: actions/checkout@v4
with:
fetch-depth: 10
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Set CI version and prepare packages for publish
run: |
CI_VERSION="0.0.0-ci.$(date +%s)"
echo "CI_VERSION=$CI_VERSION" >> $GITHUB_ENV
npx nx run-many -t set-local-version -p twenty-sdk create-twenty-app --releaseVersion=$CI_VERSION
- name: Build packages
run: |
npx nx build twenty-sdk
npx nx build create-twenty-app
- name: Install and start Verdaccio
run: |
npx verdaccio --config .github/verdaccio-config.yaml &
for i in $(seq 1 30); do
if curl -s http://localhost:4873 > /dev/null 2>&1; then
echo "Verdaccio is ready"
break
fi
echo "Waiting for Verdaccio... ($i/30)"
sleep 1
done
- name: Publish packages to local registry
run: |
npm set //localhost:4873/:_authToken "ci-auth-token"
for pkg in twenty-sdk create-twenty-app; do
cd packages/$pkg
npm publish --registry http://localhost:4873 --tag ci
cd ../..
done
- name: Scaffold app using published create-twenty-app
run: |
npm install -g create-twenty-app@$CI_VERSION --registry http://localhost:4873
create-twenty-app --version
mkdir -p /tmp/e2e-test-workspace
cd /tmp/e2e-test-workspace
create-twenty-app test-app --exhaustive --display-name "Test App" --description "E2E test app"
- name: Install scaffolded app dependencies
run: |
cd /tmp/e2e-test-workspace/test-app
echo 'npmRegistryServer: "http://localhost:4873"' >> .yarnrc.yml
echo 'unsafeHttpWhitelist: ["localhost"]' >> .yarnrc.yml
YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install --no-immutable
- name: Verify installed app versions
run: |
cd /tmp/e2e-test-workspace/test-app
echo "--- Checking package.json references correct SDK version ---"
node -e "
const pkg = require('./package.json');
const sdkVersion = pkg.devDependencies['twenty-sdk'];
if (!sdkVersion.startsWith('0.0.0-ci.')) {
console.error('Expected twenty-sdk version to start with 0.0.0-ci., got:', sdkVersion);
process.exit(1);
}
console.log('SDK version in scaffolded app:', sdkVersion);
"
- name: Verify SDK CLI is available
run: |
cd /tmp/e2e-test-workspace/test-app
npx --no-install twenty --version
- name: Setup server environment
run: npx nx reset:env:e2e-testing-server twenty-server
- name: Build server
run: npx nx build twenty-server
- name: Create and setup database
run: |
PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "default";'
PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";'
npx nx run twenty-server:database:reset
- name: Start server
run: |
npx nx start twenty-server &
echo "Waiting for server to be ready..."
timeout 60 bash -c 'until curl -s http://localhost:3000/health; do sleep 2; done'
- name: Authenticate with twenty-server
env:
SEED_API_KEY: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik'
run: |
cd /tmp/e2e-test-workspace/test-app
npx --no-install twenty auth:login --api-key $SEED_API_KEY --api-url http://localhost:3000
- name: Build scaffolded app
run: |
cd /tmp/e2e-test-workspace/test-app
npx --no-install twenty app:build
test -d .twenty/output
- name: Execute hello-world logic function
run: |
cd /tmp/e2e-test-workspace/test-app
EXEC_OUTPUT=$(npx --no-install twenty function:execute --functionName hello-world-logic-function)
echo "$EXEC_OUTPUT"
echo "$EXEC_OUTPUT" | grep -q "Hello, World!"
- name: Run scaffolded app integration test
run: |
cd /tmp/e2e-test-workspace/test-app
yarn test
ci-create-app-e2e-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
needs: [changed-files-check, create-app-e2e]
steps:
- name: Fail job if any needs failed
if: contains(needs.*.result, 'failure')
run: exit 1
@@ -0,0 +1,66 @@
name: CI Twenty Standard Front Component
on:
pull_request:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
changed-files-check:
uses: ./.github/workflows/changed-files.yaml
with:
files: |
package.json
yarn.lock
packages/twenty-standard-application/**
packages/twenty-sdk/**
packages/twenty-shared/**
standard-front-component-build-check:
needs: changed-files-check
if: needs.changed-files-check.outputs.any_changed == 'true'
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: Fetch custom Github Actions and base branch history
uses: actions/checkout@v4
with:
fetch-depth: 10
- name: Install dependencies
uses: ./.github/actions/yarn-install
- name: Build twenty-shared
run: npx nx build twenty-shared
- name: Build twenty-sdk
run: npx nx build twenty-sdk
- name: Build twenty-standard-application
run: npx nx build twenty-standard-application
- name: Check for pending standard front component build
run: |
if ! git diff --quiet -- packages/twenty-standard-application/src/build packages/twenty-standard-application/src/standard-front-component-build-manifest.ts; then
echo "::error::Standard front component build output is out of date. Please run 'npx nx build twenty-standard-application' and commit the changes."
echo ""
echo "The following changes were detected:"
echo "==================================================="
git diff -- packages/twenty-standard-application/src/build packages/twenty-standard-application/src/standard-front-component-build-manifest.ts
echo "==================================================="
exit 1
fi
ci-twenty-standard-front-component-status-check:
if: always() && !cancelled()
timeout-minutes: 5
runs-on: ubuntu-latest
needs:
[
changed-files-check,
standard-front-component-build-check,
]
steps:
- name: Fail job if any needs failed
if: contains(needs.*.result, 'failure')
run: exit 1
+13 -4
View File
@@ -188,13 +188,22 @@ IMPORTANT: Use Context7 for code generation, setup or configuration steps, or li
- Descriptive test names: "should [behavior] when [condition]"
- Clear mocks between tests with `jest.clearAllMocks()`
## CI Environment (GitHub Actions)
## Dev Environment Setup
When running in CI, the dev environment is **not** pre-configured. Dependencies are installed but builds, env files, and databases are not set up.
All dev environments (Claude Code web, Cursor, local) use one script:
- **Before running tests, builds, lint, type checks, or DB operations**, run: `bash packages/twenty-utils/setup-dev-env.sh`
```bash
bash packages/twenty-utils/setup-dev-env.sh
```
This handles everything: starts Postgres + Redis (auto-detects local services vs Docker), creates databases, and copies `.env` files. Idempotent — safe to run multiple times.
- `--docker` — force Docker mode (uses `packages/twenty-docker/docker-compose.dev.yml`)
- `--down` — stop services
- `--reset` — wipe data and restart fresh
- **Skip the setup script** for tasks that only read code — architecture questions, code review, documentation, etc.
- The script is idempotent and safe to run multiple times.
**Note:** CI workflows (GitHub Actions) manage services via Actions service containers and run setup steps individually — they don't use this script.
## Important Files
- `nx.json` - Nx workspace configuration with task definitions
+8
View File
@@ -136,6 +136,14 @@
"cache": true,
"dependsOn": ["^build"]
},
"set-local-version": {
"executor": "nx:run-commands",
"cache": false,
"options": {
"cwd": "{projectRoot}",
"command": "npm pkg set version={args.releaseVersion}"
}
},
"storybook:build": {
"executor": "nx:run-commands",
"cache": true,
+1
View File
@@ -164,6 +164,7 @@
"tsc-alias": "^1.8.16",
"tsconfig-paths": "^4.2.0",
"tsx": "^4.17.0",
"verdaccio": "^6.3.1",
"vite": "^7.0.0",
"vitest": "^4.0.18"
},
+1
View File
@@ -24,6 +24,7 @@
"command": "node dist/cli.cjs"
}
},
"set-local-version": {},
"typecheck": {},
"lint": {},
"test": {
+24 -1
View File
@@ -18,6 +18,15 @@ const program = new Command(packageJson.name)
'-m, --minimal',
'Create only core entities (application-config and default-role)',
)
.option('-n, --name <name>', 'Application name (skips prompt)')
.option(
'-d, --display-name <displayName>',
'Application display name (skips prompt)',
)
.option(
'--description <description>',
'Application description (skips prompt)',
)
.helpOption('-h, --help', 'Display this help message.')
.action(
async (
@@ -25,6 +34,9 @@ const program = new Command(packageJson.name)
options?: {
exhaustive?: boolean;
minimal?: boolean;
name?: string;
displayName?: string;
description?: string;
},
) => {
const modeFlags = [options?.exhaustive, options?.minimal].filter(Boolean);
@@ -47,9 +59,20 @@ const program = new Command(packageJson.name)
process.exit(1);
}
if (options?.name !== undefined && options.name.trim().length === 0) {
console.error(chalk.red('Error: --name cannot be empty.'));
process.exit(1);
}
const mode: ScaffoldingMode = options?.minimal ? 'minimal' : 'exhaustive';
await new CreateAppCommand().execute(directory, mode);
await new CreateAppCommand().execute({
directory,
mode,
name: options?.name,
displayName: options?.displayName,
description: options?.description,
});
},
);
@@ -7,6 +7,7 @@ import * as fs from 'fs-extra';
import inquirer from 'inquirer';
import kebabCase from 'lodash.kebabcase';
import * as path from 'path';
import { isDefined } from 'twenty-shared/utils';
import {
type ExampleOptions,
@@ -15,16 +16,23 @@ import {
const CURRENT_EXECUTION_DIRECTORY = process.env.INIT_CWD || process.cwd();
type CreateAppOptions = {
directory?: string;
mode?: ScaffoldingMode;
name?: string;
displayName?: string;
description?: string;
};
export class CreateAppCommand {
async execute(
directory?: string,
mode: ScaffoldingMode = 'exhaustive',
): Promise<void> {
async execute(options: CreateAppOptions = {}): Promise<void> {
try {
const { appName, appDisplayName, appDirectory, appDescription } =
await this.getAppInfos(directory);
await this.getAppInfos(options);
const exampleOptions = this.resolveExampleOptions(mode);
const exampleOptions = this.resolveExampleOptions(
options.mode ?? 'exhaustive',
);
await this.validateDirectory(appDirectory);
@@ -54,19 +62,25 @@ export class CreateAppCommand {
}
}
private async getAppInfos(directory?: string): Promise<{
private async getAppInfos(options: CreateAppOptions): Promise<{
appName: string;
appDisplayName: string;
appDescription: string;
appDirectory: string;
}> {
const { directory } = options;
const hasName = isDefined(options.name) || isDefined(directory);
const hasDisplayName = isDefined(options.displayName);
const hasDescription = isDefined(options.description);
const { name, displayName, description } = await inquirer.prompt([
{
type: 'input',
name: 'name',
message: 'Application name:',
when: () => !directory,
default: 'my-awesome-app',
when: () => !hasName,
default: 'my-twenty-app',
validate: (input) => {
if (input.length === 0) return 'Application name is required';
return true;
@@ -76,25 +90,33 @@ export class CreateAppCommand {
type: 'input',
name: 'displayName',
message: 'Application display name:',
default: (answers: any) => {
return convertToLabel(answers?.name ?? directory);
when: () => !hasDisplayName,
default: (answers: { name?: string }) => {
return convertToLabel(
answers?.name ?? options.name ?? directory ?? '',
);
},
},
{
type: 'input',
name: 'description',
message: 'Application description (optional):',
when: () => !hasDescription,
default: '',
},
]);
const computedName = name ?? directory;
const appName = (
options.name ??
name ??
directory ??
'my-twenty-app'
).trim();
const appName = computedName.trim();
const appDisplayName =
(options.displayName ?? displayName)?.trim() || convertToLabel(appName);
const appDisplayName = displayName.trim();
const appDescription = description.trim();
const appDescription = (options.description ?? description ?? '').trim();
const appDirectory = directory
? path.join(CURRENT_EXECUTION_DIRECTORY, directory)
@@ -30,12 +30,12 @@ export const copyBaseApplicationProject = async ({
includeExampleIntegrationTest: exampleOptions.includeExampleIntegrationTest,
});
await createYarnLock(appDirectory);
await createGitignore(appDirectory);
await createPublicAssetDirectory(appDirectory);
await createYarnLock(appDirectory);
const sourceFolderPath = join(appDirectory, SRC_FOLDER);
await fs.ensureDir(sourceFolderPath);
@@ -142,13 +142,6 @@ const createPublicAssetDirectory = async (appDirectory: string) => {
await fs.ensureDir(join(appDirectory, ASSETS_DIR));
};
const createYarnLock = async (appDirectory: string) => {
const yarnLockContent = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
`;
await fs.writeFile(join(appDirectory, 'yarn.lock'), yarnLockContent);
};
const createGitignore = async (appDirectory: string) => {
const gitignoreContent = `# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
@@ -590,6 +583,14 @@ export default defineApplication({
await fs.writeFile(join(appDirectory, fileFolder ?? '', fileName), content);
};
const createYarnLock = async (appDirectory: string) => {
const yarnLockContent = `# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
`;
await fs.writeFile(join(appDirectory, 'yarn.lock'), yarnLockContent);
};
const createPackageJson = async ({
appName,
appDirectory,
+10
View File
@@ -1,3 +1,13 @@
generated
# Ignore .twenty build output for all apps
.twenty
# Allow committed fixture metadata (used by dev seeder)
!fixtures/**/.twenty
fixtures/**/.twenty/*
!fixtures/**/.twenty/output
fixtures/**/.twenty/output/**
!fixtures/**/.twenty/output/manifest.json
!fixtures/**/.twenty/output/package.json
!fixtures/**/.twenty/output/yarn.lock
@@ -0,0 +1,54 @@
import path from 'path';
import { buildAndValidateManifest } from '@/cli/utilities/build/manifest/build-and-validate-manifest';
import { buildApplication } from '@/cli/utilities/build/common/build-application';
import { manifestUpdateChecksums } from '@/cli/utilities/build/manifest/manifest-update-checksums';
import { writeManifestToOutput } from '@/cli/utilities/build/manifest/manifest-writer';
const FIXTURE_APPS = ['hello-world-app', 'postcard-app', 'minimal-app'];
const buildFixture = async (fixtureName: string): Promise<void> => {
const appPath = path.resolve(__dirname, fixtureName);
console.log(`\n--- Building fixture: ${fixtureName} ---`);
console.log(` App path: ${appPath}`);
const manifestResult = await buildAndValidateManifest(appPath);
if (!manifestResult.success) {
console.error(` FAILED to build manifest: ${manifestResult.errors.join(', ')}`);
return;
}
const { manifest, filePaths } = manifestResult;
for (const warning of manifestResult.warnings) {
console.warn(` Warning: ${warning}`);
}
const buildResult = await buildApplication({ appPath, manifest, filePaths });
const updatedManifest = manifestUpdateChecksums({
manifest,
builtFileInfos: buildResult.builtFileInfos,
});
await writeManifestToOutput(appPath, updatedManifest);
console.log(` Built ${buildResult.builtFileInfos.size} files`);
console.log(` Output: ${path.join(appPath, '.twenty', 'output')}`);
};
const main = async () => {
for (const fixture of FIXTURE_APPS) {
await buildFixture(fixture);
}
console.log('\nDone.');
};
main().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});
@@ -0,0 +1,2 @@
generated
node_modules
@@ -0,0 +1,404 @@
{
"application": {
"universalIdentifier": "6563e091-9f5b-4026-a3ea-7e3b3d09e218",
"displayName": "Hello world",
"description": "",
"defaultRoleUniversalIdentifier": "9238bc7b-d38f-4a1c-9d19-31ab7bc67a2f",
"yarnLockChecksum": null,
"packageJsonChecksum": null,
"apiClientChecksum": "6db455b2541abbd2d4e9f85469bdc532",
"preInstallLogicFunctionUniversalIdentifier": "1272ffdb-8e2f-492c-ab37-66c2b97e9c23",
"postInstallLogicFunctionUniversalIdentifier": "7a3f4684-51db-494d-833b-a747a3b90507"
},
"objects": [
{
"universalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"nameSingular": "exampleItem",
"namePlural": "exampleItems",
"labelSingular": "Example item",
"labelPlural": "Example items",
"description": "A sample custom object",
"icon": "IconBox",
"labelIdentifierFieldMetadataUniversalIdentifier": "d2d7f6cd-33f6-456f-bf00-17adeca926ba",
"fields": [
{
"universalIdentifier": "d2d7f6cd-33f6-456f-bf00-17adeca926ba",
"type": "TEXT",
"name": "name",
"label": "Name",
"description": "Name of the example item",
"icon": "IconAbc"
},
{
"name": "id",
"label": "Id",
"description": "Id",
"icon": "Icon123",
"isNullable": false,
"defaultValue": "uuid",
"type": "UUID",
"universalIdentifier": "5ba62991-6034-555c-b984-5e84897eaa9f"
},
{
"name": "createdAt",
"label": "Creation date",
"description": "Creation date",
"icon": "IconCalendar",
"isNullable": false,
"defaultValue": "now",
"type": "DATE_TIME",
"universalIdentifier": "8b616045-237c-574d-8689-73f06acff8d8"
},
{
"name": "updatedAt",
"label": "Last update",
"description": "Last time the record was changed",
"icon": "IconCalendarClock",
"isNullable": false,
"defaultValue": "now",
"type": "DATE_TIME",
"universalIdentifier": "ced5587d-d9de-51bf-9ad0-74af6198fca4"
},
{
"name": "deletedAt",
"label": "Deleted at",
"description": "Deletion date",
"icon": "IconCalendarClock",
"isNullable": true,
"defaultValue": null,
"type": "DATE_TIME",
"universalIdentifier": "674ee694-0b0f-557f-993c-2b1404db0811"
},
{
"name": "createdBy",
"label": "Created by",
"description": "The creator of the record",
"icon": "IconCreativeCommonsSa",
"isNullable": false,
"defaultValue": {
"name": "''",
"source": "'MANUAL'"
},
"type": "ACTOR",
"universalIdentifier": "5ed1503f-2803-59d1-9b27-e4f1701b8c2a"
},
{
"name": "updatedBy",
"label": "Updated by",
"description": "The workspace member who last updated the record",
"icon": "IconUserCircle",
"isNullable": false,
"defaultValue": {
"name": "''",
"source": "'MANUAL'"
},
"type": "ACTOR",
"universalIdentifier": "3d3a80b4-14a0-55a0-b534-1b23f043c1d5"
},
{
"name": "position",
"label": "Position",
"description": "Position",
"icon": "IconHierarchy2",
"isNullable": false,
"defaultValue": 0,
"type": "POSITION",
"universalIdentifier": "a714b336-d765-5dff-b34b-fcc6ab037e3b"
},
{
"name": "searchVector",
"label": "Search vector",
"icon": "IconSearch",
"description": "Search vector",
"isNullable": true,
"defaultValue": null,
"type": "TS_VECTOR",
"universalIdentifier": "068064e1-c9da-5772-9293-9e57183cee67"
},
{
"name": "timelineActivities",
"label": "Timeline Activities",
"description": "Example items tied to the ExampleItem",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "e5feca94-536c-5779-8c33-05e39705bcd7",
"relationTargetFieldMetadataUniversalIdentifier": "3d140ea1-fc57-5c8c-96fd-7d1525ed6a69",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-6736-4337-b5c4-8b39fae325a5"
},
{
"name": "favorites",
"label": "Favorites",
"description": "Example items tied to the ExampleItem",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "3781cc69-9d3f-58d0-927c-c1c552f37a1d",
"relationTargetFieldMetadataUniversalIdentifier": "3043fec0-091c-59ff-95ef-b9d95fbfa3e6",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-ab56-4e05-92a3-e2414a499860"
},
{
"name": "attachments",
"label": "Attachments",
"description": "Example items tied to the ExampleItem",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "3ad98da8-42e1-50e3-b73b-8c06fa720e2a",
"relationTargetFieldMetadataUniversalIdentifier": "e1232464-8f83-5459-aa94-a40cda8d949a",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-bd3d-4c60-8dca-571c71d4447a"
},
{
"name": "noteTargets",
"label": "Note Targets",
"description": "Example items tied to the ExampleItem",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "67cae4ab-7d3d-5a66-8d06-ca24568ebe76",
"relationTargetFieldMetadataUniversalIdentifier": "9eeb7b0d-37e4-5a93-97c9-3dbb77fdb318",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-fff0-4b44-be82-bda313884400"
},
{
"name": "taskTargets",
"label": "Task Targets",
"description": "Example items tied to the ExampleItem",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "a3b9f10c-f780-58cc-bbc9-402ed5f136f6",
"relationTargetFieldMetadataUniversalIdentifier": "5d46d303-452d-5c9c-ab64-0a9768b87956",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-5a9a-44e8-95df-771cd06d0fb1"
}
]
}
],
"fields": [
{
"objectUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"universalIdentifier": "770d32c2-cf12-4ab2-b66d-73f92dc239b5",
"type": "NUMBER",
"name": "priority",
"label": "Priority",
"description": "Priority level for the example item (1-10)"
},
{
"name": "targetExampleItem",
"label": "ExampleItem",
"description": "ExampleItem Example item",
"icon": "IconTimelineEvent",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetExampleItemId"
},
"universalIdentifier": "3d140ea1-fc57-5c8c-96fd-7d1525ed6a69",
"objectUniversalIdentifier": "20202020-6736-4337-b5c4-8b39fae325a5",
"relationTargetFieldMetadataUniversalIdentifier": "e5feca94-536c-5779-8c33-05e39705bcd7",
"relationTargetObjectMetadataUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"type": "MORPH_RELATION",
"morphId": "20202020-9a2b-4c3d-a4e5-f6a7b8c9d0e1"
},
{
"name": "targetExampleItem",
"label": "ExampleItem",
"description": "ExampleItem Example item",
"icon": "IconHeart",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetExampleItemId"
},
"universalIdentifier": "3043fec0-091c-59ff-95ef-b9d95fbfa3e6",
"objectUniversalIdentifier": "20202020-ab56-4e05-92a3-e2414a499860",
"relationTargetFieldMetadataUniversalIdentifier": "3781cc69-9d3f-58d0-927c-c1c552f37a1d",
"relationTargetObjectMetadataUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"type": "RELATION"
},
{
"name": "targetExampleItem",
"label": "ExampleItem",
"description": "ExampleItem Example item",
"icon": "IconFileImport",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetExampleItemId"
},
"universalIdentifier": "e1232464-8f83-5459-aa94-a40cda8d949a",
"objectUniversalIdentifier": "20202020-bd3d-4c60-8dca-571c71d4447a",
"relationTargetFieldMetadataUniversalIdentifier": "3ad98da8-42e1-50e3-b73b-8c06fa720e2a",
"relationTargetObjectMetadataUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"type": "MORPH_RELATION",
"morphId": "20202020-f634-435d-ab8d-e1168b375c69"
},
{
"name": "targetExampleItem",
"label": "ExampleItem",
"description": "ExampleItem Example item",
"icon": "IconCheckbox",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetExampleItemId"
},
"universalIdentifier": "9eeb7b0d-37e4-5a93-97c9-3dbb77fdb318",
"objectUniversalIdentifier": "20202020-fff0-4b44-be82-bda313884400",
"relationTargetFieldMetadataUniversalIdentifier": "67cae4ab-7d3d-5a66-8d06-ca24568ebe76",
"relationTargetObjectMetadataUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"type": "MORPH_RELATION",
"morphId": "20202020-f635-435d-ab8d-e1168b375c70"
},
{
"name": "targetExampleItem",
"label": "ExampleItem",
"description": "ExampleItem Example item",
"icon": "IconCheckbox",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetExampleItemId"
},
"universalIdentifier": "5d46d303-452d-5c9c-ab64-0a9768b87956",
"objectUniversalIdentifier": "20202020-5a9a-44e8-95df-771cd06d0fb1",
"relationTargetFieldMetadataUniversalIdentifier": "a3b9f10c-f780-58cc-bbc9-402ed5f136f6",
"relationTargetObjectMetadataUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"type": "MORPH_RELATION",
"morphId": "20202020-f636-435d-ab8d-e1168b375c71"
}
],
"roles": [
{
"universalIdentifier": "9238bc7b-d38f-4a1c-9d19-31ab7bc67a2f",
"label": "Hello world default function role",
"description": "Hello world default function role",
"canReadAllObjectRecords": true,
"canUpdateAllObjectRecords": true,
"canSoftDeleteAllObjectRecords": true,
"canDestroyAllObjectRecords": false
}
],
"skills": [
{
"universalIdentifier": "d0940029-9d3c-40be-903a-52d65393028f",
"name": "example-skill",
"label": "Example Skill",
"description": "A sample skill for your application",
"icon": "IconBrain",
"content": "Add your skill instructions here. Skills provide context and capabilities to AI agents."
}
],
"agents": [],
"logicFunctions": [
{
"universalIdentifier": "2baa26eb-9aaf-4856-a4f4-30d6fd6480ee",
"name": "hello-world-logic-function",
"description": "A simple logic function",
"timeoutSeconds": 5,
"httpRouteTriggerSettings": {
"path": "/hello-world-logic-function",
"httpMethod": "GET",
"isAuthRequired": false
},
"toolInputSchema": {
"type": "object",
"properties": {}
},
"handlerName": "default.config.handler",
"sourceHandlerPath": "src/logic-functions/hello-world.ts",
"builtHandlerPath": "src/logic-functions/hello-world.mjs",
"builtHandlerChecksum": "f1a0565e18366e6c531438631137d23b"
},
{
"universalIdentifier": "7a3f4684-51db-494d-833b-a747a3b90507",
"name": "post-install",
"description": "Runs after installation to set up the application.",
"timeoutSeconds": 300,
"toolInputSchema": {
"type": "object",
"properties": {}
},
"handlerName": "default.config.handler",
"sourceHandlerPath": "src/logic-functions/post-install.ts",
"builtHandlerPath": "src/logic-functions/post-install.mjs",
"builtHandlerChecksum": "7b016a1819c4e2355a80a895464032a5"
},
{
"universalIdentifier": "1272ffdb-8e2f-492c-ab37-66c2b97e9c23",
"name": "pre-install",
"description": "Runs before installation to prepare the application.",
"timeoutSeconds": 300,
"toolInputSchema": {
"type": "object",
"properties": {}
},
"handlerName": "default.config.handler",
"sourceHandlerPath": "src/logic-functions/pre-install.ts",
"builtHandlerPath": "src/logic-functions/pre-install.mjs",
"builtHandlerChecksum": "e2151e31924929390a5933ebf7419465"
}
],
"frontComponents": [
{
"universalIdentifier": "d371f098-5b2c-42f0-898d-94459f1ee337",
"name": "hello-world-front-component",
"description": "A sample front component",
"componentName": "HelloWorld",
"sourceComponentPath": "src/front-components/hello-world.tsx",
"builtComponentPath": "src/front-components/hello-world.mjs",
"builtComponentChecksum": "826d5d3f633496d7c2a4f902589b83ed",
"isHeadless": false
}
],
"publicAssets": [],
"views": [
{
"universalIdentifier": "e004df40-29f3-47ba-b39d-d3a5c444367a",
"name": "All example items",
"objectUniversalIdentifier": "dfd43356-39b3-4b55-b4a7-279bec689928",
"icon": "IconList",
"key": "INDEX",
"position": 0,
"fields": [
{
"universalIdentifier": "496c40c2-5766-419c-93bf-20fdad3f34bb",
"fieldMetadataUniversalIdentifier": "d2d7f6cd-33f6-456f-bf00-17adeca926ba",
"position": 0,
"isVisible": true,
"size": 200
}
]
}
],
"navigationMenuItems": [
{
"universalIdentifier": "10f90627-e9c2-44b7-9742-bed77e3d1b17",
"name": "example-navigation-menu-item",
"icon": "IconList",
"color": "blue",
"position": 0,
"viewUniversalIdentifier": "e004df40-29f3-47ba-b39d-d3a5c444367a"
}
],
"pageLayouts": []
}
@@ -0,0 +1,26 @@
{
"name": "hello-world-app",
"version": "0.1.0",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"packageManager": "yarn@4.9.2",
"scripts": {
"app:dev": "twenty app:dev",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json ."
},
"dependencies": {
"twenty-sdk": "latest"
},
"devDependencies": {
"typescript": "^5.9.3",
"@types/node": "^24.7.2",
"@types/react": "^19.0.2",
"react": "^19.0.2",
"oxlint": "^0.16.0"
}
}
@@ -0,0 +1,12 @@
import { defineApplication } from 'twenty-sdk';
import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from './src/roles/default-role';
export const APPLICATION_UNIVERSAL_IDENTIFIER =
'6563e091-9f5b-4026-a3ea-7e3b3d09e218';
export default defineApplication({
universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER,
displayName: 'Hello world',
description: '',
defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
});
@@ -0,0 +1,26 @@
{
"name": "hello-world-app",
"version": "0.1.0",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"packageManager": "yarn@4.9.2",
"scripts": {
"app:dev": "twenty app:dev",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json ."
},
"dependencies": {
"twenty-sdk": "latest"
},
"devDependencies": {
"typescript": "^5.9.3",
"@types/node": "^24.7.2",
"@types/react": "^19.0.2",
"react": "^19.0.2",
"oxlint": "^0.16.0"
}
}
@@ -0,0 +1,11 @@
import { defineField, FieldType } from 'twenty-sdk';
import { EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER } from 'src/objects/example-object';
export default defineField({
objectUniversalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER,
universalIdentifier: '770d32c2-cf12-4ab2-b66d-73f92dc239b5',
type: FieldType.NUMBER,
name: 'priority',
label: 'Priority',
description: 'Priority level for the example item (1-10)',
});
@@ -0,0 +1,17 @@
import { defineFrontComponent } from 'twenty-sdk';
export const HelloWorld = () => {
return (
<div style={{ padding: '20px', fontFamily: 'sans-serif' }}>
<h1>Hello, World!</h1>
<p>This is your first front component.</p>
</div>
);
};
export default defineFrontComponent({
universalIdentifier: 'd371f098-5b2c-42f0-898d-94459f1ee337',
name: 'hello-world-front-component',
description: 'A sample front component',
component: HelloWorld,
});
@@ -0,0 +1,18 @@
import { defineLogicFunction } from 'twenty-sdk';
const handler = async (): Promise<{ message: string }> => {
return { message: 'Hello, World!' };
};
export default defineLogicFunction({
universalIdentifier: '2baa26eb-9aaf-4856-a4f4-30d6fd6480ee',
name: 'hello-world-logic-function',
description: 'A simple logic function',
timeoutSeconds: 5,
handler,
httpRouteTriggerSettings: {
path: '/hello-world-logic-function',
httpMethod: 'GET',
isAuthRequired: false,
},
});
@@ -0,0 +1,13 @@
import { definePostInstallLogicFunction, type InstallLogicFunctionPayload } from 'twenty-sdk';
const handler = async (payload: InstallLogicFunctionPayload): Promise<void> => {
console.log('Post install logic function executed successfully!', payload.previousVersion);
};
export default definePostInstallLogicFunction({
universalIdentifier: '7a3f4684-51db-494d-833b-a747a3b90507',
name: 'post-install',
description: 'Runs after installation to set up the application.',
timeoutSeconds: 300,
handler,
});
@@ -0,0 +1,13 @@
import { definePreInstallLogicFunction, type InstallLogicFunctionPayload } from 'twenty-sdk';
const handler = async (payload: InstallLogicFunctionPayload): Promise<void> => {
console.log('Pre install logic function executed successfully!', payload.previousVersion);
};
export default definePreInstallLogicFunction({
universalIdentifier: '1272ffdb-8e2f-492c-ab37-66c2b97e9c23',
name: 'pre-install',
description: 'Runs before installation to prepare the application.',
timeoutSeconds: 300,
handler,
});
@@ -0,0 +1,11 @@
import { defineNavigationMenuItem } from 'twenty-sdk';
import { EXAMPLE_VIEW_UNIVERSAL_IDENTIFIER } from 'src/views/example-view';
export default defineNavigationMenuItem({
universalIdentifier: '10f90627-e9c2-44b7-9742-bed77e3d1b17',
name: 'example-navigation-menu-item',
icon: 'IconList',
color: 'blue',
position: 0,
viewUniversalIdentifier: EXAMPLE_VIEW_UNIVERSAL_IDENTIFIER,
});
@@ -0,0 +1,28 @@
import { defineObject, FieldType } from 'twenty-sdk';
export const EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER =
'dfd43356-39b3-4b55-b4a7-279bec689928';
export const NAME_FIELD_UNIVERSAL_IDENTIFIER =
'd2d7f6cd-33f6-456f-bf00-17adeca926ba';
export default defineObject({
universalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER,
nameSingular: 'exampleItem',
namePlural: 'exampleItems',
labelSingular: 'Example item',
labelPlural: 'Example items',
description: 'A sample custom object',
icon: 'IconBox',
labelIdentifierFieldMetadataUniversalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
fields: [
{
universalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
type: FieldType.TEXT,
name: 'name',
label: 'Name',
description: 'Name of the example item',
icon: 'IconAbc',
},
],
});
@@ -0,0 +1,14 @@
import { defineRole } from 'twenty-sdk';
export const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER =
'9238bc7b-d38f-4a1c-9d19-31ab7bc67a2f';
export default defineRole({
universalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
label: 'Hello world default function role',
description: 'Hello world default function role',
canReadAllObjectRecords: true,
canUpdateAllObjectRecords: true,
canSoftDeleteAllObjectRecords: true,
canDestroyAllObjectRecords: false,
});
@@ -0,0 +1,13 @@
import { defineSkill } from 'twenty-sdk';
export const EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER =
'd0940029-9d3c-40be-903a-52d65393028f';
export default defineSkill({
universalIdentifier: EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER,
name: 'example-skill',
label: 'Example Skill',
description: 'A sample skill for your application',
icon: 'IconBrain',
content: 'Add your skill instructions here. Skills provide context and capabilities to AI agents.',
});
@@ -0,0 +1,22 @@
import { defineView } from 'twenty-sdk';
import { EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER, NAME_FIELD_UNIVERSAL_IDENTIFIER } from 'src/objects/example-object';
export const EXAMPLE_VIEW_UNIVERSAL_IDENTIFIER = 'e004df40-29f3-47ba-b39d-d3a5c444367a';
export default defineView({
universalIdentifier: EXAMPLE_VIEW_UNIVERSAL_IDENTIFIER,
name: 'All example items',
objectUniversalIdentifier: EXAMPLE_OBJECT_UNIVERSAL_IDENTIFIER,
icon: 'IconList',
key: 'INDEX',
position: 0,
fields: [
{
universalIdentifier: '496c40c2-5766-419c-93bf-20fdad3f34bb',
fieldMetadataUniversalIdentifier: NAME_FIELD_UNIVERSAL_IDENTIFIER,
position: 0,
isVisible: true,
size: 200,
},
],
});
@@ -0,0 +1,17 @@
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"jsx": "react-jsx",
"baseUrl": ".",
"paths": {
"src/*": ["./src/*"]
}
},
"include": ["**/*"],
"exclude": ["node_modules", "dist", ".twenty"]
}
@@ -0,0 +1,342 @@
{
"application": {
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000001",
"displayName": "Root App",
"description": "An app with all entities at root level",
"icon": "IconFolder",
"defaultRoleUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000002",
"yarnLockChecksum": "d41d8cd98f00b204e9800998ecf8427e",
"packageJsonChecksum": "ac87abb5113d9d09be71481efc123800",
"apiClientChecksum": null
},
"objects": [
{
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"nameSingular": "myNote",
"namePlural": "myNotes",
"labelSingular": "My note",
"labelPlural": "My notes",
"description": "A simple root-level object",
"icon": "IconNote",
"labelIdentifierFieldMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000031",
"fields": [
{
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000031",
"type": "TEXT",
"label": "Title",
"name": "title"
},
{
"name": "id",
"label": "Id",
"description": "Id",
"icon": "Icon123",
"isNullable": false,
"defaultValue": "uuid",
"type": "UUID",
"universalIdentifier": "5bdb4f57-a349-56d0-b421-845fd55b3026"
},
{
"name": "name",
"label": "Name",
"description": "Name",
"icon": "IconAbc",
"isNullable": true,
"defaultValue": null,
"type": "TEXT",
"universalIdentifier": "86cc7b06-26de-5b7b-bf4a-31fa246dfd90"
},
{
"name": "createdAt",
"label": "Creation date",
"description": "Creation date",
"icon": "IconCalendar",
"isNullable": false,
"defaultValue": "now",
"type": "DATE_TIME",
"universalIdentifier": "abe3bc69-1a51-5814-a722-74f5a025e92a"
},
{
"name": "updatedAt",
"label": "Last update",
"description": "Last time the record was changed",
"icon": "IconCalendarClock",
"isNullable": false,
"defaultValue": "now",
"type": "DATE_TIME",
"universalIdentifier": "c296d408-9720-5a86-8586-3490fbf04b86"
},
{
"name": "deletedAt",
"label": "Deleted at",
"description": "Deletion date",
"icon": "IconCalendarClock",
"isNullable": true,
"defaultValue": null,
"type": "DATE_TIME",
"universalIdentifier": "488333a2-f4ff-5790-88ef-21f07f8f1985"
},
{
"name": "createdBy",
"label": "Created by",
"description": "The creator of the record",
"icon": "IconCreativeCommonsSa",
"isNullable": false,
"defaultValue": {
"name": "''",
"source": "'MANUAL'"
},
"type": "ACTOR",
"universalIdentifier": "fba6e01b-6579-554e-ad64-a676003c8e68"
},
{
"name": "updatedBy",
"label": "Updated by",
"description": "The workspace member who last updated the record",
"icon": "IconUserCircle",
"isNullable": false,
"defaultValue": {
"name": "''",
"source": "'MANUAL'"
},
"type": "ACTOR",
"universalIdentifier": "fa60f87d-15c8-5ff7-9da0-191fa14a922f"
},
{
"name": "position",
"label": "Position",
"description": "Position",
"icon": "IconHierarchy2",
"isNullable": false,
"defaultValue": 0,
"type": "POSITION",
"universalIdentifier": "4a5d7791-ddc9-53ee-bc46-699da7373290"
},
{
"name": "searchVector",
"label": "Search vector",
"icon": "IconSearch",
"description": "Search vector",
"isNullable": true,
"defaultValue": null,
"type": "TS_VECTOR",
"universalIdentifier": "0f00bc3b-f313-5206-8496-842af20a538a"
},
{
"name": "timelineActivities",
"label": "Timeline Activities",
"description": "My notes tied to the MyNote",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "12c84c1c-6e3f-54c5-a9a8-e93c7b46ac35",
"relationTargetFieldMetadataUniversalIdentifier": "7e28b1ea-9a94-5d36-bc03-3f12f476867a",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-6736-4337-b5c4-8b39fae325a5"
},
{
"name": "favorites",
"label": "Favorites",
"description": "My notes tied to the MyNote",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "ed80c73b-25ff-5a3c-99c7-e27fa2f2611e",
"relationTargetFieldMetadataUniversalIdentifier": "698f12fe-3feb-55e3-b6cc-73375f1a8ae6",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-ab56-4e05-92a3-e2414a499860"
},
{
"name": "attachments",
"label": "Attachments",
"description": "My notes tied to the MyNote",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "56a872c8-7a1e-563d-8772-3978c2c5c220",
"relationTargetFieldMetadataUniversalIdentifier": "721b12d8-7a3d-5e13-b8d5-62b3ad8cb8b5",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-bd3d-4c60-8dca-571c71d4447a"
},
{
"name": "noteTargets",
"label": "Note Targets",
"description": "My notes tied to the MyNote",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "011595e8-7524-5ec7-9fbc-4bd3c42d7d24",
"relationTargetFieldMetadataUniversalIdentifier": "94b6f269-fc9a-5bcd-af5b-2bdac69f276b",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-fff0-4b44-be82-bda313884400"
},
{
"name": "taskTargets",
"label": "Task Targets",
"description": "My notes tied to the MyNote",
"icon": "IconBuildingSkyscraper",
"isNullable": true,
"type": "RELATION",
"universalSettings": {
"relationType": "ONE_TO_MANY"
},
"universalIdentifier": "dd734fa3-26c3-53dd-91aa-577c313e1fa4",
"relationTargetFieldMetadataUniversalIdentifier": "50da3cfa-dea5-5c9b-b1b7-cb615e1df4c3",
"relationTargetObjectMetadataUniversalIdentifier": "20202020-5a9a-44e8-95df-771cd06d0fb1"
}
]
}
],
"fields": [
{
"name": "targetMyNote",
"label": "MyNote",
"description": "MyNote My note",
"icon": "IconTimelineEvent",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetMyNoteId"
},
"universalIdentifier": "7e28b1ea-9a94-5d36-bc03-3f12f476867a",
"objectUniversalIdentifier": "20202020-6736-4337-b5c4-8b39fae325a5",
"relationTargetFieldMetadataUniversalIdentifier": "12c84c1c-6e3f-54c5-a9a8-e93c7b46ac35",
"relationTargetObjectMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"type": "MORPH_RELATION",
"morphId": "20202020-9a2b-4c3d-a4e5-f6a7b8c9d0e1"
},
{
"name": "targetMyNote",
"label": "MyNote",
"description": "MyNote My note",
"icon": "IconHeart",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetMyNoteId"
},
"universalIdentifier": "698f12fe-3feb-55e3-b6cc-73375f1a8ae6",
"objectUniversalIdentifier": "20202020-ab56-4e05-92a3-e2414a499860",
"relationTargetFieldMetadataUniversalIdentifier": "ed80c73b-25ff-5a3c-99c7-e27fa2f2611e",
"relationTargetObjectMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"type": "RELATION"
},
{
"name": "targetMyNote",
"label": "MyNote",
"description": "MyNote My note",
"icon": "IconFileImport",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetMyNoteId"
},
"universalIdentifier": "721b12d8-7a3d-5e13-b8d5-62b3ad8cb8b5",
"objectUniversalIdentifier": "20202020-bd3d-4c60-8dca-571c71d4447a",
"relationTargetFieldMetadataUniversalIdentifier": "56a872c8-7a1e-563d-8772-3978c2c5c220",
"relationTargetObjectMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"type": "MORPH_RELATION",
"morphId": "20202020-f634-435d-ab8d-e1168b375c69"
},
{
"name": "targetMyNote",
"label": "MyNote",
"description": "MyNote My note",
"icon": "IconCheckbox",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetMyNoteId"
},
"universalIdentifier": "94b6f269-fc9a-5bcd-af5b-2bdac69f276b",
"objectUniversalIdentifier": "20202020-fff0-4b44-be82-bda313884400",
"relationTargetFieldMetadataUniversalIdentifier": "011595e8-7524-5ec7-9fbc-4bd3c42d7d24",
"relationTargetObjectMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"type": "MORPH_RELATION",
"morphId": "20202020-f635-435d-ab8d-e1168b375c70"
},
{
"name": "targetMyNote",
"label": "MyNote",
"description": "MyNote My note",
"icon": "IconCheckbox",
"isNullable": true,
"universalSettings": {
"relationType": "MANY_TO_ONE",
"onDelete": "SET_NULL",
"joinColumnName": "targetMyNoteId"
},
"universalIdentifier": "50da3cfa-dea5-5c9b-b1b7-cb615e1df4c3",
"objectUniversalIdentifier": "20202020-5a9a-44e8-95df-771cd06d0fb1",
"relationTargetFieldMetadataUniversalIdentifier": "dd734fa3-26c3-53dd-91aa-577c313e1fa4",
"relationTargetObjectMetadataUniversalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000030",
"type": "MORPH_RELATION",
"morphId": "20202020-f636-435d-ab8d-e1168b375c71"
}
],
"roles": [
{
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000040",
"label": "My role",
"description": "A simple root-level role",
"canReadAllObjectRecords": true,
"canUpdateAllObjectRecords": false,
"canSoftDeleteAllObjectRecords": false,
"canDestroyAllObjectRecords": false,
"canUpdateAllSettings": false,
"canBeAssignedToAgents": false,
"canBeAssignedToUsers": true,
"canBeAssignedToApiKeys": false
}
],
"skills": [],
"agents": [],
"logicFunctions": [
{
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000010",
"name": "my-function",
"timeoutSeconds": 5,
"httpRouteTriggerSettings": {
"path": "/my-function",
"httpMethod": "GET",
"isAuthRequired": false
},
"toolInputSchema": {
"type": "object",
"properties": {}
},
"handlerName": "default.config.handler",
"sourceHandlerPath": "my.function.ts",
"builtHandlerPath": "my.function.mjs",
"builtHandlerChecksum": "71f0af6b9dfeef884cc81ae75ca6ecb0"
}
],
"frontComponents": [
{
"universalIdentifier": "e1e2e3e4-e5e6-4000-8000-000000000020",
"name": "my-component",
"description": "A root-level front component",
"componentName": "MyComponent",
"sourceComponentPath": "my.front-component.tsx",
"builtComponentPath": "my.front-component.mjs",
"builtComponentChecksum": "37b905c5467584f03fa5ab2c8a05bc88",
"isHeadless": false
}
],
"publicAssets": [],
"views": [],
"navigationMenuItems": [],
"pageLayouts": []
}
@@ -0,0 +1,36 @@
{
"name": "minimal-app",
"version": "0.1.0",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"packageManager": "yarn@4.9.2",
"scripts": {
"auth:login": "twenty auth:login",
"auth:logout": "twenty auth:logout",
"auth:status": "twenty auth:status",
"auth:switch": "twenty auth:switch",
"auth:list": "twenty auth:list",
"app:dev": "twenty app:dev",
"entity:add": "twenty entity:add",
"function:logs": "twenty function:logs",
"function:execute": "twenty function:execute",
"app:uninstall": "twenty app:uninstall",
"help": "twenty help",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json ."
},
"dependencies": {
"twenty-sdk": "latest"
},
"devDependencies": {
"typescript": "^5.9.3",
"@types/node": "^24.7.2",
"@types/react": "^19.0.2",
"react": "^19.0.2",
"oxlint": "^0.16.0"
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,36 @@
{
"name": "postcard-app",
"version": "0.1.0",
"license": "MIT",
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"packageManager": "yarn@4.9.2",
"scripts": {
"auth:login": "twenty auth:login",
"auth:logout": "twenty auth:logout",
"auth:status": "twenty auth:status",
"auth:switch": "twenty auth:switch",
"auth:list": "twenty auth:list",
"app:dev": "twenty app:dev",
"entity:add": "twenty entity:add",
"function:logs": "twenty function:logs",
"function:execute": "twenty function:execute",
"app:uninstall": "twenty app:uninstall",
"help": "twenty help",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json ."
},
"dependencies": {
"twenty-sdk": "latest"
},
"devDependencies": {
"typescript": "^5.9.3",
"@types/node": "^24.7.2",
"@types/react": "^19.0.2",
"react": "^19.0.2",
"oxlint": "^0.16.0"
}
}
@@ -0,0 +1,42 @@
# Development infrastructure services only (Postgres + Redis).
# Use this when developing locally against the source code.
#
# Usage:
# docker compose -f docker-compose.dev.yml up -d
# docker compose -f docker-compose.dev.yml down # stop
# docker compose -f docker-compose.dev.yml down -v # stop + wipe data
name: twenty-dev
services:
db:
image: postgres:16
volumes:
- dev-db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: default
healthcheck:
test: pg_isready -U postgres -h localhost -d postgres
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
redis:
image: redis:7
ports:
- "6379:6379"
command: ["--maxmemory-policy", "noeviction"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
volumes:
dev-db-data:
@@ -289,43 +289,57 @@ yarn command:prod cron:workflow:automated-cron-trigger
**Environment-only mode:** If you set `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, add these variables to your `.env` file instead.
</Warning>
## Logic Functions
## Logic Functions & Code Interpreter
Twenty supports logic functions for workflows and custom logic. The execution environment is configured via the `SERVERLESS_TYPE` environment variable.
Twenty supports logic functions for workflows and the code interpreter for AI data analysis. Both run user-provided code and require explicit configuration for security.
### Security Defaults
**In production (NODE_ENV=production):** Both logic functions and code interpreter default to **Disabled**. You must explicitly enable them with `LOGIC_FUNCTION_TYPE` and `CODE_INTERPRETER_TYPE` if you need these features.
**In development (NODE_ENV=development):** Both default to **LOCAL** for convenience when running locally.
<Warning>
**Security Notice:** The local driver (`SERVERLESS_TYPE=LOCAL`) runs code directly on the host in a Node.js process with no sandboxing. It should only be used for trusted code in development. For production deployments handling untrusted code, we highly recommend using `SERVERLESS_TYPE=LAMBDA` or `SERVERLESS_TYPE=DISABLED`.
**Security Notice:** The local driver (`LOGIC_FUNCTION_TYPE=LOCAL` or `CODE_INTERPRETER_TYPE=LOCAL`) runs code directly on the host in a Node.js process with no sandboxing. It should only be used for trusted code in development. For production deployments handling untrusted code, use `LOGIC_FUNCTION_TYPE=LAMBDA` or `CODE_INTERPRETER_TYPE=E2B` (with sandboxing), or keep them disabled.
</Warning>
### Available Drivers
### Logic Functions - Available Drivers
| Driver | Environment Variable | Use Case | Security Level |
|--------|---------------------|----------|----------------|
| Disabled | `SERVERLESS_TYPE=DISABLED` | Disable logic functions entirely | N/A |
| Local | `SERVERLESS_TYPE=LOCAL` | Development and trusted environments | Low (no sandboxing) |
| Lambda | `SERVERLESS_TYPE=LAMBDA` | Production with untrusted code | High (hardware-level isolation) |
| Disabled | `LOGIC_FUNCTION_TYPE=DISABLED` | Disable logic functions entirely | N/A |
| Local | `LOGIC_FUNCTION_TYPE=LOCAL` | Development and trusted environments | Low (no sandboxing) |
| Lambda | `LOGIC_FUNCTION_TYPE=LAMBDA` | Production with untrusted code | High (hardware-level isolation) |
### Recommended Configuration
### Logic Functions - Recommended Configuration
**For development:**
```bash
SERVERLESS_TYPE=LOCAL # default
LOGIC_FUNCTION_TYPE=LOCAL # default when NODE_ENV=development
```
**For production (AWS):**
```bash
SERVERLESS_TYPE=LAMBDA
SERVERLESS_LAMBDA_REGION=us-east-1
SERVERLESS_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
SERVERLESS_LAMBDA_ACCESS_KEY_ID=your-access-key
SERVERLESS_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
LOGIC_FUNCTION_TYPE=LAMBDA
LOGIC_FUNCTION_LAMBDA_REGION=us-east-1
LOGIC_FUNCTION_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID=your-access-key
LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
```
**To disable logic functions:**
```bash
SERVERLESS_TYPE=DISABLED
LOGIC_FUNCTION_TYPE=DISABLED # default when NODE_ENV=production
```
### Code Interpreter - Available Drivers
| Driver | Environment Variable | Use Case | Security Level |
|--------|---------------------|----------|----------------|
| Disabled | `CODE_INTERPRETER_TYPE=DISABLED` | Disable AI code execution | N/A |
| Local | `CODE_INTERPRETER_TYPE=LOCAL` | Development only | Low (no sandboxing) |
| E2B | `CODE_INTERPRETER_TYPE=E_2_B` | Production with sandboxed execution | High (isolated sandbox) |
<Note>
When using `SERVERLESS_TYPE=DISABLED`, any attempt to execute a logic function will return an error. This is useful if you want to run Twenty without logic function capabilities.
When using `LOGIC_FUNCTION_TYPE=DISABLED` or `CODE_INTERPRETER_TYPE=DISABLED`, any attempt to execute will return an error. This is useful if you want to run Twenty without these capabilities.
</Note>
@@ -837,20 +837,20 @@ export default defineFrontComponent({
* **مُنشأ بالقالب**: شغّل `yarn twenty entity:add` واختر خيار إضافة مكوّن أمامي جديد.
* **يدوي**: أنشئ ملفًا جديدًا `.tsx` واستخدم `defineFrontComponent()` مع اتباع النمط نفسه.
#### Where front components can be used
#### أين يمكن استخدام مكوّنات الواجهة الأمامية
Front components can render in two locations within Twenty:
يمكن عرض مكوّنات الواجهة الأمامية في موقعين داخل Twenty:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **اللوحة الجانبية** — المكوّنات غير عديمة الرأس تفتح في اللوحة الجانبية اليمنى. هذا هو السلوك الافتراضي عندما يتم تشغيل مكوّن واجهة أمامية من قائمة الأوامر.
* **الويدجت (لوحات المعلومات وصفحات السجلات)** — يمكن تضمين مكوّنات الواجهة الأمامية كويدجت داخل تخطيطات الصفحات. عند تكوين لوحة معلومات أو تخطيط صفحة سجل، يمكن للمستخدمين إضافة ويدجت لمكوّن واجهة أمامية.
#### Headless vs non-headless
#### عديم الرأس مقابل غير عديم الرأس
Front components come in two rendering modes controlled by the `isHeadless` option:
تأتي مكوّنات الواجهة الأمامية بوضعَي عرض يتحكّم بهما الخيار `isHeadless`:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**غير عديم الرأس (افتراضي)** — يعرض المكوّن واجهة مستخدم مرئية. عند تشغيله من قائمة الأوامر يفتح في اللوحة الجانبية. هذا هو السلوك الافتراضي عندما تكون `isHeadless` تساوي `false` أو يتم تجاهلها.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**عديم الرأس** — يتم تركيب المكوّن بشكل غير مرئي في الخلفية. لا يفتح اللوحة الجانبية. تم تصميم المكوّنات عديمة الرأس لإجراءات تنفّذ منطقًا ثم تُزيل تركيبها ذاتيًا — على سبيل المثال، تشغيل مهمة غير متزامنة، أو الانتقال إلى صفحة، أو إظهار نافذة تأكيد منبثقة. تتوافق بشكل طبيعي مع مكوّنات Command في SDK الموصوفة أدناه.
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### إضافة عناصر قائمة الأوامر
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
لجعل مكوّن واجهة أمامية يظهر كعنصر في قائمة الأوامر في Twenty، أضف الخاصية `command` إلى `defineFrontComponent()`. عند فتح المستخدمين لقائمة الأوامر (Cmd+K / Ctrl+K)، يظهر العنصر ويشغّل مكوّن الواجهة الأمامية عند النقر.
The `command` object accepts the following fields:
يقبل كائن `command` الحقول التالية:
| الحقل | النوع | الوصف |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `التسمية` | `string` (required) | Display label shown in the command menu |
| `أيقونة` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| الحقل | النوع | الوصف |
| --------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------- |
| `universalIdentifier` | `string` (إلزامي) | معرّف فريد لعنصر قائمة الأوامر |
| `التسمية` | `string` (إلزامي) | التسمية المعروضة في قائمة الأوامر |
| `أيقونة` | `string` (اختياري) | اسم الأيقونة (مثال: `'IconSparkles'`) |
| `isPinned` | `boolean` (اختياري) | ما إذا كان الأمر مثبتًا أعلى القائمة |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (اختياري) | `GLOBAL` يعرض الأمر في كل مكان؛ `RECORD_SELECTION` يعرضه فقط في سياقات السجلّات |
| `availabilityObjectUniversalIdentifier` | `string` (اختياري) | تقييد الأمر بنوع كائن محدّد (مثال: Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
إليك مثالًا من تطبيق تسجيل المكالمات يضيف أمرًا محصورًا بسجلات Person:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
عند مزامنة الأمر، يظهر في قائمة الأوامر. إذا كان مكوّن الواجهة الأمامية غير عديم الرأس، تُفتح اللوحة الجانبية مع عرض المكوّن بداخلها. إذا كان عديم الرأس، فسيتم تركيب المكوّن في الخلفية وتنفيذ منطقه.
#### SDK Command components
#### مكوّنات Command في SDK
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
توفر حزمة `twenty-sdk` أربعة مكوّنات مساعدة من نوع Command مصممة للمكوّنات عديمة الرأس في الواجهة الأمامية. كل مكوّن ينفّذ إجراءً عند التركيب، ويتعامل مع الأخطاء بعرض إشعار Snackbar، ويزيل تركيب مكوّن الواجهة الأمامية تلقائيًا عند الانتهاء.
Import them from `twenty-sdk/command`:
استوردها من `twenty-sdk/command`:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — يشغّل رد نداء غير متزامن عبر الخاصية `execute`.
* **`CommandLink`** — ينتقل إلى مسار في التطبيق. الخصائص: `to`، `params`، `queryParams`، `options`.
* **`CommandModal`** — يفتح نافذة تأكيد منبثقة. إذا أكّد المستخدم، ينفّذ رد النداء `execute`. الخصائص: `title`، `subtitle`، `execute`، `confirmButtonText`، `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — يفتح صفحة محدّدة في اللوحة الجانبية. الخصائص: `page`، `pageTitle`، `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
فيما يلي مثال كامل لمكوّن واجهة أمامية عديم الرأس يستخدم `Command` لتشغيل إجراء من قائمة الأوامر:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
ومثال يستخدم `CommandModal` لطلب التأكيد قبل التنفيذ:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### سياق التنفيذ
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
يتلقّى كل مكوّن واجهة أمامية سياق تنفيذ يوفّر معلومات حول مكان وكيفية تشغيله. يمكنك الوصول إلى قيم السياق باستخدام الخطافات من `twenty-sdk`:
| Hook | Return type | الوصف |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| الخطّاف | نوع القيمة المرجعة | الوصف |
| ----------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | المعرّف الفريد لمثيل مكوّن الواجهة الأمامية الحالي |
| `useRecordId()` | `string \| null` | معرّف السجل الحالي، عندما يعمل المكوّن في سياق سجل (مثال: ويدجت صفحة سجل أو أمر محصور بسجل). يُرجع `null` خلاف ذلك. |
| `useUserId()` | `string \| null` | معرّف المستخدم الحالي |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactive — if the surrounding record changes, hooks automatically return the updated values.
السياق تفاعلي — إذا تغيّر السجل المحيط، فستُرجع الخطافات القيم المحدّثة تلقائيًا.
#### Host API functions
#### دوال واجهة برمجة تطبيقات المضيف
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
تعمل مكوّنات الواجهة الأمامية في بيئة معزولة، لكنها تستطيع التفاعل مع واجهة مستخدم Twenty عبر مجموعة من الدوال التي يوفّرها المضيف. استوردها مباشرةً من `twenty-sdk`:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| دالة | Signature | الوصف |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `التنقل` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| دالة | التوقيع | الوصف |
| ------------------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `التنقل` | `(to, params?, queryParams?, options?) => Promise<void>` | الانتقال إلى مسار تطبيق محدّد النوع داخل Twenty |
| `closeSidePanel` | `() => Promise<void>` | إغلاق اللوحة الجانبية |
| `enqueueSnackbar` | `(params) => Promise<void>` | عرض إشعار Snackbar. المعاملات: `message`، `variant` (`'error'`، `'success'`، `'info'`، `'warning'`)، `duration` اختياري، `detailedMessage`، `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | إلغاء تركيب مكوّن الواجهة الأمامية الحالي (تستخدمه المكوّنات عديمة الرأس للتنظيف بعد التنفيذ) |
| `openSidePanelPage` | `(params) => Promise<void>` | فتح صفحة في اللوحة الجانبية. المعاملات: `page`، `pageTitle`، `pageIcon`، `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | عرض نافذة تأكيد منبثقة والانتظار لرد المستخدم. المعاملات: `title`، `subtitle`، `confirmButtonText`، `confirmButtonAccent` (`'default'`، `'blue'`، `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
فيما يلي مثال يستخدم واجهة برمجة تطبيقات المضيف لعرض Snackbar وإغلاق اللوحة الجانبية بعد اكتمال الإجراء:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -837,20 +837,20 @@ Sie können neue Frontend-Komponenten auf zwei Arten erstellen:
* **Generiert**: Führen Sie `yarn twenty entity:add` aus und wählen Sie die Option zum Hinzufügen einer neuen Frontend-Komponente.
* **Manuell**: Erstellen Sie eine neue `.tsx`-Datei und verwenden Sie `defineFrontComponent()` nach demselben Muster.
#### Where front components can be used
#### Wo Front-Komponenten verwendet werden können
Front components can render in two locations within Twenty:
Front-Komponenten können an zwei Stellen innerhalb von Twenty gerendert werden:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **Seitenpanel** — Nicht-Headless-Front-Komponenten werden im rechten Seitenpanel geöffnet. Dies ist das Standardverhalten, wenn eine Front-Komponente über das Befehlsmenü ausgelöst wird.
* **Widgets (Dashboards und Datensatzseiten)** — Front-Komponenten können als Widgets in Seitenlayouts eingebettet werden. Beim Konfigurieren eines Dashboards oder eines Datensatzseiten-Layouts können Benutzer ein Front-Komponenten-Widget hinzufügen.
#### Headless vs non-headless
#### Headless vs. Nicht-Headless
Front components come in two rendering modes controlled by the `isHeadless` option:
Front-Komponenten gibt es in zwei Rendering-Modi, die durch die Option `isHeadless` gesteuert werden:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**Nicht-Headless (Standard)** — Die Komponente rendert eine sichtbare UI. Wird sie über das Befehlsmenü ausgelöst, öffnet sie sich im Seitenpanel. Dies ist das Standardverhalten, wenn `isHeadless` `false` ist oder weggelassen wird.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**Headless** — Die Komponente wird unsichtbar im Hintergrund gemountet. Sie öffnet das Seitenpanel nicht. Headless-Komponenten sind für Aktionen konzipiert, die Logik ausführen und sich anschließend selbst unmounten — zum Beispiel das Ausführen einer asynchronen Aufgabe, das Navigieren zu einer Seite oder das Anzeigen eines Bestätigungsdialogs. Sie lassen sich gut mit den unten beschriebenen SDK-Command-Komponenten kombinieren.
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### Befehlsmenü-Einträge hinzufügen
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
Damit eine Front-Komponente als Eintrag im Befehlsmenü von Twenty erscheint, fügen Sie die Eigenschaft `command` zu `defineFrontComponent()` hinzu. Wenn Benutzer das Befehlsmenü öffnen (Cmd+K / Ctrl+K), erscheint der Eintrag und löst beim Klicken die Front-Komponente aus.
The `command` object accepts the following fields:
Das Objekt `command` akzeptiert die folgenden Felder:
| Feld | Typ | Beschreibung |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `beschriftung` | `string` (required) | Display label shown in the command menu |
| `symbol` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| Feld | Typ | Beschreibung |
| --------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `universalIdentifier` | `string` (erforderlich) | Eindeutige ID für den Befehlsmenü-Eintrag |
| `beschriftung` | `string` (erforderlich) | Angezeigtes Label im Befehlsmenü |
| `symbol` | `string` (optional) | Iconname (z. B. 'IconSparkles') |
| `isPinned` | `boolean` (optional) | Ob der Befehl oben im Menü angeheftet ist |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` zeigt den Befehl überall an; `RECORD_SELECTION` zeigt ihn nur in Datensatzkontexten an |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Beschränkt den Befehl auf einen bestimmten Objekttyp (z. B. Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
Hier ist ein Beispiel aus der Call-Recording-App, das einen auf Person-Datensätze beschränkten Befehl hinzufügt:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
Wenn der Befehl synchronisiert wird, erscheint er im Befehlsmenü. Wenn die Front-Komponente Nicht-Headless ist, öffnet sich das Seitenpanel und die Komponente wird darin gerendert. Wenn sie Headless ist, wird die Komponente im Hintergrund gemountet und führt ihre Logik aus.
#### SDK Command components
#### SDK-Command-Komponenten
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
Das Paket `twenty-sdk` stellt vier Command-Hilfskomponenten bereit, die für Headless-Front-Komponenten ausgelegt sind. Jede Komponente führt beim Mounten eine Aktion aus, behandelt Fehler durch Anzeige einer Snackbar-Benachrichtigung und unmountet die Front-Komponente nach Abschluss automatisch.
Import them from `twenty-sdk/command`:
Importieren Sie sie aus `twenty-sdk/command`:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — Führt einen asynchronen Callback über das Prop `execute` aus.
* **`CommandLink`** — Navigiert zu einem App-Pfad. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Öffnet einen Bestätigungsdialog. Bestätigt der Benutzer, wird der Callback `execute` ausgeführt. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Öffnet eine bestimmte Seite im Seitenpanel. Props: `page`, `pageTitle`, `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
Hier ist ein vollständiges Beispiel einer Headless-Front-Komponente, die `Command` verwendet, um eine Aktion aus dem Befehlsmenü auszuführen:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
Und ein Beispiel, das `CommandModal` verwendet, um vor der Ausführung um Bestätigung zu bitten:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### Ausführungskontext
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
Jede Front-Komponente erhält einen Ausführungskontext, der Informationen darüber liefert, wo und wie sie ausgeführt wird. Greifen Sie mit Hooks aus `twenty-sdk` auf Kontextwerte zu:
| Hook | Return type | Beschreibung |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| Hook | Rückgabetyp | Beschreibung |
| ----------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `useFrontComponentId()` | `string` | Die eindeutige ID der aktuellen Front-Komponenteninstanz |
| `useRecordId()` | `string \| null` | Die ID des aktuellen Datensatzes, wenn die Komponente in einem Datensatzkontext ausgeführt wird (z. B. ein Widget auf einer Datensatzseite oder ein auf einen Datensatz beschränkter Befehl). Andernfalls wird `null` zurückgegeben. |
| `useUserId()` | `string \| null` | Die ID des aktuellen Benutzers |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactiveif the surrounding record changes, hooks automatically return the updated values.
Der Kontext ist reaktiv — ändert sich der umgebende Datensatz, liefern die Hooks automatisch die aktualisierten Werte.
#### Host API functions
#### Host-API-Funktionen
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
Front-Komponenten laufen in einer isolierten Sandbox, können jedoch über eine Reihe vom Host bereitgestellter Funktionen mit der UI von Twenty interagieren. Importieren Sie sie direkt aus `twenty-sdk`:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| Funktion | Signature | Beschreibung |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `navigieren` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| Funktion | Signatur | Beschreibung |
| ------------------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `navigieren` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigieren Sie zu einem typisierten App-Pfad innerhalb von Twenty |
| `closeSidePanel` | `() => Promise<void>` | Seitenpanel schließen |
| `enqueueSnackbar` | `(params) => Promise<void>` | Eine Snackbar-Benachrichtigung anzeigen. Parameter: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Die aktuelle Front-Komponente unmounten (wird von Headless-Komponenten verwendet, um nach der Ausführung aufzuräumen) |
| `openSidePanelPage` | `(params) => Promise<void>` | Eine Seite im Seitenpanel öffnen. Parameter: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Einen Bestätigungsdialog anzeigen und auf die Antwort des Benutzers warten. Parameter: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
Hier ist ein Beispiel, das die Host-API verwendet, um nach Abschluss einer Aktion eine Snackbar anzuzeigen und das Seitenpanel zu schließen:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -837,20 +837,20 @@ Puoi creare nuovi componenti front-end in due modi:
* **Generata dallo scaffolder**: Esegui `yarn twenty entity:add` e scegli l'opzione per aggiungere un nuovo componente front-end.
* **Manuale**: Crea un nuovo file `.tsx` e usa `defineFrontComponent()`, seguendo lo stesso schema.
#### Where front components can be used
#### Dove possono essere utilizzati i componenti front.
Front components can render in two locations within Twenty:
I componenti front possono essere renderizzati in due posizioni all'interno di Twenty:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **Pannello laterale** — I componenti front non headless si aprono nel pannello laterale destro. Questo è il comportamento predefinito quando un componente front viene avviato dal menu comandi.
* **Widget (dashboard e pagine dei record)** — I componenti front possono essere incorporati come widget all'interno dei layout di pagina. Quando si configura una dashboard o il layout di una pagina record, gli utenti possono aggiungere un widget del componente front.
#### Headless vs non-headless
#### Headless vs non headless
Front components come in two rendering modes controlled by the `isHeadless` option:
I componenti front prevedono due modalità di rendering controllate dall'opzione `isHeadless`:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**Non headless (predefinito)** — Il componente renderizza un'interfaccia utente visibile. Quando viene avviato dal menu comandi, si apre nel pannello laterale. Questo è il comportamento predefinito quando `isHeadless` è `false` o omesso.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**Headless** — Il componente viene montato in modo invisibile in background. Non apre il pannello laterale. I componenti headless sono pensati per azioni che eseguono una logica e poi si smontano — ad esempio, eseguire un'attività asincrona, navigare a una pagina o mostrare una finestra modale di conferma. Si abbinano naturalmente ai componenti Command dell'SDK descritti di seguito.
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### Aggiungere voci al menu comandi
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
Per far comparire un componente front come voce nel menu comandi di Twenty, aggiungi la proprietà `command` a `defineFrontComponent()`. Quando gli utenti aprono il menu comandi (Cmd+K / Ctrl+K), la voce viene mostrata e al clic attiva il componente front.
The `command` object accepts the following fields:
L'oggetto `command` accetta i seguenti campi:
| Campo | Tipo | Descrizione |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `etichetta` | `string` (required) | Display label shown in the command menu |
| `icona` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| Campo | Tipo | Descrizione |
| --------------------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `universalIdentifier` | `string` (obbligatorio) | ID univoco per la voce del menu comandi |
| `etichetta` | `string` (obbligatorio) | Etichetta visualizzata nel menu comandi |
| `icona` | `string` (facoltativo) | Nome dell'icona (ad es., `'IconSparkles'`) |
| `isPinned` | `boolean` (facoltativo) | Indica se il comando è fissato in alto nel menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (facoltativo) | `GLOBAL` mostra il comando ovunque; `RECORD_SELECTION` lo mostra solo nei contesti dei record |
| `availabilityObjectUniversalIdentifier` | `string` (facoltativo) | Limita il comando a uno specifico tipo di oggetto (ad es., Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
Ecco un esempio dall'app di registrazione delle chiamate che aggiunge un comando limitato ai record Person:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
Quando il comando viene sincronizzato, appare nel menu comandi. Se il componente front è non headless, si apre il pannello laterale con il componente renderizzato al suo interno. Se è headless, il componente viene montato in background ed esegue la propria logica.
#### SDK Command components
#### Componenti Command dell'SDK
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
Il pacchetto `twenty-sdk` fornisce quattro componenti di supporto Command progettati per i componenti front headless. Ogni componente esegue un'azione al montaggio, gestisce gli errori mostrando una notifica snackbar e smonta automaticamente il componente front al termine.
Import them from `twenty-sdk/command`:
Importali da `twenty-sdk/command`:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — Esegue una callback asincrona tramite la prop `execute`.
* **`CommandLink`** — Naviga verso un percorso dell'app. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Apre una finestra modale di conferma. Se l'utente conferma, esegue la callback `execute`. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Apre una specifica pagina del pannello laterale. Props: `page`, `pageTitle`, `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
Ecco un esempio completo di componente front headless che usa `Command` per eseguire un'azione dal menu comandi:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
E un esempio che usa `CommandModal` per chiedere conferma prima di eseguire:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### Contesto di esecuzione
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
Ogni componente front riceve un contesto di esecuzione che fornisce informazioni su dove e come sta funzionando. Accedi ai valori del contesto usando gli hook di `twenty-sdk`:
| Hook | Return type | Descrizione |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| Hook | Tipo restituito | Descrizione |
| ----------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | L'ID univoco dell'istanza corrente del componente front |
| `useRecordId()` | `string \| null` | L'ID del record corrente, quando il componente viene eseguito in un contesto di record (ad es., un widget di pagina record o un comando con ambito a un record). In caso contrario, restituisce `null`. |
| `useUserId()` | `string \| null` | L'ID dell'utente corrente |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactiveif the surrounding record changes, hooks automatically return the updated values.
Il contesto è reattivose il record circostante cambia, gli hook restituiscono automaticamente i valori aggiornati.
#### Host API functions
#### Funzioni dell'API host
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
I componenti front vengono eseguiti in una sandbox isolata ma possono interagire con l'interfaccia di Twenty tramite un insieme di funzioni fornite dall'host. Importale direttamente da `twenty-sdk`:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| Funzione | Signature | Descrizione |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `naviga` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| Funzione | Firma | Descrizione |
| ------------------------------ | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `naviga` | `(to, params?, queryParams?, options?) => Promise<void>` | Naviga verso un percorso tipizzato dell'app all'interno di Twenty |
| `closeSidePanel` | `() => Promise<void>` | Chiudi il pannello laterale |
| `enqueueSnackbar` | `(params) => Promise<void>` | Mostra una notifica snackbar. Parametri: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), `duration` opzionale, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Smonta il componente front corrente (usato dai componenti headless per pulire dopo l'esecuzione) |
| `openSidePanelPage` | `(params) => Promise<void>` | Apri una pagina nel pannello laterale. Parametri: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Mostra una finestra modale di conferma e attende la risposta dell'utente. Parametri: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
Ecco un esempio che usa l'API host per mostrare una snackbar e chiudere il pannello laterale dopo il completamento di un'azione:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -838,20 +838,20 @@ Você pode criar novos componentes de front-end de duas formas:
* **Gerado automaticamente**: Execute `yarn twenty entity:add` e escolha a opção para adicionar um novo componente de front-end.
* **Manual**: Crie um novo ficheiro `.tsx` e use `defineFrontComponent()`, seguindo o mesmo padrão.
#### Where front components can be used
#### Onde os componentes de front-end podem ser usados
Front components can render in two locations within Twenty:
Os componentes de front-end podem ser renderizados em dois locais dentro do Twenty:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **Painel lateral** — Componentes de front-end não headless abrem no painel lateral direito. Este é o comportamento padrão quando um componente de front-end é acionado pelo menu de comandos.
* **Widgets (painéis e páginas de registro)** — Componentes de front-end podem ser incorporados como widgets nos layouts de página. Ao configurar um painel ou o layout de uma página de registro, os usuários podem adicionar um widget de componente de front-end.
#### Headless vs non-headless
#### Headless vs não headless
Front components come in two rendering modes controlled by the `isHeadless` option:
Os componentes de front-end têm dois modos de renderização controlados pela opção `isHeadless`:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**Não headless (padrão)** — O componente renderiza uma interface visível. Quando acionado pelo menu de comandos, ele é aberto no painel lateral. Este é o comportamento padrão quando `isHeadless` é `false` ou omitido.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselvesfor example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**Headless** — O componente é montado de forma invisível em segundo plano. Ele não abre o painel lateral. Componentes headless são projetados para ações que executam lógica e, em seguida, se desmontampor exemplo, executar uma tarefa assíncrona, navegar para uma página ou exibir um modal de confirmação. Eles se combinam naturalmente com os componentes Command do SDK descritos abaixo.
```typescript
export default defineFrontComponent({
@@ -867,22 +867,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### Adicionando itens ao menu de comandos
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
Para que um componente de front-end apareça como um item no menu de comandos do Twenty, adicione a propriedade `command` a `defineFrontComponent()`. Quando os usuários abrem o menu de comandos (Cmd+K / Ctrl+K), o item aparece e aciona o componente de front-end ao clicar.
The `command` object accepts the following fields:
O objeto `command` aceita os seguintes campos:
| Campo | Tipo | Descrição |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `etiqueta` | `string` (required) | Display label shown in the command menu |
| `ícone` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| Campo | Tipo | Descrição |
| --------------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `universalIdentifier` | `string` (obrigatório) | ID exclusivo para o item do menu de comandos |
| `etiqueta` | `string` (obrigatório) | Rótulo exibido no menu de comandos |
| `ícone` | `string` (opcional) | Nome do ícone (por exemplo, `'IconSparkles'`) |
| `isPinned` | `boolean` (opcional) | Se o comando fica fixado no topo do menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (opcional) | `GLOBAL` mostra o comando em todos os lugares; `RECORD_SELECTION` o mostra apenas em contextos de registro |
| `availabilityObjectUniversalIdentifier` | `string` (opcional) | Restringe o comando a um tipo específico de objeto (por exemplo, Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
Aqui está um exemplo do app de gravação de chamadas que adiciona um comando com escopo para registros de Person:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -904,20 +904,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
Quando o comando é sincronizado, ele aparece no menu de comandos. Se o componente de front-end não for headless, o painel lateral é aberto com o componente renderizado dentro. Se for headless, o componente é montado em segundo plano e executa sua lógica.
#### SDK Command components
#### Componentes Command do SDK
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
O pacote `twenty-sdk` fornece quatro componentes auxiliares Command projetados para componentes de front-end headless. Cada componente executa uma ação ao montar, trata erros exibindo uma notificação de snackbar e desmonta automaticamente o componente de front-end ao concluir.
Import them from `twenty-sdk/command`:
Importe-os de `twenty-sdk/command`:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — Executa um callback assíncrono via a prop `execute`.
* **`CommandLink`** — Navega para um caminho do app. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Abre um modal de confirmação. Se o usuário confirmar, executa o callback `execute`. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Abre uma página específica do painel lateral. Props: `page`, `pageTitle`, `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
Aqui está um exemplo completo de um componente de front-end headless usando `Command` para executar uma ação a partir do menu de comandos:
```typescript
// src/front-components/run-action.tsx
@@ -954,7 +954,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
E um exemplo usando `CommandModal` para solicitar confirmação antes de executar:
```typescript
// src/front-components/delete-draft.tsx
@@ -991,15 +991,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### Contexto de execução
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
Todo componente de front-end recebe um contexto de execução que fornece informações sobre onde e como está sendo executado. Acesse os valores do contexto usando hooks do `twenty-sdk`:
| Hook | Return type | Descrição |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| Hook | Tipo de retorno | Descrição |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | O ID exclusivo da instância atual do componente de front-end |
| `useRecordId()` | `string \| null` | O ID do registro atual, quando o componente é executado em um contexto de registro (por exemplo, um widget de página de registro ou um comando com escopo para um registro). Retorna `null` caso contrário. |
| `useUserId()` | `string \| null` | O ID do usuário atual |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1017,11 +1017,11 @@ const MyWidget = () => {
};
```
The context is reactiveif the surrounding record changes, hooks automatically return the updated values.
O contexto é reativose o registro de contexto mudar, os hooks retornam automaticamente os valores atualizados.
#### Host API functions
#### Funções da API do host
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
Os componentes de front-end são executados em um sandbox isolado, mas podem interagir com a UI do Twenty por meio de um conjunto de funções fornecidas pelo host. Importe-as diretamente de `twenty-sdk`:
```typescript
import {
@@ -1034,16 +1034,16 @@ import {
} from 'twenty-sdk';
```
| Função | Signature | Descrição |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `navegar` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| Função | Assinatura | Descrição |
| ------------------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `navegar` | `(to, params?, queryParams?, options?) => Promise<void>` | Navega para um caminho tipado do app dentro do Twenty |
| `closeSidePanel` | `() => Promise<void>` | Fecha o painel lateral |
| `enqueueSnackbar` | `(params) => Promise<void>` | Exibe uma notificação de snackbar. Parâmetros: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), `duration` opcional, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Desmonta o componente de front-end atual (usado por componentes headless para limpar após a execução) |
| `openSidePanelPage` | `(params) => Promise<void>` | Abre uma página no painel lateral. Parâmetros: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Exibe um modal de confirmação e aguarda a resposta do usuário. Parâmetros: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
Aqui está um exemplo que usa a API do host para exibir um snackbar e fechar o painel lateral após a conclusão de uma ação:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -837,20 +837,20 @@ export default defineFrontComponent({
* **Сгенерировано**: Запустите `yarn twenty entity:add` и выберите опцию добавления нового фронтенд-компонента.
* **Вручную**: Создайте новый файл `.tsx` и используйте `defineFrontComponent()`, следуя тому же шаблону.
#### Where front components can be used
#### Где можно использовать фронт-компоненты
Front components can render in two locations within Twenty:
Фронт-компоненты могут отображаться в двух местах внутри Twenty:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **Боковая панель** — фронт-компоненты с интерфейсом открываются в правой боковой панели. Это поведение по умолчанию, когда фронт-компонент запускается из меню команд.
* **Виджеты (дашборды и страницы записей)** — фронт-компоненты можно встраивать как виджеты в макеты страниц. При настройке дашборда или макета страницы записи пользователи могут добавить виджет фронт-компонента.
#### Headless vs non-headless
#### Headless и non-headless
Front components come in two rendering modes controlled by the `isHeadless` option:
Фронт-компоненты поддерживают два режима отображения, управляемых опцией `isHeadless`:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**Non-headless (по умолчанию)** — компонент отображает видимый интерфейс. При запуске из меню команд он открывается в боковой панели. Это поведение по умолчанию, когда `isHeadless` имеет значение `false` или опущен.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**Headless** — компонент монтируется невидимо в фоновом режиме. Он не открывает боковую панель. Компоненты headless предназначены для действий, которые выполняют логику и затем размонтируются — например, запуск асинхронной задачи, переход на страницу или показ модального окна подтверждения. Они естественно сочетаются с компонентами SDK Command, описанными ниже.
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### Добавление элементов меню команд
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
Чтобы фронт-компонент отображался как элемент в меню команд Twenty, добавьте свойство `command` в `defineFrontComponent()`. Когда пользователи открывают меню команд (Cmd+K / Ctrl+K), элемент появляется и при клике запускает фронт-компонент.
The `command` object accepts the following fields:
Объект `command` принимает следующие поля:
| Поле | Тип | Описание |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `метка` | `string` (required) | Display label shown in the command menu |
| `иконка` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| Поле | Тип | Описание |
| --------------------------------------- | ------------------------------------------------ | --------------------------------------------------------------------------------------------- |
| `universalIdentifier` | `string` (обязательно) | Уникальный ID для элемента меню команд |
| `метка` | `string` (обязательно) | Отображаемая метка в меню команд |
| `иконка` | `string` (необязательно) | Имя иконки (например, `'IconSparkles'`) |
| `isPinned` | `boolean` (необязательно) | Закреплена ли команда в верхней части меню |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (необязательно) | `GLOBAL` показывает команду везде; `RECORD_SELECTION` показывает её только в контексте записи |
| `availabilityObjectUniversalIdentifier` | `string` (необязательно) | Ограничивает команду конкретным типом объекта (например, Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
Вот пример из приложения записи звонков, которое добавляет команду, ограниченную записями Person:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
Когда команда синхронизируется, она появляется в меню команд. Если фронт-компонент с интерфейсом, открывается боковая панель с отображаемым внутри компонентом. Если он headless, компонент монтируется в фоновом режиме и выполняет свою логику.
#### SDK Command components
#### Компоненты SDK Command
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
Пакет `twenty-sdk` предоставляет четыре вспомогательных компонента Command, предназначенных для headless фронт-компонентов. Каждый компонент выполняет действие при монтировании, обрабатывает ошибки, показывая уведомление snackbar, и автоматически размонтирует фронт-компонент по завершении.
Import them from `twenty-sdk/command`:
Импортируйте их из `twenty-sdk/command`:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — запускает асинхронный колбэк через проп `execute`.
* **`CommandLink`** — переходит по пути внутри приложения. Пропы: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — открывает модальное окно подтверждения. Если пользователь подтвердит, выполняет колбэк `execute`. Пропы: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — открывает конкретную страницу боковой панели. Пропы: `page`, `pageTitle`, `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
Полный пример headless фронт-компонента, использующего `Command` для запуска действия из меню команд:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
А также пример с использованием `CommandModal` для запроса подтверждения перед выполнением:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### Контекст выполнения
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
Каждый фронт-компонент получает контекст выполнения, который предоставляет информацию о том, где и как он запущен. Получайте значения контекста с помощью хуков из `twenty-sdk`:
| Hook | Return type | Описание |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `строка` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| Хук | Тип возвращаемого значения | Описание |
| ----------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `строка` | Уникальный ID текущего экземпляра фронт-компонента |
| `useRecordId()` | `string \| null` | ID текущей записи, когда компонент запускается в контексте записи (например, виджет на странице записи или команда с областью действия записи). В противном случае возвращает `null`. |
| `useUserId()` | `string \| null` | ID текущего пользователя |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactive — if the surrounding record changes, hooks automatically return the updated values.
Контекст реактивный: если окружающая запись изменяется, хуки автоматически возвращают обновлённые значения.
#### Host API functions
#### Функции API хоста
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
Фронт-компоненты выполняются в изолированной песочнице, но могут взаимодействовать с интерфейсом Twenty через набор функций, предоставляемых хостом. Импортируйте их напрямую из `twenty-sdk`:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| Функция | Signature | Описание |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `навигация` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| Функция | Сигнатура | Описание |
| ------------------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `навигация` | `(to, params?, queryParams?, options?) => Promise<void>` | Переход по типизированному пути приложения внутри Twenty |
| `closeSidePanel` | `() => Promise<void>` | Закрыть боковую панель |
| `enqueueSnackbar` | `(params) => Promise<void>` | Показать уведомление snackbar. Параметры: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), необязательно `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Размонтировать текущий фронт-компонент (используется headless-компонентами для очистки после выполнения) |
| `openSidePanelPage` | `(params) => Promise<void>` | Открыть страницу в боковой панели. Параметры: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Показать модальное окно подтверждения и дождаться ответа пользователя. Параметры: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
Пример, который использует API хоста для показа snackbar и закрытия боковой панели после завершения действия:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -837,20 +837,20 @@ Yeni ön uç bileşenlerini iki şekilde oluşturabilirsiniz:
* **Şablondan**: `yarn twenty entity:add` çalıştırın ve yeni bir ön uç bileşeni ekleme seçeneğini seçin.
* **Manuel**: Aynı deseni izleyerek yeni bir `.tsx` dosyası oluşturun ve `defineFrontComponent()` kullanın.
#### Where front components can be used
#### Ön bileşenlerin kullanılabileceği yerler
Front components can render in two locations within Twenty:
Ön bileşenler, Twenty içinde iki konumda işlenebilir:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **Yan panel** — Headless olmayan ön bileşenler, sağ taraftaki yan panelde açılır. Bir ön bileşen komut menüsünden tetiklendiğinde varsayılan davranış budur.
* **Widget'lar (panolar ve kayıt sayfaları)** — Ön bileşenler, sayfa düzenlerine widget olarak gömülebilir. Bir pano veya kayıt sayfası düzeni yapılandırılırken kullanıcılar bir ön bileşen widget'ı ekleyebilir.
#### Headless vs non-headless
#### Headless ve headless olmayan
Front components come in two rendering modes controlled by the `isHeadless` option:
Ön bileşenler, `isHeadless` seçeneğiyle kontrol edilen iki işleme kipiyle gelir:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**Headless olmayan (varsayılan)** — Bileşen görünür bir kullanıcı arayüzü (UI) oluşturur. Komut menüsünden tetiklendiğinde yan panelde açılır. `isHeadless` `false` olduğunda veya belirtilmediğinde bu varsayılan davranıştır.
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**Headless** — Bileşen arka planda görünmez şekilde bağlanır. Yan paneli açmaz. Headless bileşenler, mantığı çalıştırıp ardından kendilerini kaldıran eylemler için tasarlanmıştır — örneğin, bir async görevi çalıştırma, bir sayfaya gitme veya bir onay modalı gösterme. Aşağıda açıklanan SDK Command bileşenleriyle doğal olarak eşleşirler.
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### Komut menüsüne öğe ekleme
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
Bir ön bileşenin Twenty'nin komut menüsünde bir öğe olarak görünmesi için `defineFrontComponent()` içine `command` özelliğini ekleyin. Kullanıcılar komut menüsünü (Cmd+K / Ctrl+K) açtığında, öğe görüntülenir ve tıklandığında ön bileşeni tetikler.
The `command` object accepts the following fields:
`command` nesnesi aşağıdaki alanları kabul eder:
| Alan | Tür | Açıklama |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `etiket` | `string` (required) | Display label shown in the command menu |
| `simge` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| Alan | Tür | Açıklama |
| --------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (zorunlu) | Komut menüsü öğesi için benzersiz kimlik |
| `etiket` | `string` (zorunlu) | Komut menüsünde gösterilen etiket |
| `simge` | `string` (isteğe bağlı) | Simge adı (ör. `'IconSparkles'`) |
| `isPinned` | `boolean` (isteğe bağlı) | Komutun menünün en üstüne sabitlenip sabitlenmediği |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (isteğe bağlı) | `GLOBAL` komutu her yerde gösterir; `RECORD_SELECTION` ise yalnızca kayıt bağlamlarında gösterir |
| `availabilityObjectUniversalIdentifier` | `string` (isteğe bağlı) | Komutu belirli bir nesne türüyle sınırlandırın (ör. Person) |
Here is an example from the call-recording app that adds a command scoped to Person records:
Person kayıtlarına özel bir komut ekleyen çağrı kaydı uygulamasından bir örnek:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
Komut senkronize edildiğinde komut menüsünde görünür. Ön bileşen headless değilse, yan panel bileşen içeride işlenmiş halde açılır. Headless ise bileşen arka planda bağlanır ve mantığını yürütür.
#### SDK Command components
#### SDK Command bileşenleri
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
`twenty-sdk` paketi, headless ön bileşenler için tasarlanmış dört Command yardımcı bileşeni sağlar. Her bileşen bağlandığında bir eylem yürütür, hataları bir snackbar bildirimi göstererek ele alır ve tamamlandığında ön bileşeni otomatik olarak kaldırır.
Import them from `twenty-sdk/command`:
Bunları `twenty-sdk/command` içinden içe aktarın:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — `execute` prop'u aracılığıyla async bir geri çağrıyı çalıştırır.
* **`CommandLink`** — Bir uygulama yoluna gider. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Bir onay modalı açar. Kullanıcı onaylarsa `execute` geri çağrısını yürütür. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Belirli bir yan panel sayfasını açar. Props: `page`, `pageTitle`, `pageIcon`.
Here is a full example of a headless front component using `Command` to run an action from the command menu:
`Command` kullanarak komut menüsünden bir eylem çalıştıran headless bir ön bileşenin tam örneği:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
Ve yürütmeden önce onay istemek için `CommandModal` kullanan bir örnek:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### Yürütme bağlamı
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
Her ön bileşen, nerede ve nasıl çalıştığına dair bilgi sağlayan bir yürütme bağlamı alır. Bağlam değerlerine `twenty-sdk` içindeki hook'ları kullanarak erişin:
| Hook | Return type | Açıklama |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| Hook | Dönüş türü | Açıklama |
| ----------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | Geçerli ön bileşen örneğinin benzersiz kimliği |
| `useRecordId()` | `string \| null` | Bileşen bir kayıt bağlamında çalıştığında (ör. bir kayıt sayfası widget'ı veya bir kayda özel bir komut) geçerli kaydın kimliği. Aksi halde `null` döner. |
| `useUserId()` | `string \| null` | Geçerli kullanıcının kimliği |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactive — if the surrounding record changes, hooks automatically return the updated values.
Bağlam tepkiseldir — çevredeki kayıt değişirse, hook'lar güncellenmiş değerleri otomatik olarak döndürür.
#### Host API functions
#### Host API işlevleri
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
Ön bileşenler yalıtılmış bir korumalı alanda çalışır ancak host tarafından sağlanan bir dizi işleve aracılığıyla Twenty'nin arayüzüyle etkileşime girebilir. Bunları doğrudan `twenty-sdk` içinden içe aktarın:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| Fonksiyon | Signature | Açıklama |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gezin` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| Fonksiyon | İmza | Açıklama |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gezin` | `(to, params?, queryParams?, options?) => Promise<void>` | Twenty içinde tiplendirilmiş bir uygulama yoluna gidin |
| `closeSidePanel` | `() => Promise<void>` | Yan paneli kapat |
| `enqueueSnackbar` | `(params) => Promise<void>` | Bir snackbar bildirimi gösterin. Parametreler: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), isteğe bağlı `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Geçerli ön bileşeni kaldırın (yürütmeden sonra temizlemek için headless bileşenler tarafından kullanılır) |
| `openSidePanelPage` | `(params) => Promise<void>` | Yan panelde bir sayfa açın. Parametreler: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Bir onay modalı gösterin ve kullanıcının yanıtını bekleyin. Parametreler: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
Bir eylem tamamlandıktan sonra bir snackbar göstermek ve yan paneli kapatmak için host API'sini kullanan bir örnek:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
@@ -837,20 +837,20 @@ export default defineFrontComponent({
* **脚手架生成**:运行 `yarn twenty entity:add` 并选择添加新前端组件的选项。
* **手动**:创建一个新的 `.tsx` 文件,并使用 `defineFrontComponent()`,遵循相同的模式。
#### Where front components can be used
#### 前端组件可用位置
Front components can render in two locations within Twenty:
在 Twenty 中,前端组件可在两个位置进行渲染:
* **Side panel** — Non-headless front components open in the right-hand side panel. This is the default behavior when a front component is triggered from the command menu.
* **Widgets (dashboards and record pages)** — Front components can be embedded as widgets inside page layouts. When configuring a dashboard or a record page layout, users can add a front component widget.
* **侧边栏** — 非无头的前端组件会在右侧侧边栏中打开。 当前端组件从命令菜单触发时,这是默认行为。
* **小部件(仪表盘和记录页面)** — 前端组件可以作为小部件嵌入页面布局中。 在配置仪表盘或记录页面布局时,用户可以添加前端组件小部件。
#### Headless vs non-headless
#### 无头与非无头
Front components come in two rendering modes controlled by the `isHeadless` option:
前端组件有两种由 `isHeadless` 选项控制的渲染模式:
**Non-headless (default)** — The component renders a visible UI. When triggered from the command menu it opens in the side panel. This is the default behavior when `isHeadless` is `false` or omitted.
**非无头(默认)** — 该组件会渲染可见的 UI。 从命令菜单触发时,它会在侧边栏中打开。 当 `isHeadless` `false` 或被省略时,这是默认行为。
**Headless** — The component mounts invisibly in the background. It does not open the side panel. Headless components are designed for actions that execute logic and then unmount themselves — for example, running an async task, navigating to a page, or showing a confirmation modal. They pair naturally with the SDK Command components described below.
**无头** — 该组件会在后台以不可见的方式挂载。 它不会打开侧边栏。 无头组件旨在用于执行逻辑后自行卸载的操作——例如运行异步任务、导航到某个页面或显示确认模态框。 它们与下文介绍的 SDK Command 组件天然契合。
```typescript
export default defineFrontComponent({
@@ -866,22 +866,22 @@ export default defineFrontComponent({
});
```
#### Adding command menu items
#### 添加命令菜单项
To make a front component appear as an item in Twenty's command menu, add the `command` property to `defineFrontComponent()`. When users open the command menu (Cmd+K / Ctrl+K), the item shows up and triggers the front component on click.
要让前端组件作为一项出现在 Twenty 的命令菜单中,请在 `defineFrontComponent()` 中添加 `command` 属性。 当用户打开命令菜单(Cmd+K / Ctrl+K)时,该项会显示,并在点击时触发该前端组件。
The `command` object accepts the following fields:
`command` 对象接受以下字段:
| 字段 | 类型 | 描述 |
| --------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `universalIdentifier` | `string` (required) | Unique ID for the command menu item |
| `标签` | `string` (required) | Display label shown in the command menu |
| `图标` | `string` (optional) | Icon name (e.g., `'IconSparkles'`) |
| `isPinned` | `boolean` (optional) | Whether the command is pinned at the top of the menu |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (optional) | `GLOBAL` shows the command everywhere; `RECORD_SELECTION` shows it only in record contexts |
| `availabilityObjectUniversalIdentifier` | `string` (optional) | Restrict the command to a specific object type (e.g., Person) |
| 字段 | 类型 | 描述 |
| --------------------------------------- | ------------------------------------- | -------------------------------------------------- |
| `universalIdentifier` | `string` (必填) | 命令菜单项的唯一 ID |
| `标签` | `string` (必填) | 在命令菜单中显示的标签 |
| `图标` | `string` (可选) | 图标名称(例如,`'IconSparkles'` |
| `isPinned` | `boolean` (可选) | 该命令是否固定在菜单顶部 |
| `availabilityType` | `'GLOBAL' \| 'RECORD_SELECTION'` (可选) | `GLOBAL` 会在任意位置显示该命令;`RECORD_SELECTION` 仅在记录上下文中显示 |
| `availabilityObjectUniversalIdentifier` | `string` (可选) | 将该命令限制为特定对象类型(例如,Person |
Here is an example from the call-recording app that adds a command scoped to Person records:
以下是来自通话录音应用的示例,它添加了一个作用域为 Person 记录的命令:
```typescript
import { defineFrontComponent } from 'twenty-sdk';
@@ -903,20 +903,20 @@ export default defineFrontComponent({
});
```
When the command is synced, it appears in the command menu. If the front component is non-headless the side panel opens with the component rendered inside. If it is headless the component mounts in the background and executes its logic.
当该命令同步后,它会出现在命令菜单中。 如果前端组件为非无头,侧边栏将打开并在其中渲染该组件。 如果为无头,该组件会在后台挂载并执行其逻辑。
#### SDK Command components
#### SDK Command 组件
The `twenty-sdk` package provides four Command helper components designed for headless front components. Each component executes an action on mount, handles errors by showing a snackbar notification, and automatically unmounts the front component when done.
`twenty-sdk` 包提供了四个为无头前端组件设计的 Command 辅助组件。 每个组件都会在挂载时执行一个操作,通过显示 snackbar 通知来处理错误,并在完成后自动卸载该前端组件。
Import them from `twenty-sdk/command`:
`twenty-sdk/command` 导入它们:
* **`Command`** — Runs an async callback via the `execute` prop.
* **`CommandLink`** — Navigates to an app path. Props: `to`, `params`, `queryParams`, `options`.
* **`CommandModal`** — Opens a confirmation modal. If the user confirms, executes the `execute` callback. Props: `title`, `subtitle`, `execute`, `confirmButtonText`, `confirmButtonAccent`.
* **`CommandOpenSidePanelPage`** — Opens a specific side panel page. Props: `page`, `pageTitle`, `pageIcon`.
* **`Command`** — 通过 `execute` 属性运行异步回调。
* **`CommandLink`** — 导航到某个应用路径。 属性:`to``params``queryParams``options`
* **`CommandModal`** — 打开一个确认模态框。 如果用户确认,则执行 `execute` 回调。 属性:`title``subtitle``execute``confirmButtonText``confirmButtonAccent`
* **`CommandOpenSidePanelPage`** — 打开特定的侧边栏页面。 属性:`page``pageTitle``pageIcon`
Here is a full example of a headless front component using `Command` to run an action from the command menu:
下面是一个完整示例:无头前端组件使用 `Command` 从命令菜单运行一个操作:
```typescript
// src/front-components/run-action.tsx
@@ -953,7 +953,7 @@ export default defineFrontComponent({
});
```
And an example using `CommandModal` to ask for confirmation before executing:
另一个示例:使用 `CommandModal` 在执行前请求确认:
```typescript
// src/front-components/delete-draft.tsx
@@ -990,15 +990,15 @@ export default defineFrontComponent({
});
```
#### Execution context
#### 执行上下文
Every front component receives an execution context that provides information about where and how it is running. Access context values using hooks from `twenty-sdk`:
每个前端组件都会接收一个执行上下文,提供其运行位置与方式的信息。 使用来自 `twenty-sdk` 的钩子来访问上下文值:
| Hook | Return type | 描述 |
| ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | The unique ID of the current front component instance |
| `useRecordId()` | `string \| null` | The ID of the current record, when the component runs in a record context (e.g., a record page widget or a command scoped to a record). Returns `null` otherwise. |
| `useUserId()` | `string \| null` | The ID of the current user |
| 钩子 | 返回类型 | 描述 |
| ----------------------- | ---------------- | ------------------------------------------------------------- |
| `useFrontComponentId()` | `string` | 当前前端组件实例的唯一 ID |
| `useRecordId()` | `string \| null` | 当组件在记录上下文中运行时(例如记录页面小部件或作用域限定于某条记录的命令),当前记录的 ID。 否则返回 `null`。 |
| `useUserId()` | `string \| null` | 当前用户的 ID |
```typescript
import { useRecordId, useUserId } from 'twenty-sdk';
@@ -1016,11 +1016,11 @@ const MyWidget = () => {
};
```
The context is reactive — if the surrounding record changes, hooks automatically return the updated values.
该上下文是响应式的——如果周围的记录发生变化,钩子会自动返回更新后的值。
#### Host API functions
#### 宿主 API 函数
Front components run in an isolated sandbox but can interact with Twenty's UI through a set of functions provided by the host. Import them directly from `twenty-sdk`:
前端组件在隔离的沙箱中运行,但可以通过宿主提供的一组函数与 Twenty UI 进行交互。 直接从 `twenty-sdk` 导入它们:
```typescript
import {
@@ -1033,16 +1033,16 @@ import {
} from 'twenty-sdk';
```
| 函数 | Signature | 描述 |
| ------------------------------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `导航` | `(to, params?, queryParams?, options?) => Promise<void>` | Navigate to a typed app path within Twenty |
| `closeSidePanel` | `() => Promise<void>` | Close the side panel |
| `enqueueSnackbar` | `(params) => Promise<void>` | Show a snackbar notification. Params: `message`, `variant` (`'error'`, `'success'`, `'info'`, `'warning'`), optional `duration`, `detailedMessage`, `dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | Unmount the current front component (used by headless components to clean up after execution) |
| `openSidePanelPage` | `(params) => Promise<void>` | Open a page in the side panel. Params: `page`, `pageTitle`, `pageIcon`, `shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | Show a confirmation modal and wait for the user's response. Params: `title`, `subtitle`, `confirmButtonText`, `confirmButtonAccent` (`'default'`, `'blue'`, `'danger'`) |
| 函数 | 签名 | 描述 |
| ------------------------------ | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `导航` | `(to, params?, queryParams?, options?) => Promise<void>` | 在 Twenty 内导航到一个类型化的应用路径 |
| `closeSidePanel` | `() => Promise<void>` | 关闭侧边栏 |
| `enqueueSnackbar` | `(params) => Promise<void>` | 显示一条 snackbar 通知。 参数:`message``variant``'error'``'success'``'info'``'warning'`),可选的 `duration``detailedMessage``dedupeKey` |
| `unmountFrontComponent` | `() => Promise<void>` | 卸载当前前端组件(供无头组件在执行后进行清理) |
| `openSidePanelPage` | `(params) => Promise<void>` | 在侧边栏中打开一个页面。 参数:`page``pageTitle``pageIcon``shouldResetSearchState` |
| `openCommandConfirmationModal` | `(params) => Promise<'confirm' \| 'cancel'>` | 显示一个确认模态框并等待用户的响应。 参数:`title``subtitle``confirmButtonText``confirmButtonAccent``'default'``'blue'``'danger'` |
Here is an example that uses the host API to show a snackbar and close the side panel after an action completes:
下面是一个示例,使用宿主 API 在操作完成后显示一条 snackbar 并关闭侧边栏:
```typescript
import { defineFrontComponent, useRecordId } from 'twenty-sdk';
File diff suppressed because one or more lines are too long
@@ -0,0 +1,56 @@
import { SKELETON_LOADER_HEIGHT_SIZES } from '@/activities/components/SkeletonLoader';
import { PageBody } from '@/ui/layout/page/components/PageBody';
import { PAGE_BAR_MIN_HEIGHT } from '@/ui/layout/page/constants/PageBarMinHeight';
import { styled } from '@linaria/react';
import { useContext } from 'react';
import Skeleton, { SkeletonTheme } from 'react-loading-skeleton';
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
const StyledHeaderSkeleton = styled.div`
align-items: center;
background: ${themeCssVariables.background.noisy};
display: flex;
flex-direction: row;
gap: ${themeCssVariables.spacing[2]};
justify-content: space-between;
min-height: ${PAGE_BAR_MIN_HEIGHT}px;
padding: ${themeCssVariables.spacing[3]};
`;
const StyledHeaderLeft = styled.div`
flex: 1;
`;
export const PageContentSkeletonLoader = () => {
const { theme } = useContext(ThemeContext);
return (
<>
<StyledHeaderSkeleton>
<StyledHeaderLeft>
<SkeletonTheme
baseColor={theme.background.tertiary}
highlightColor={theme.background.transparent.lighter}
borderRadius={4}
>
<Skeleton
height={SKELETON_LOADER_HEIGHT_SIZES.standard.s}
width={104}
/>
</SkeletonTheme>
</StyledHeaderLeft>
<SkeletonTheme
baseColor={theme.background.tertiary}
highlightColor={theme.background.transparent.lighter}
borderRadius={4}
>
<Skeleton
width={132}
height={SKELETON_LOADER_HEIGHT_SIZES.standard.s}
/>
</SkeletonTheme>
</StyledHeaderSkeleton>
<PageBody>{null}</PageBody>
</>
);
};
@@ -1,100 +1,14 @@
import { SKELETON_LOADER_HEIGHT_SIZES } from '@/activities/components/SkeletonLoader';
import { PageContentSkeletonLoader } from '~/loading/components/PageContentSkeletonLoader';
import { styled } from '@linaria/react';
import { useContext } from 'react';
import Skeleton, { SkeletonTheme } from 'react-loading-skeleton';
import {
MOBILE_VIEWPORT,
ThemeContext,
themeCssVariables,
} from 'twenty-ui/theme-constants';
const StyledMainContainer = styled.div`
background: ${themeCssVariables.background.noisy};
box-sizing: border-box;
display: flex;
flex: 1 1 auto;
flex-direction: row;
gap: 8px;
min-height: 0;
padding-left: 0;
width: 100%;
@media (max-width: ${MOBILE_VIEWPORT}px) {
padding-left: 12px;
padding-bottom: 0;
}
`;
const StyledPanel = styled.div`
background: ${themeCssVariables.background.primary};
border: 1px solid ${themeCssVariables.border.color.medium};
border-radius: ${themeCssVariables.border.radius.md};
height: 100%;
overflow: auto;
width: 100%;
`;
const StyledHeaderContainer = styled.div`
flex: 1;
`;
const StyledRightPanelContainer = styled.div`
display: flex;
flex-direction: column;
width: 100%;
`;
const StyledRightPanelFlexContainer = styled.div`
align-items: center;
display: flex;
flex-direction: row;
height: 32px;
justify-content: flex-end;
margin-bottom: 12px;
`;
const StyledSkeletonHeaderLoader = () => {
const { theme } = useContext(ThemeContext);
return (
<StyledHeaderContainer>
<SkeletonTheme
baseColor={theme.background.tertiary}
highlightColor={theme.background.transparent.lighter}
borderRadius={4}
>
<Skeleton
height={SKELETON_LOADER_HEIGHT_SIZES.standard.s}
width={104}
/>
</SkeletonTheme>
</StyledHeaderContainer>
);
};
const StyledSkeletonAddLoader = () => {
const { theme } = useContext(ThemeContext);
return (
<SkeletonTheme
baseColor={theme.background.tertiary}
highlightColor={theme.background.transparent.lighter}
borderRadius={4}
>
<Skeleton width={132} height={SKELETON_LOADER_HEIGHT_SIZES.standard.s} />
</SkeletonTheme>
);
};
const RightPanelSkeleton = () => (
<StyledMainContainer>
<StyledPanel></StyledPanel>
</StyledMainContainer>
);
export const RightPanelSkeletonLoader = () => (
<StyledRightPanelContainer>
<StyledRightPanelFlexContainer>
<StyledSkeletonHeaderLoader />
<StyledSkeletonAddLoader />
</StyledRightPanelFlexContainer>
<RightPanelSkeleton />
<PageContentSkeletonLoader />
</StyledRightPanelContainer>
);
@@ -13,11 +13,9 @@ const StyledContainer = styled.div`
box-sizing: border-box;
display: flex;
flex-direction: row;
gap: 12px;
height: 100dvh;
min-width: ${NAVIGATION_DRAWER_CONSTRAINTS.default}px;
overflow: hidden;
padding: 12px 8px 12px 8px;
width: 100%;
@media (max-width: ${MOBILE_VIEWPORT}px) {
@@ -25,6 +23,11 @@ const StyledContainer = styled.div`
}
`;
const StyledLeftPanelWrapper = styled.div`
flex-shrink: 0;
padding: 12px 0 12px 8px;
`;
export const UserOrMetadataLoader = () => {
const showAuthModal = useShowAuthModal();
@@ -36,7 +39,9 @@ export const UserOrMetadataLoader = () => {
backdropZIndex={RootStackingContextZIndices.RootModalBackDrop}
/>
)}
<LeftPanelSkeletonLoader />
<StyledLeftPanelWrapper>
<LeftPanelSkeletonLoader />
</StyledLeftPanelWrapper>
<RightPanelSkeletonLoader />
</StyledContainer>
);
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Toepassing besonderhede"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Goedgekeurde Domeine"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Kan nie skandeer nie? Kopieer die"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Kanselleer planwisseling?"
msgid "Cancel your subscription"
msgstr "Kanselleer jou intekening"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Kies tussen OIDC en SAML protokolle"
msgid "Choose between Short and Full"
msgstr "Kies tussen Kort en Volledig"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "kolomdata is nie versoenbaar met Multi-Select nie. Vereiste formaat is '
msgid "Columns not matched:"
msgstr "Kolomme nie ooreenstem nie:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Gaan voort met Microsoft"
msgid "Continue without sync"
msgstr "Gaan voort sonder sinkronisering"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopieer"
msgid "Copy code"
msgstr "Kopieer kode"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Skep"
msgid "Create {targetObjectLabelSingular}"
msgstr "Skep {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Skep 'n werksvloei en kom terug hier om sy weergawes te besigtig"
msgid "Create a workspace"
msgstr "Skep 'n werksruimte"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Skep 'n toepassing"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Verstek landkode"
msgid "Default palette"
msgstr "Verstekpalet"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Kon nie lêer oplaaai nie: {fileName}"
msgid "Failed to upload picture"
msgstr "Kon nie prent oplaai nie"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Lys geïnstalleerde toepassings. Gebruik die filter om na 'n spesifieke
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Bestuur jou toepassing"
msgid "Manage your internet accounts."
msgstr "Bestuur jou internetrekeninge."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "moet 'n reeks voorwerpe wees met 'n geldige url en etiket (formaat: '[{\
msgid "must be an array of valid emails"
msgstr "moet 'n reeks van geldige e-posse wees"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nuwe E-posdomein"
msgid "New Field"
msgstr "Nuwe Veld"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Stoor Paneelbord"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Stel as primêr"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Stel e-pos sigbaarheid, bestuur jou blokkeerlys en meer."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabel"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Laai op"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Laai .xlsx, .xls of .csv lêer op"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Laai lêers op"
msgid "Upload Files"
msgstr "Laai lêers op"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Jy behoort reeds aan hierdie werksruimte"
msgid "You are not allowed to create records for this object"
msgstr "Jy mag nie rekords vir hierdie voorwerp skep nie"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Jy kan of 'n privaat toepassing skep of dit met ander deel"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Jou rekening is geaktiveer."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Jou app weergawe is verouderd. Verfris asseblief die bladsy."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "تفاصيل التطبيق"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "النطاقات المعتمدة"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "هل لا يمكنك المسح؟ انسخ الـ"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "إلغاء تبديل الخطة؟"
msgid "Cancel your subscription"
msgstr "إلغاء الاشتراك"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "اختر بين بروتوكولات OIDC و SAML"
msgid "Choose between Short and Full"
msgstr "اختر بين قصير وكامل"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "بيانات العمود غير متوافقة مع التحديد ال
msgid "Columns not matched:"
msgstr "الأعمدة غير المتطابقة:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "الاستمرار باستخدام مايكروسوفت"
msgid "Continue without sync"
msgstr "المتابعة بدون مزامنة"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "نسخ"
msgid "Copy code"
msgstr "نسخ الكود"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "إنشاء"
msgid "Create {targetObjectLabelSingular}"
msgstr "إنشاء {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "أنشئ سير عمل وعُد إلى هنا لرؤية إصدارات
msgid "Create a workspace"
msgstr "إنشاء مساحة العمل"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "إنشاء تطبيق"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "رمز البلد الافتراضي"
msgid "Default palette"
msgstr "لوحة الألوان الافتراضية"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "فشل في تحميل الملف: {fileName}"
msgid "Failed to upload picture"
msgstr "فشل في تحميل الصورة"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "اعرض قائمة التطبيقات المثبتة. استخدم عا
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "إدارة تطبيقك"
msgid "Manage your internet accounts."
msgstr "إدارة حساباتك على الإنترنت."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "يجب أن تكون مصفوفة من الكائنات تحتوي عل
msgid "must be an array of valid emails"
msgstr "يجب أن تكون مصفوفة من بريد إلكتروني صالح"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "نطاق بريد إلكتروني جديد"
msgid "New Field"
msgstr "حقل جديد"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "حفظ لوحة القيادة"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "تعيين كأساسي"
msgid "Set email visibility, manage your blocklist and more."
msgstr "اضبط خصوصية البريد الإلكتروني، وإدارة قائمة الحظر والمزيد."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "جدول"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "رفع"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "تحميل ملف .xlsx أو .xls أو .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "رفع الملفات"
msgid "Upload Files"
msgstr "رفع الملفات"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14814,11 +14774,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15108,11 +15063,6 @@ msgstr "أنت بالفعل تنتمي إلى هذا فضاء العمل"
msgid "You are not allowed to create records for this object"
msgstr "غير مسموح لك بإنشاء سجلات لهذا الكائن"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "يمكنك إما إنشاء تطبيق خاص أو مشاركته مع الآخرين"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15183,6 +15133,11 @@ msgstr "تم تنشيط حسابك."
msgid "Your app version is out of date. Please refresh the page."
msgstr "نسخة التطبيق لديك قديمة. يُرجى تحديث الصفحة."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Detalls de l'aplicació"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Dominis Aprovats"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "No pots escanejar? Copia la"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Cancel·lar el canvi de pla?"
msgid "Cancel your subscription"
msgstr "Cancel·la la subscripció"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Tria entre protocols OIDC i SAML"
msgid "Choose between Short and Full"
msgstr "Tria entre Curt i Complet"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "les dades de la columna no són compatibles amb Multi-Select. El format
msgid "Columns not matched:"
msgstr "Columnes no coincidides:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Continua amb Microsoft"
msgid "Continue without sync"
msgstr "Continua sense sincronització"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Copia"
msgid "Copy code"
msgstr "Copia el codi"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Crea"
msgid "Create {targetObjectLabelSingular}"
msgstr "Crea {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Crea un flux de treball i torna aquí per veure les seves versions"
msgid "Create a workspace"
msgstr "Crear un espai de treball"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Crea una aplicació"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Codi de país predeterminat"
msgid "Default palette"
msgstr "Paleta predeterminada"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "No s'ha pogut carregar el fitxer: {fileName}"
msgid "Failed to upload picture"
msgstr "No s'ha pogut carregar la imatge"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Llista les aplicacions instal·lades. Utilitza el filtre per cercar una
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Gestiona la teva aplicació"
msgid "Manage your internet accounts."
msgstr "Gestiona els teus comptes d'Internet."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "ha de ser una matriu d'objectes amb url i etiqueta vàlids (format: '[{\
msgid "must be an array of valid emails"
msgstr "ha de ser una matriu de correus electrònics vàlids"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nou domini de correu"
msgid "New Field"
msgstr "Nou camp"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Desa el quadre de comandament"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Estableix com a principal"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Configura la visibilitat del correu, gestiona la teva llista de bloqueig i més."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Taula"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Pujada"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Carrega un fitxer .xlsx, .xls o .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Carrega fitxers"
msgid "Upload Files"
msgstr "Carregar Arxius"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Ja formes part d'aquest espai de treball"
msgid "You are not allowed to create records for this object"
msgstr "No tens permís per crear registres en aquest objecte"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Pots crear una aplicació privada o compartir-la amb altres"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "El teu compte s'ha activat."
msgid "Your app version is out of date. Please refresh the page."
msgstr "La teva versió de l'aplicació està desactualitzada. Si us plau, actualitza la pàgina."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Podrobnosti aplikace"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Schválené domény"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Nemůžete skenovat? Zkopírujte"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Zrušit změnu plánu?"
msgid "Cancel your subscription"
msgstr "Zrušit vaše předplatné"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Vyberte mezi protokoly OIDC a SAML"
msgid "Choose between Short and Full"
msgstr "Vyberte mezi Krátkým a Plným"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "data ve sloupci není kompatibilní s Multi-Select. Požadovaný formát
msgid "Columns not matched:"
msgstr "Sloupce nejsou shodné:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Pokračovat s Microsoftem"
msgid "Continue without sync"
msgstr "Pokračovat bez synchronizace"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopírovat"
msgid "Copy code"
msgstr "Kopírovat kód"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Vytvořit"
msgid "Create {targetObjectLabelSingular}"
msgstr "Vytvořit {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Vytvořte workflow a vraťte se zde pro zobrazení jeho verzí"
msgid "Create a workspace"
msgstr "Vytvořte pracovní prostor"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Vytvořit aplikaci"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Výchozí číselný kód země"
msgid "Default palette"
msgstr "Výchozí paleta"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Nepodařilo se nahrát soubor: {fileName}"
msgid "Failed to upload picture"
msgstr "Nepodařilo se nahrát obrázek"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Seznam nainstalovaných aplikací. Pomocí filtru vyhledejte konkrétní
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Spravujte svou aplikaci"
msgid "Manage your internet accounts."
msgstr "Spravujte své internetové účty."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "musí být pole objektů s platnou URL a popisem (formát: '[{\"url\":\"
msgid "must be an array of valid emails"
msgstr "musí být pole platných emailů"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nová e-mailová doména"
msgid "New Field"
msgstr "Nové pole"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Uložit panel"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Nastavit jako primární"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Nastavte viditelnost emailu, spravujte váš seznam blokovaných a další."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabulka"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Nahrát"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Nahrát soubor .xlsx, .xls nebo .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Nahrát soubory"
msgid "Upload Files"
msgstr "Nahrát soubory"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Již patříte do tohoto workspace"
msgid "You are not allowed to create records for this object"
msgstr "Nemáte povoleno vytvářet záznamy pro tento objekt"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Můžete buď vytvořit soukromou aplikaci, nebo ji sdílet s ostatními"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Váš účet byl aktivován."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Verze vaší aplikace je zastaralá. Aktualizujte, prosím, stránku."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Applikationsdetaljer"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Godkendte domæner"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Kan ikke scanne? Kopier"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Annuller planskift?"
msgid "Cancel your subscription"
msgstr "Annuller dit abonnement"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Vælg mellem OIDC og SAML protokoller"
msgid "Choose between Short and Full"
msgstr "Vælg mellem Kort og Fuld"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "kolonnedata er ikke kompatible med Multi-Select. Krævet format er '[\"o
msgid "Columns not matched:"
msgstr "Kolonner ikke matchet:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Fortsæt med Microsoft"
msgid "Continue without sync"
msgstr "Fortsæt uden synkronisering"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopier"
msgid "Copy code"
msgstr "Kopiér kode"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Opret"
msgid "Create {targetObjectLabelSingular}"
msgstr "Opret {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Opret en arbejdsproces og vend tilbage hertil for at se dens versioner"
msgid "Create a workspace"
msgstr "Opret et arbejdsområde"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Opret en applikation"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Standardlandekode"
msgid "Default palette"
msgstr "Standardfarvepalet"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Kunne ikke uploade fil: {fileName}"
msgid "Failed to upload picture"
msgstr "Kunne ikke uploade billede"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Vis installerede applikationer. Brug filteret til at søge efter en best
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Administrer din app"
msgid "Manage your internet accounts."
msgstr "Administrer dine internetkonti."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "skal være en liste med gyldige url'er og etiketter (format: '[{\"url\":
msgid "must be an array of valid emails"
msgstr "skal være en liste af gyldige e-mails"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nyt e-mail-domæne"
msgid "New Field"
msgstr "Nyt felt"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Gem dashboard"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Angiv som primær"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Indstil synlighed af e-mail, administrer din blokeringsliste og mere."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabel"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13360,6 +13326,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14183,11 +14154,6 @@ msgstr "Upload"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Upload .xlsx, .xls eller .csv fil"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14211,12 +14177,6 @@ msgstr "Upload filer"
msgid "Upload Files"
msgstr "Upload filer"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14818,11 +14778,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15112,11 +15067,6 @@ msgstr "Du er allerede medlem af dette arbejdsområde"
msgid "You are not allowed to create records for this object"
msgstr "Du har ikke tilladelse til at oprette poster i dette objekt"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Du kan enten oprette en privat app eller dele den med andre"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15187,6 +15137,11 @@ msgstr "Din konto er blevet aktiveret."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Din app-version er forældet. Opdater venligst siden."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Anwendungsdetails"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Genehmigte Domänen"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Kann nicht gescannt werden? Kopieren Sie das"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Tarifwechsel abbrechen?"
msgid "Cancel your subscription"
msgstr "Abonnement kündigen"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Wählen Sie zwischen OIDC- und SAML-Protokollen"
msgid "Choose between Short and Full"
msgstr "Wählen Sie zwischen Kurz und Voll"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "Spaltendaten sind nicht kompatibel mit Mehrfachauswahl. Erforderliches F
msgid "Columns not matched:"
msgstr "Nicht zugeordnete Spalten:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Mit Microsoft fortfahren"
msgid "Continue without sync"
msgstr "Ohne Synchronisierung fortfahren"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopieren"
msgid "Copy code"
msgstr "Code kopieren"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Erstellen"
msgid "Create {targetObjectLabelSingular}"
msgstr "Erstelle {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Erstellen Sie einen Workflow und kehren Sie hierher zurück, um die Vers
msgid "Create a workspace"
msgstr "Arbeitsbereich erstellen"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Eine Anwendung erstellen"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Standard-Ländercode"
msgid "Default palette"
msgstr "Standardpalette"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Datei konnte nicht hochgeladen werden: {fileName}"
msgid "Failed to upload picture"
msgstr "Bild konnte nicht hochgeladen werden"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Installierte Anwendungen auflisten. Verwenden Sie den Filter, um nach ei
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Ihre App verwalten"
msgid "Manage your internet accounts."
msgstr "Verwalten Sie Ihre Internetkonten."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "muss ein Array von Objekten mit gültiger URL und Bezeichnung sein (Form
msgid "must be an array of valid emails"
msgstr "muss ein Array von gültigen E-Mails sein"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Neue E-Mail-Domäne"
msgid "New Field"
msgstr "Neues Feld"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Dashboard speichern"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Als primär festlegen"
msgid "Set email visibility, manage your blocklist and more."
msgstr "E-Mail-Sichtbarkeit festlegen, Blockliste verwalten und mehr."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabelle"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Hochladen"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Hochladen von .xlsx, .xls oder .csv Datei"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Dateien hochladen"
msgid "Upload Files"
msgstr "Dateien hochladen"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Sie gehören bereits zu diesem Arbeitsplatz"
msgid "You are not allowed to create records for this object"
msgstr "Sie dürfen keine Datensätze für dieses Objekt erstellen"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Sie können entweder eine private App erstellen oder sie für andere freigeben"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Ihr Konto wurde aktiviert."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Ihre App-Version ist veraltet. Bitte aktualisieren Sie die Seite."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Λεπτομέρειες εφαρμογής"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Εγκεκριμένοι Τομείς"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Δεν μπορείτε να σαρώσετε; Αντιγράψτε το
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Ακύρωση αλλαγής προγράμματος;"
msgid "Cancel your subscription"
msgstr "Ακύρωση της συνδρομής σας"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Επιλέξτε μεταξύ των πρωτοκόλλων OIDC και
msgid "Choose between Short and Full"
msgstr "Επιλέξτε μεταξύ Συντόμου και Πλήρους"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "τα δεδομένα της στήλης δεν είναι συμβατ
msgid "Columns not matched:"
msgstr "Μη αντιστοιχισμένες στήλες:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Συνέχεια με τη Microsoft"
msgid "Continue without sync"
msgstr "Συνέχεια χωρίς συγχρονισμό"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Αντιγραφή"
msgid "Copy code"
msgstr "Αντιγραφή κώδικα"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Δημιουργία"
msgid "Create {targetObjectLabelSingular}"
msgstr "Δημιουργήστε {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Δημιουργήστε ένα workflow και επιστρέψτε ε
msgid "Create a workspace"
msgstr "Δημιουργία Χώρου Εργασίας"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Δημιουργία εφαρμογής"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Προεπιλεγμένος Κωδικός Χώρας"
msgid "Default palette"
msgstr "Προεπιλεγμένη παλέτα"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Απέτυχε η μεταφόρτωση αρχείου: {fileName}"
msgid "Failed to upload picture"
msgstr "Αποτυχία μεταφόρτωσης εικόνας"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Προβολή εγκατεστημένων εφαρμογών. Χρησ
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Διαχειριστείτε την εφαρμογή σας"
msgid "Manage your internet accounts."
msgstr "Διαχειριστείτε τους λογαριασμούς σας στο διαδίκτυο."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "πρέπει να είναι μια σειρά αντικειμένου
msgid "must be an array of valid emails"
msgstr "πρέπει να είναι μια σειρά έγκυρων emails"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Νέα Περιοχή Email"
msgid "New Field"
msgstr "Νέο Πεδίο"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Αποθήκευση πίνακα ελέγχου"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Ορισμός ως κύριο"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Ρυθμίστε την ορατότητα του email, διαχειριστείτε τη λίστα αποκλεισμού σας και άλλα."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13047,11 +13018,6 @@ msgstr "Πίνακας"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13362,6 +13328,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14185,11 +14156,6 @@ msgstr "Ανέβασμα"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Μεταφόρτωση αρχείων τύπου .xlsx, .xls ή .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14213,12 +14179,6 @@ msgstr "Ανέβασμα αρχείων"
msgid "Upload Files"
msgstr "Ανέβασμα αρχείων"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14820,11 +14780,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15114,11 +15069,6 @@ msgstr "Ανήκετε ήδη σε αυτό το workspace"
msgid "You are not allowed to create records for this object"
msgstr "Δεν επιτρέπεται να δημιουργείτε εγγραφές για αυτό το αντικείμενο"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Μπορείτε είτε να δημιουργήσετε μια ιδιωτική εφαρμογή είτε να τη μοιραστείτε με άλλους"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15189,6 +15139,11 @@ msgstr "Ο λογαριασμός σας έχει ενεργοποιηθεί."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Η έκδοση της εφαρμογής σας είναι παρωχημένη. Παρακαλώ ανανεώστε τη σελίδα."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1350,6 +1350,11 @@ msgstr "All App Registrations"
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr "All application registrations across the platform, including orphaned marketplace apps"
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr "All applications registered on this workspace"
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1789,7 +1794,6 @@ msgid "Application details"
msgstr "Application details"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr "Application installed successfully."
@@ -1849,11 +1853,6 @@ msgstr "Approved Domains"
msgid "Apps"
msgstr "Apps"
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr "Apps you've created, registered, or published"
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2516,7 +2515,6 @@ msgstr "Can't scan? Copy the"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2579,6 +2577,11 @@ msgstr "Cancel plan switching?"
msgid "Cancel your subscription"
msgstr "Cancel your subscription"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr "Cannot delete the only view"
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2733,11 +2736,6 @@ msgstr "Choose between OIDC and SAML protocols"
msgid "Choose between Short and Full"
msgstr "Choose between Short and Full"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr "Choose file"
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2942,6 +2940,11 @@ msgstr "column data is not compatible with Multi-Select. Format required is '[\"
msgid "Columns not matched:"
msgstr "Columns not matched:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr "Command copied to clipboard"
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3300,11 +3303,6 @@ msgstr "Continue with Microsoft"
msgid "Continue without sync"
msgstr "Continue without sync"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3342,6 +3340,11 @@ msgstr "Copy"
msgid "Copy code"
msgstr "Copy code"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr "Copy command"
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3502,6 +3505,11 @@ msgstr "Create"
msgid "Create {targetObjectLabelSingular}"
msgstr "Create {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr "Create & Develop"
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3542,11 +3550,6 @@ msgstr "Create a workflow and return here to view its versions"
msgid "Create a workspace"
msgstr "Create a workspace"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Create an application"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4141,12 +4144,6 @@ msgstr "Default Country Code"
msgid "Default palette"
msgstr "Default palette"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr "Default position/visibility for fields created in the future"
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5558,11 +5555,6 @@ msgstr "Error uninstalling application"
msgid "Error uninstalling application."
msgstr "Error uninstalling application."
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr "Error updating marketplace listing"
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6188,11 +6180,6 @@ msgstr "Failed to upload file: {fileName}"
msgid "Failed to upload picture"
msgstr "Failed to upload picture"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr "Failed to upload tarball."
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8060,11 +8047,6 @@ msgstr "List installed applications. Use filter to search for a specific applica
msgid "Listed"
msgstr "Listed"
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr "Listed on marketplace"
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8333,11 +8315,6 @@ msgstr "Manage your app"
msgid "Manage your internet accounts."
msgstr "Manage your internet accounts."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr "Managed by the marketplace catalog sync for npm packages"
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8725,11 +8702,6 @@ msgstr "must be an array of object with valid url and label (format: '[{\"url\":
msgid "must be an array of valid emails"
msgstr "must be an array of valid emails"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr "My Apps"
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8951,12 +8923,6 @@ msgstr "New Emailing Domain"
msgid "New Field"
msgstr "New Field"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr "New fields"
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11470,6 +11436,11 @@ msgstr "Save Dashboard"
msgid "Save Page Layout"
msgstr "Save Page Layout"
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr "Scaffold a new app, then use the CLI to develop, publish, and distribute"
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11921,11 +11892,6 @@ msgstr "Select 1 {fieldTypeLabelLowercase} field"
msgid "Select 1 field"
msgstr "Select 1 field"
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr "Select a .tar.gz application package to upload and install."
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12173,6 +12139,11 @@ msgstr "Set as Primary"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Set email visibility, manage your blocklist and more."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr "Set fields created in the future as \"visible\""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13040,11 +13011,6 @@ msgstr "Table"
msgid "Tarball upload"
msgstr "Tarball upload"
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr "Tarball uploaded but installation failed."
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13355,6 +13321,11 @@ msgstr "This action will delete this folder and the navigation menu item inside.
msgid "This app is installed on the current workspace"
msgstr "This app is installed on the current workspace"
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr "This app is listed on the marketplace because it is published to npm."
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14178,11 +14149,6 @@ msgstr "Upload"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Upload .xlsx, .xls or .csv file"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr "Upload failed."
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14206,12 +14172,6 @@ msgstr "Upload files"
msgid "Upload Files"
msgstr "Upload Files"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr "Upload tarball"
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14813,11 +14773,6 @@ msgstr "When enabled, new AI models will be available to users by default"
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr "When enabled, newly added models are available to all workspaces by default"
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr "When enabled, this app appears in the marketplace browse page"
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15107,11 +15062,6 @@ msgstr "You already belong to this workspace"
msgid "You are not allowed to create records for this object"
msgstr "You are not allowed to create records for this object"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "You can either create a private app or share it to others"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15182,6 +15132,11 @@ msgstr "Your account has been activated."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Your app version is out of date. Please refresh the page."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr "Your Apps"
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Detalles de la aplicación"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Dominios Aprobados"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "¿No puedes escanear? Copia el"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "¿Cancelar cambio de plan?"
msgid "Cancel your subscription"
msgstr "Cancelar su suscripción"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Elija entre los protocolos OIDC y SAML"
msgid "Choose between Short and Full"
msgstr "Elige entre Corto y Completo"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "los datos de la columna no son compatibles con Selección Múltiple. El
msgid "Columns not matched:"
msgstr "Columnas no coinciden:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Continuar con Microsoft"
msgid "Continue without sync"
msgstr "Continuar sin sincronización"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Copiar"
msgid "Copy code"
msgstr "Copiar código"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Crear"
msgid "Create {targetObjectLabelSingular}"
msgstr "Crear {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Cree un workflow y vuelva aquí para ver sus versiones"
msgid "Create a workspace"
msgstr "Crear Espacio de Trabajo"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Crear una aplicación"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Código de país predeterminado"
msgid "Default palette"
msgstr "Paleta predeterminada"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Falló al subir el archivo: {fileName}"
msgid "Failed to upload picture"
msgstr "Error al subir la imagen"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Lista las aplicaciones instaladas. Usa el filtro para buscar una aplicac
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Gestiona tu aplicación"
msgid "Manage your internet accounts."
msgstr "Gestione sus cuentas de internet."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "debe ser un arreglo de objetos con URL y etiqueta válidos (formato: '[{
msgid "must be an array of valid emails"
msgstr "debe ser un arreglo de correos electrónicos válidos"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nuevo dominio de correo electrónico"
msgid "New Field"
msgstr "Nuevo Campo"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Guardar Tablero"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Establecer como principal"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Configura la visibilidad del correo electrónico, gestiona tu lista de bloqueo y más."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabla"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13360,6 +13326,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14183,11 +14154,6 @@ msgstr "Subir"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Subir un archivo .xlsx, .xls o .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14211,12 +14177,6 @@ msgstr "Subir archivos"
msgid "Upload Files"
msgstr "Subir archivos"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14818,11 +14778,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15112,11 +15067,6 @@ msgstr "Ya perteneces a este espacio de trabajo"
msgid "You are not allowed to create records for this object"
msgstr "No tiene permiso para crear registros en este objeto"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Puedes crear una aplicación privada o compartirla con otras personas"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15187,6 +15137,11 @@ msgstr "Tu cuenta ha sido activada."
msgid "Your app version is out of date. Please refresh the page."
msgstr "La versión de su aplicación está desactualizada. Por favor, actualice la página."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Sovelluksen tiedot"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Hyväksytyt verkkotunnukset"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Et voi skannata? Kopioi"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Peruuta suunnitelman vaihtaminen?"
msgid "Cancel your subscription"
msgstr "Peruuta tilauksesi"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Valitse OIDC- ja SAML-protokollien välillä"
msgid "Choose between Short and Full"
msgstr "Valitse lyhyen ja täyden välillä"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "sarakedata ei ole yhteensopiva monivalinnan kanssa. Vaadittu muoto on '[
msgid "Columns not matched:"
msgstr "Sarakkeita ei ole yhdistetty:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Jatka Microsoftin avulla"
msgid "Continue without sync"
msgstr "Jatka ilman synkronointia"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopioi"
msgid "Copy code"
msgstr "Kopioi koodi"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Luo"
msgid "Create {targetObjectLabelSingular}"
msgstr "Luo {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Luo työnkulku ja palaa tänne nähdäksesi sen versiot"
msgid "Create a workspace"
msgstr "Luo työtila"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Luo sovellus"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Oletusmaakoodi"
msgid "Default palette"
msgstr "Oletuspaletti"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Tiedostoa ei voitu ladata: {fileName}"
msgid "Failed to upload picture"
msgstr "Kuvan lähetys epäonnistui"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Listaa asennetut sovellukset. Käytä suodatinta tietyn sovelluksen etsi
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Hallitse sovellustasi"
msgid "Manage your internet accounts."
msgstr "Hallitse internet-tilejäsi."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "täytyy olla objekti taulukossa, jossa on kelvollinen URL ja tunniste (f
msgid "must be an array of valid emails"
msgstr "täytyy olla kelvollisia sähköposteja sisältävä taulukko"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Uusi sähköpostitoimialue"
msgid "New Field"
msgstr "Uusi kenttä"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Tallenna hallintapaneeli"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Aseta ensisijaiseksi"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Aseta sähköpostin näkyvyys, hallinnoi estolistaa ja muuta."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Taulukko"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Lataa"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Lataa .xlsx, .xls tai .csv tiedosto"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Lataa tiedostoja"
msgid "Upload Files"
msgstr "Lataa tiedostoja"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Kuulut jo tähän työtilaan"
msgid "You are not allowed to create records for this object"
msgstr "Et voi luoda tietueita tälle objektille"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Voit joko luoda yksityisen sovelluksen tai jakaa sen muille"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Tilisi on aktivoitu."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Sovelluksesi versio on vanhentunut. Ole hyvä, päivitä sivu."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Détails de l'application"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Domaines approuvés"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Impossible de scanner ? Copiez le"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Annuler le changement de plan ?"
msgid "Cancel your subscription"
msgstr "Annuler votre abonnement"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Choisissez entre les protocoles OIDC et SAML"
msgid "Choose between Short and Full"
msgstr "Choisir entre Court et Complet"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "les données de colonne ne sont pas compatibles avec la sélection multi
msgid "Columns not matched:"
msgstr "Colonnes non appariées :"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Continuer avec Microsoft"
msgid "Continue without sync"
msgstr "Continuer sans synchronisation"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Copier"
msgid "Copy code"
msgstr "Copier le code"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Créer"
msgid "Create {targetObjectLabelSingular}"
msgstr "Créer {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Créez un workflow et revenez ici pour voir ses versions"
msgid "Create a workspace"
msgstr "Créer un espace de travail"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Créer une application"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Code du pays par défaut"
msgid "Default palette"
msgstr "Palette par défaut"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Échec du téléchargement du fichier : {fileName}"
msgid "Failed to upload picture"
msgstr "Échec du téléversement de l'image"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Répertoriez les applications installées. Utilisez le filtre pour reche
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Gérez votre application"
msgid "Manage your internet accounts."
msgstr "Gérez vos comptes internet."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "doit être un tableau d'objet avec une URL et un libellé valides (forma
msgid "must be an array of valid emails"
msgstr "doit être un tableau d'emails valides"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nouveau domaine d'envoi d'e-mail"
msgid "New Field"
msgstr "Nouveau champ"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Enregistrer le tableau de bord"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Définir comme principal"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Définir la visibilité des emails, gérer votre liste de blocage et plus encore."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Table"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13360,6 +13326,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14183,11 +14154,6 @@ msgstr "Téléverser"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Téléchargez le fichier .xlsx, .xls ou .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14211,12 +14177,6 @@ msgstr "Téléverser des fichiers"
msgid "Upload Files"
msgstr "Téléverser les fichiers"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14818,11 +14778,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15112,11 +15067,6 @@ msgstr "Vous appartenez déjà à cet espace de travail"
msgid "You are not allowed to create records for this object"
msgstr "Vous n'êtes pas autorisé à créer des enregistrements pour cet objet"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Vous pouvez soit créer une application privée, soit la partager avec d'autres"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15187,6 +15137,11 @@ msgstr "Votre compte a été activé."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Votre version de l'application est obsolète. Veuillez rafraîchir la page."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
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
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "פרטי היישום"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "דומיינים מאושרים"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "לא ניתן לסרוק? העתק את"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "האם לבטל את החלפת התכנית?"
msgid "Cancel your subscription"
msgstr "בטל את המינוי שלך"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "בחר בין פרוטוקולים OIDC ו-SAML"
msgid "Choose between Short and Full"
msgstr "בחר בין קצר למלא"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "נתוני העמודה אינם תואמים לרב-בחירה. פור
msgid "Columns not matched:"
msgstr "עמודות שלא תואמו:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "המשך עם מיקרוסופט"
msgid "Continue without sync"
msgstr "המשך ללא סנכרון"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "העתק"
msgid "Copy code"
msgstr "העתק קוד"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "צור"
msgid "Create {targetObjectLabelSingular}"
msgstr "צור {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "צור זרימת עבודה וחזור לכאן כדי לצפות בג
msgid "Create a workspace"
msgstr "צור מרחב עבודה"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "צור יישום"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "קוד מדינה ברירת מחדל"
msgid "Default palette"
msgstr "פלטת ברירת המחדל"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "לא הצליח להעלות קובץ: {fileName}"
msgid "Failed to upload picture"
msgstr "העלאת התמונה נכשלה"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "הצג את היישומים המותקנים. השתמש במסנן כ
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "נהל את היישום שלך"
msgid "Manage your internet accounts."
msgstr "נהל את חשבונות האינטרנט שלך."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "חייב להיות מערך של אובייקטים עם כתובת URL
msgid "must be an array of valid emails"
msgstr "חייב להיות מערך של אימיילים חוקיים"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "<span dir=\"rtl\">דומיין חדש לשליחת מיילים</span>"
msgid "New Field"
msgstr "שדה חדש"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "שמור לוח בקרה"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "הגדר כראשי"
msgid "Set email visibility, manage your blocklist and more."
msgstr "קבע את נראות הדוא\"ל, נהל את רשימת החסימה שלך ועוד."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "טבלה"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "העלה"
msgid "Upload .xlsx, .xls or .csv file"
msgstr ".xlsx, .xls או .csv העלה קובץ"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "העלה קבצים"
msgid "Upload Files"
msgstr "העלאת קבצים"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "אתה כבר משתייך לסביבת העבודה הזו"
msgid "You are not allowed to create records for this object"
msgstr "אין לך הרשאה ליצור רשומות באובייקט זה"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "באפשרותך ליצור יישום פרטי או לשתף אותו עם אחרים"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "החשבון שלך הופעל."
msgid "Your app version is out of date. Please refresh the page."
msgstr "גרסת האפליקציה שלך אינה מעודכנת. אנא רענן את הדף."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Alkalmazás részletei"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Jóváhagyott tartományok"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Nem tud beolvasni? Másolja a"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Csomagváltás törlése?"
msgid "Cancel your subscription"
msgstr "Előfizetése lemondása"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "OIDC és SAML protokollok közötti választás"
msgid "Choose between Short and Full"
msgstr "Válasszon a Rövid és Teljes között"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "az oszlopadatok nem kompatibilisek a többválasztásos kiválasztással
msgid "Columns not matched:"
msgstr "Nem egyező oszlopok:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Folytatás Microsofttal"
msgid "Continue without sync"
msgstr "Folytatás szinkronizálás nélkül"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Másolás"
msgid "Copy code"
msgstr "Kód másolása"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Létrehozás"
msgid "Create {targetObjectLabelSingular}"
msgstr "{targetObjectLabelSingular} létrehozása"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Hozzon létre egy munkafolyamatot, majd térjen vissza ide a verziók me
msgid "Create a workspace"
msgstr "Hozzon létre munkaterületet"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Alkalmazás létrehozása"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Alapértelmezett országkód"
msgid "Default palette"
msgstr "Alapértelmezett paletta"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Fájl feltöltése nem sikerült: {fileName}"
msgid "Failed to upload picture"
msgstr "Nem sikerült feltölteni a képet"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "A telepített alkalmazások listája. Használja a szűrőt egy adott al
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Alkalmazás kezelése"
msgid "Manage your internet accounts."
msgstr "Kezeld az internetes fiókjaid."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "érvényes URL-t és címkét tartalmazó objektumok tömbjének kell le
msgid "must be an array of valid emails"
msgstr "érvényes e-maileket tartalmazó tömbnek kell lennie"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Új Emailküldési Tartomány"
msgid "New Field"
msgstr "Új mező"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Irányítópult mentése"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Beállítás elsődlegesként"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Beállíthatja az e-mail láthatóságát, kezelheti a tiltólistáját és egyebeket."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Táblázat"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Feltöltés"
msgid "Upload .xlsx, .xls or .csv file"
msgstr ".xlsx, .xls vagy .csv fájl feltöltése"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Fájlok feltöltése"
msgid "Upload Files"
msgstr "Fájlok feltöltése"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Már ehhez a munkaasztalhoz tartozik"
msgid "You are not allowed to create records for this object"
msgstr "Nincs jogosultság rekord létrehozására ehhez az objektumhoz"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Létrehozhat egy privát alkalmazást, vagy megoszthatja másokkal"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "A fiókja aktiválva lett."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Az ön szoftververziója elavult. Kérjük, frissítse az oldalt."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Dettagli dell'applicazione"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Domini approvati"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Non puoi scansionare? Copia il"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Annulla il cambio di piano?"
msgid "Cancel your subscription"
msgstr "Annulla l'abbonamento"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Scegli tra i protocolli OIDC e SAML"
msgid "Choose between Short and Full"
msgstr "Scegli tra Breve e Completo"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "i dati della colonna non sono compatibili con Multi-Select. Il formato r
msgid "Columns not matched:"
msgstr "Colonne non corrispondenti:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Continua con Microsoft"
msgid "Continue without sync"
msgstr "Continua senza sincronizzazione"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Copia"
msgid "Copy code"
msgstr "Copia codice"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Crea"
msgid "Create {targetObjectLabelSingular}"
msgstr "Crea {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Crea un workflow e torna qui per visualizzarne le versioni"
msgid "Create a workspace"
msgstr "Crea uno spazio di lavoro"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Crea un'applicazione"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Prefisso internazionale predefinito"
msgid "Default palette"
msgstr "Tavolozza predefinita"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Caricamento del file {fileName} non riuscito"
msgid "Failed to upload picture"
msgstr "Caricamento dell'immagine non riuscito"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Elenca le applicazioni installate. Usa il filtro per cercare un'applicaz
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Gestisci la tua app"
msgid "Manage your internet accounts."
msgstr "Gestisci i tuoi account Internet."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "deve essere un array di oggetti con url e etichetta validi (formato: '[{
msgid "must be an array of valid emails"
msgstr "deve essere un array di email valide"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nuovo dominio di email"
msgid "New Field"
msgstr "Nuovo Campo"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Salva Cruscotto"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Imposta come principale"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Imposta la visibilità dell'email, gestisci la tua blocklist e altro."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabella"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13360,6 +13326,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14183,11 +14154,6 @@ msgstr "Carica"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Carica un file .xlsx, .xls o .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14211,12 +14177,6 @@ msgstr "Carica file"
msgid "Upload Files"
msgstr "Carica file"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14818,11 +14778,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15112,11 +15067,6 @@ msgstr "Appartieni già a questo workspace"
msgid "You are not allowed to create records for this object"
msgstr "Non sei autorizzato a creare record per questo oggetto"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Puoi creare un'app privata o condividerla con altri"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15187,6 +15137,11 @@ msgstr "Il tuo account è stato attivato."
msgid "Your app version is out of date. Please refresh the page."
msgstr "La versione dell'app è obsoleta. Si prega di aggiornare la pagina."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "アプリケーション詳細"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "承認されたドメイン"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "スキャンできませんか? コピーしてください"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "プラン切替をキャンセルしますか?"
msgid "Cancel your subscription"
msgstr "サブスクリプションをキャンセル"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "OIDCとSAMLプロトコルの中から選択"
msgid "Choose between Short and Full"
msgstr "ショートとフルの間で選択"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "列データはマルチセレクトと互換性がありません。必
msgid "Columns not matched:"
msgstr "一致しない列:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Microsoftで続行"
msgid "Continue without sync"
msgstr "同期せずに続行"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "コピー"
msgid "Copy code"
msgstr "コードをコピー"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "作成"
msgid "Create {targetObjectLabelSingular}"
msgstr "{targetObjectLabelSingular}を作成"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "ワークフローを作成し、ここに戻ってそのバージョン
msgid "Create a workspace"
msgstr "ワークスペースを作成"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "アプリケーションを作成"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "デフォルトの国コード"
msgid "Default palette"
msgstr "デフォルトのパレット"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "ファイルのアップロードに失敗しました: {fileName}"
msgid "Failed to upload picture"
msgstr "画像のアップロードに失敗しました"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "インストール済みのアプリケーションを一覧表示しま
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "アプリを管理"
msgid "Manage your internet accounts."
msgstr "インターネットアカウントを管理"
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "有効なURLとラベルを持つオブジェクトの配列でなけれ
msgid "must be an array of valid emails"
msgstr "有効なメールアドレスの配列でなければなりません"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "新しいメール送信ドメイン"
msgid "New Field"
msgstr "新規フィールド"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "ダッシュボードを保存"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "プライマリに設定"
msgid "Set email visibility, manage your blocklist and more."
msgstr "メールの可視性を設定し、ブロックリストを管理するなど。"
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "テーブル"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "アップロード"
msgid "Upload .xlsx, .xls or .csv file"
msgstr ".xlsx、.xls、または.csvファイルをアップロード"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "ファイルをアップロード"
msgid "Upload Files"
msgstr "ファイルをアップロード"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "すでにこのワークスペースに所属しています"
msgid "You are not allowed to create records for this object"
msgstr "このオブジェクトでレコードを作成することは許可されていません"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "プライベートアプリを作成することも、他のユーザーと共有することもできます。"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "あなたのアカウントが有効化されました。"
msgid "Your app version is out of date. Please refresh the page."
msgstr "アプリのバージョンが古いです。ページを更新してください。"
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "응용 프로그램 세부정보"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "승인된 도메인"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "스캔이 불가능합니까?"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "플랜 전환을 취소하시겠습니까?"
msgid "Cancel your subscription"
msgstr "구독 취소"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "OIDC와 SAML 프로토콜 중 선택"
msgid "Choose between Short and Full"
msgstr "짧음과 긴 중에서 선택"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "컬럼 데이터는 다중 선택과 호환되지 않습니다. 요구
msgid "Columns not matched:"
msgstr "일치하지 않는 열:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Microsoft로 계속"
msgid "Continue without sync"
msgstr "동기화 없이 계속"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "복사"
msgid "Copy code"
msgstr "코드 복사"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "생성"
msgid "Create {targetObjectLabelSingular}"
msgstr "{targetObjectLabelSingular} 생성"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "워크플로를 생성하고 여기로 돌아와 버전을 확인하세
msgid "Create a workspace"
msgstr "워크스페이스 만들기"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "응용 프로그램 생성"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "기본 국가 코드"
msgid "Default palette"
msgstr "기본 팔레트"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "파일 업로드 실패: {fileName}"
msgid "Failed to upload picture"
msgstr "사진 업로드 실패"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "설치된 애플리케이션 목록입니다. 특정 애플리케이션
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "앱 관리"
msgid "Manage your internet accounts."
msgstr "인터넷 계정을 관리하세요."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "유효한 URL과 라벨이 포함된 객체 배열이어야 합니다 (
msgid "must be an array of valid emails"
msgstr "유효한 이메일의 배열이어야 합니다"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "새 이메일 도메인"
msgid "New Field"
msgstr "새 필드"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "대시보드 저장"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "기본으로 설정"
msgid "Set email visibility, manage your blocklist and more."
msgstr "이메일 공개 여부 설정, 차단 목록 관리 등을 할 수 있습니다."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "테이블"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "업로드"
msgid "Upload .xlsx, .xls or .csv file"
msgstr ".xlsx, .xls 또는 .csv 파일 업로드"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "파일 업로드"
msgid "Upload Files"
msgstr "파일 업로드"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "귀하는 이미 이 작업 공간에 속해 있습니다"
msgid "You are not allowed to create records for this object"
msgstr "이 개체에 기록을 생성할 수 있는 권한이 없습니다"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "개인용 앱을 만들거나 다른 사람과 공유할 수 있습니다."
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "계정이 활성화되었습니다."
msgid "Your app version is out of date. Please refresh the page."
msgstr "귀하의 앱 버전이 오래되었습니다. 페이지를 새로 고침하십시오."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Applicatiedetails"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Goedgekeurde Domeinen"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Kan je niet scannen? Kopieer de"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Planwisseling annuleren?"
msgid "Cancel your subscription"
msgstr "Annuleer uw abonnement"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Kies tussen OIDC- en SAML-protocollen"
msgid "Choose between Short and Full"
msgstr "Kies tussen Kort en Volledig"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "kolomgegevens zijn niet compatibel met Multi-Select. Vereist formaat is
msgid "Columns not matched:"
msgstr "Kolommen niet overeenkomend:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Doorgaan met Microsoft"
msgid "Continue without sync"
msgstr "Doorgaan zonder synchronisatie"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopiëren"
msgid "Copy code"
msgstr "Code kopiëren"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Creëren"
msgid "Create {targetObjectLabelSingular}"
msgstr "Creëer {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Maak een workflow en kom terug om de versies te bekijken"
msgid "Create a workspace"
msgstr "Werkruimte aanmaken"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Een applicatie maken"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Standaard landcode"
msgid "Default palette"
msgstr "Standaardpalet"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Niet gelukt om bestand te uploaden: {fileName}"
msgid "Failed to upload picture"
msgstr "Afbeelding uploaden mislukt"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Geïnstalleerde toepassingen weergeven. Gebruik het filter om naar een s
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Beheer je toepassing"
msgid "Manage your internet accounts."
msgstr "Beheer uw internetaccounts."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "moet een array zijn van objecten met een geldige url en label (formaat:
msgid "must be an array of valid emails"
msgstr "moet een array zijn van geldige e-mails"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nieuw e-maildomein"
msgid "New Field"
msgstr "Nieuw veld"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Dashboard opslaan"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Als primair instellen"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Instellen e-mail zichtbaarheid, beheer je blokkeerlijst en meer."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tableau"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13360,6 +13326,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14183,11 +14154,6 @@ msgstr "Uploaden"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Upload .xlsx, .xls of .csv bestand"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14211,12 +14177,6 @@ msgstr "Bestanden uploaden"
msgid "Upload Files"
msgstr "Bestanden Uploaden"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14818,11 +14778,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15112,11 +15067,6 @@ msgstr "Je behoort al tot deze werkruimte"
msgid "You are not allowed to create records for this object"
msgstr "U mag geen records maken voor dit object"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Je kunt een privétoepassing maken of deze met anderen delen"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15187,6 +15137,11 @@ msgstr "Je account is geactiveerd."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Uw app-versie is verouderd. Ververs de pagina, alstublieft."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Applikasjonsdetaljer"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Godkjente domener"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Kan ikke skanne? Kopier "
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Avbryt planbytte?"
msgid "Cancel your subscription"
msgstr "Si opp abonnementet ditt"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Velg mellom OIDC og SAML protokoller"
msgid "Choose between Short and Full"
msgstr "Velg mellom Kort og Full"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "kolonnedata er ikke kompatible med flervalg. Formatet som kreves er '[\\
msgid "Columns not matched:"
msgstr "Kolonner ikke matchet:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Fortsett med Microsoft"
msgid "Continue without sync"
msgstr "Fortsett uten synkronisering"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopier"
msgid "Copy code"
msgstr "Kopier kode"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Opprett"
msgid "Create {targetObjectLabelSingular}"
msgstr "Opprett {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Opprett en arbeidsflyt og kom tilbake hit for å vise versjonene"
msgid "Create a workspace"
msgstr "Opprett arbeidsområde"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr "Opprett en applikasjon"
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Standardlandkode"
msgid "Default palette"
msgstr "Standardpalett"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Kunne ikke laste opp fil: {fileName}"
msgid "Failed to upload picture"
msgstr "Kunne ikke laste opp bilde"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr ""
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr ""
msgid "Manage your internet accounts."
msgstr "Administrer internett-kontoene dine."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "må være en matrise av objekter med gyldig URL og etikett (format: '[{\
msgid "must be an array of valid emails"
msgstr "må være en matrise av gyldige e-poster"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nytt e-postdomene"
msgid "New Field"
msgstr "Nytt felt"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Lagre dashbord"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Sett som primær"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Angi e-post synlighet, administrere blokkeringslisten og mer."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabell"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Last opp"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Last opp .xlsx, .xls eller .csv fil"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Last opp filer"
msgid "Upload Files"
msgstr "Last opp filer"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Du tilhører allerede dette arbeidsområdet"
msgid "You are not allowed to create records for this object"
msgstr "Du har ikke tillatelse til å opprette poster for dette objektet"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr ""
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Kontoen din er aktivert."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Din appversjon er utdatert. Vennligst oppdater siden."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1355,6 +1355,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1794,7 +1799,6 @@ msgid "Application details"
msgstr "Szczegóły aplikacji"
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1854,11 +1858,6 @@ msgstr "Zatwierdzone domeny"
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2521,7 +2520,6 @@ msgstr "Nie można zeskanować? Skopiuj"
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2584,6 +2582,11 @@ msgstr "Anulować przełączanie planu?"
msgid "Cancel your subscription"
msgstr "Anuluj swoją subskrypcję"
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2738,11 +2741,6 @@ msgstr "Wybierz pomiędzy protokołami OIDC a SAML"
msgid "Choose between Short and Full"
msgstr "Wybierz między Krótkim i Pełnym"
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2947,6 +2945,11 @@ msgstr "dane kolumny nie są zgodne z Multi-Select. Wymagany format to '[\"opcja
msgid "Columns not matched:"
msgstr "Kolumny nie dopasowane:"
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3305,11 +3308,6 @@ msgstr "Kontynuuj za pomocą Microsoft"
msgid "Continue without sync"
msgstr "Kontynuuj bez synchronizacji"
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3347,6 +3345,11 @@ msgstr "Kopiuj"
msgid "Copy code"
msgstr "Kopiuj kod"
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3507,6 +3510,11 @@ msgstr "Utwórz"
msgid "Create {targetObjectLabelSingular}"
msgstr "Utwórz {targetObjectLabelSingular}"
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3547,11 +3555,6 @@ msgstr "Stwórz przepływ pracy i wróć tutaj, aby zobaczyć jego wersje"
msgid "Create a workspace"
msgstr "Stwórz przestrzeń pracy"
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr ""
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4146,12 +4149,6 @@ msgstr "Domyślny kod kraju"
msgid "Default palette"
msgstr "Domyślna paleta"
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5563,11 +5560,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6193,11 +6185,6 @@ msgstr "Nie udało się przesłać pliku: {fileName}"
msgid "Failed to upload picture"
msgstr "Nie udało się przesłać zdjęcia"
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8065,11 +8052,6 @@ msgstr "Wyświetl zainstalowane aplikacje. Użyj filtra, aby wyszukać konkretn
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8338,11 +8320,6 @@ msgstr "Zarządzaj swoją aplikacją"
msgid "Manage your internet accounts."
msgstr "Zarządzaj swoimi internetowymi kontami."
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8730,11 +8707,6 @@ msgstr "musi być tablicą obiektów z prawidłowym URL-em i etykietą (format:
msgid "must be an array of valid emails"
msgstr "musi być tablicą prawidłowych adresów e-mail"
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8956,12 +8928,6 @@ msgstr "Nowa domena e-mailowa"
msgid "New Field"
msgstr "Nowe pole"
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11475,6 +11441,11 @@ msgstr "Zapisz Dashboard"
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11926,11 +11897,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12178,6 +12144,11 @@ msgstr "Ustaw jako główne"
msgid "Set email visibility, manage your blocklist and more."
msgstr "Ustaw widoczność e-maila, zarządzaj swoją listą blokowanych i więcej."
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13045,11 +13016,6 @@ msgstr "Tabela"
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13358,6 +13324,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14181,11 +14152,6 @@ msgstr "Prześlij"
msgid "Upload .xlsx, .xls or .csv file"
msgstr "Załaduj plik .xlsx, .xls lub .csv"
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14209,12 +14175,6 @@ msgstr "Prześlij pliki"
msgid "Upload Files"
msgstr "Prześlij pliki"
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14816,11 +14776,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15110,11 +15065,6 @@ msgstr "Już należysz do tego obszaru roboczego"
msgid "You are not allowed to create records for this object"
msgstr "Nie masz uprawnień do tworzenia rekordów dla tego obiektu"
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr "Możesz utworzyć prywatną aplikację albo udostępnić ją innym"
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15185,6 +15135,11 @@ msgstr "Twoje konto zostało aktywowane."
msgid "Your app version is out of date. Please refresh the page."
msgstr "Twoja wersja aplikacji jest nieaktualna. Proszę odśwież stronę."
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."
+45 -90
View File
@@ -1350,6 +1350,11 @@ msgstr ""
msgid "All application registrations across the platform, including orphaned marketplace apps"
msgstr ""
#. js-lingui-id: mSTufP
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "All applications registered on this workspace"
msgstr ""
#. js-lingui-id: 1kLn6M
#: src/modules/activities/calendar/components/CalendarEventRow.tsx
msgid "All day"
@@ -1789,7 +1794,6 @@ msgid "Application details"
msgstr ""
#. js-lingui-id: lGEBD4
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/modules/marketplace/hooks/useInstallApp.ts
msgid "Application installed successfully."
msgstr ""
@@ -1849,11 +1853,6 @@ msgstr ""
msgid "Apps"
msgstr ""
#. js-lingui-id: KKYyo8
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Apps you've created, registered, or published"
msgstr ""
#. js-lingui-id: 8HV3WN
#: src/pages/settings/profile/appearance/components/LocalePicker.tsx
msgid "Arabic"
@@ -2516,7 +2515,6 @@ msgstr ""
#. js-lingui-id: dEgA5A
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
#: src/pages/auth/Authorize.tsx
#: src/modules/ui/layout/modal/components/ConfirmationModal.tsx
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
@@ -2579,6 +2577,11 @@ msgstr ""
msgid "Cancel your subscription"
msgstr ""
#. js-lingui-id: XDbjjW
#: src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownCustomView.tsx
msgid "Cannot delete the only view"
msgstr ""
#. js-lingui-id: 8fbdLj
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
#: src/modules/ui/feedback/snack-bar-manager/utils/sanitizeMessageToRenderInSnackbar.ts
@@ -2733,11 +2736,6 @@ msgstr ""
msgid "Choose between Short and Full"
msgstr ""
#. js-lingui-id: +yPBXI
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Choose file"
msgstr ""
#. js-lingui-id: YcrXB2
#: src/modules/settings/data-model/fields/forms/currency/components/SettingsDataModelFieldCurrencyForm.tsx
msgid "Choose the default currency that will apply"
@@ -2942,6 +2940,11 @@ msgstr ""
msgid "Columns not matched:"
msgstr ""
#. js-lingui-id: cj9UFG
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Command copied to clipboard"
msgstr ""
#. js-lingui-id: RyZt4H
#: src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManual.tsx
msgid "Command Icon"
@@ -3300,11 +3303,6 @@ msgstr ""
msgid "Continue without sync"
msgstr ""
#. js-lingui-id: nTcGbN
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Control visibility on the marketplace. Unlisted apps are still accessible via direct link."
msgstr ""
#. js-lingui-id: +iFqZW
#: src/modules/settings/roles/role-settings/components/SettingsRoleApplicability.tsx
msgid "Control which types of entities this role can be assigned to"
@@ -3342,6 +3340,11 @@ msgstr ""
msgid "Copy code"
msgstr ""
#. js-lingui-id: Oos8fo
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy command"
msgstr ""
#. js-lingui-id: Es0ros
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Copy commands"
@@ -3502,6 +3505,11 @@ msgstr ""
msgid "Create {targetObjectLabelSingular}"
msgstr ""
#. js-lingui-id: 5XhrY3
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create & Develop"
msgstr ""
#. js-lingui-id: 8aATyU
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Create a dashboard"
@@ -3542,11 +3550,6 @@ msgstr ""
msgid "Create a workspace"
msgstr ""
#. js-lingui-id: /WlFSf
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Create an application"
msgstr ""
#. js-lingui-id: 8ZjIgO
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Create and configure AI agents"
@@ -4141,12 +4144,6 @@ msgstr ""
msgid "Default palette"
msgstr ""
#. js-lingui-id: U/uGBk
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Default position/visibility for fields created in the future"
msgstr ""
#. js-lingui-id: v41VX6
#: src/pages/settings/members/SettingsWorkspaceMembers.tsx
#: src/modules/workspace/components/WorkspaceInviteTeam.tsx
@@ -5558,11 +5555,6 @@ msgstr ""
msgid "Error uninstalling application."
msgstr ""
#. js-lingui-id: OceoGT
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Error updating marketplace listing"
msgstr ""
#. js-lingui-id: fQYyhK
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationOAuthTab.tsx
msgid "Error updating redirect URIs"
@@ -6188,11 +6180,6 @@ msgstr ""
msgid "Failed to upload picture"
msgstr ""
#. js-lingui-id: vWFfVs
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Failed to upload tarball."
msgstr ""
#. js-lingui-id: K0joU5
#: src/modules/settings/admin-panel/health-status/components/SettingsAdminHealthAccountSyncCountersTable.tsx
msgid "Failure Rate"
@@ -8060,11 +8047,6 @@ msgstr ""
msgid "Listed"
msgstr ""
#. js-lingui-id: vxO58F
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Listed on marketplace"
msgstr ""
#. js-lingui-id: HhVDr2
#: src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
msgid "Listing"
@@ -8333,11 +8315,6 @@ msgstr ""
msgid "Manage your internet accounts."
msgstr ""
#. js-lingui-id: +pSdLP
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "Managed by the marketplace catalog sync for npm packages"
msgstr ""
#. js-lingui-id: BWTzAb
#: src/modules/side-panel/pages/page-layout/hooks/useGraphXSortOptionLabels.ts
#: src/modules/side-panel/pages/page-layout/hooks/useGraphGroupBySortOptionLabels.ts
@@ -8725,11 +8702,6 @@ msgstr ""
msgid "must be an array of valid emails"
msgstr ""
#. js-lingui-id: bPl77g
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "My Apps"
msgstr ""
#. js-lingui-id: XTGSZU
#: src/modules/views/view-picker/components/ViewPickerListContent.tsx
msgid "My unlisted views"
@@ -8951,12 +8923,6 @@ msgstr ""
msgid "New Field"
msgstr ""
#. js-lingui-id: DNUCGO
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationUngroupedEditor.tsx
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "New fields"
msgstr ""
#. js-lingui-id: 96G6Re
#: src/modules/side-panel/pages/navigation-menu-item/hooks/useAddFolderToNavigationMenu.ts
#: src/modules/side-panel/pages/navigation-menu-item/components/SidePanelNewSidebarItemMainMenu.tsx
@@ -11470,6 +11436,11 @@ msgstr ""
msgid "Save Page Layout"
msgstr ""
#. js-lingui-id: veLq3R
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Scaffold a new app, then use the CLI to develop, publish, and distribute"
msgstr ""
#. js-lingui-id: gmB6oO
#: src/modules/workflow/workflow-trigger/components/CronExpressionHelper.tsx
msgid "Schedule"
@@ -11921,11 +11892,6 @@ msgstr ""
msgid "Select 1 field"
msgstr ""
#. js-lingui-id: YfBvUy
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Select a .tar.gz application package to upload and install."
msgstr ""
#. js-lingui-id: OMoA3j
#: src/modules/workflow/workflow-steps/workflow-actions/delay-actions/components/WorkflowEditActionDelay.tsx
msgid "Select a date"
@@ -12173,6 +12139,11 @@ msgstr ""
msgid "Set email visibility, manage your blocklist and more."
msgstr ""
#. js-lingui-id: qFjlHh
#: src/modules/side-panel/pages/page-layout/components/NewFieldDefaultVisibilityToggle.tsx
msgid "Set fields created in the future as \"visible\""
msgstr ""
#. js-lingui-id: 6KA8xy
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Set global workspace preferences"
@@ -13040,11 +13011,6 @@ msgstr ""
msgid "Tarball upload"
msgstr ""
#. js-lingui-id: yvSCl+
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Tarball uploaded but installation failed."
msgstr ""
#. js-lingui-id: sceIIK
#: src/modules/settings/data-model/fields/forms/morph-relation/components/SettingsDataModelFieldRelationJunctionForm.tsx
msgid "Target relation on Junction Object"
@@ -13353,6 +13319,11 @@ msgstr ""
msgid "This app is installed on the current workspace"
msgstr ""
#. js-lingui-id: AldXy0
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "This app is listed on the marketplace because it is published to npm."
msgstr ""
#. js-lingui-id: SYslQU
#: src/pages/settings/applications/SettingsAvailableApplicationDetails.tsx
msgid "This application is not listed on the marketplace. It was shared via a direct link."
@@ -14176,11 +14147,6 @@ msgstr ""
msgid "Upload .xlsx, .xls or .csv file"
msgstr ""
#. js-lingui-id: BhkxTk
#: src/modules/marketplace/hooks/useUploadAppTarball.ts
msgid "Upload failed."
msgstr ""
#. js-lingui-id: 2IXDgU
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
#: src/modules/object-record/record-field/ui/meta-types/input/components/FilesFieldInput.tsx
@@ -14204,12 +14170,6 @@ msgstr ""
msgid "Upload Files"
msgstr ""
#. js-lingui-id: aG3MkW
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
#: src/pages/settings/applications/components/SettingsUploadTarballModal.tsx
msgid "Upload tarball"
msgstr ""
#. js-lingui-id: akDOEO
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
msgid "Upload the XML file with your connection infos"
@@ -14809,11 +14769,6 @@ msgstr ""
msgid "When enabled, newly added models are available to all workspaces by default"
msgstr ""
#. js-lingui-id: mCGuXk
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
msgid "When enabled, this app appears in the marketplace browse page"
msgstr ""
#. js-lingui-id: C51ilI
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "When the API key will expire."
@@ -15103,11 +15058,6 @@ msgstr ""
msgid "You are not allowed to create records for this object"
msgstr ""
#. js-lingui-id: iibZbD
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "You can either create a private app or share it to others"
msgstr ""
#. js-lingui-id: CNAoaw
#: src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
msgid "You can see the function logic in your application settings."
@@ -15178,6 +15128,11 @@ msgstr ""
msgid "Your app version is out of date. Please refresh the page."
msgstr ""
#. js-lingui-id: oNUh7z
#: src/pages/settings/applications/tabs/SettingsApplicationsDeveloperTab.tsx
msgid "Your Apps"
msgstr ""
#. js-lingui-id: +5YqGH
#: src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts
msgid "Your email subjects and meeting titles will be shared with your team."

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