From 1c7bda8448de70f97c75cb78b77276bedfc7396e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 12:36:19 +0200 Subject: [PATCH] i18n - docs translations (#19251) Created by Github action Co-authored-by: github-actions --- .../l/pt/developers/extend/apps/building.mdx | 122 +++++++++--------- .../l/ru/developers/extend/apps/building.mdx | 102 +++++++-------- .../l/tr/developers/extend/apps/building.mdx | 114 ++++++++-------- 3 files changed, 169 insertions(+), 169 deletions(-) diff --git a/packages/twenty-docs/l/pt/developers/extend/apps/building.mdx b/packages/twenty-docs/l/pt/developers/extend/apps/building.mdx index 4c85dc2ac4..85e2ba6bc2 100644 --- a/packages/twenty-docs/l/pt/developers/extend/apps/building.mdx +++ b/packages/twenty-docs/l/pt/developers/extend/apps/building.mdx @@ -1291,42 +1291,42 @@ yarn twenty add frontComponent ### Tipos de entidade disponíveis -| Tipo de entidade | Comando | Arquivo gerado | -| ----------------------- | ------------------------------------ | ------------------------------------- | -| Objeto | `yarn twenty add object` | `src/objects/.ts` | -| Campo | `yarn twenty add field` | `src/fields/.ts` | -| Função lógica | `yarn twenty add logicFunction` | `src/logic-functions/.ts` | -| Componente de front-end | `yarn twenty add frontComponent` | `src/front-components/.tsx` | -| Função | `yarn twenty add role` | `src/roles/.ts` | -| Habilidade | `yarn twenty add skill` | `src/skills/.ts` | -| Agente | `yarn twenty add agent` | `src/agents/.ts` | -| Vista | `yarn twenty add view` | `src/views/.ts` | -| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | -| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | +| Tipo de entidade | Comando | Arquivo gerado | +| ------------------------- | ------------------------------------ | ------------------------------------- | +| Objeto | `yarn twenty add object` | `src/objects/.ts` | +| Campo | `yarn twenty add field` | `src/fields/.ts` | +| Função lógica | `yarn twenty add logicFunction` | `src/logic-functions/.ts` | +| Componente de front-end | `yarn twenty add frontComponent` | `src/front-components/.tsx` | +| Função | `yarn twenty add role` | `src/roles/.ts` | +| Habilidade | `yarn twenty add skill` | `src/skills/.ts` | +| Agente | `yarn twenty add agent` | `src/agents/.ts` | +| Vista | `yarn twenty add view` | `src/views/.ts` | +| Item do menu de navegação | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | +| Layout da página | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | -### What the scaffolder generates +### O que o scaffolder gera -Each entity type has its own template. For example, `yarn twenty add object` asks for: +Cada tipo de entidade tem seu próprio modelo. Por exemplo, `yarn twenty add object` solicita: -1. **Name (singular)** — e.g., `invoice` -2. **Name (plural)** — e.g., `invoices` -3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`) -4. **Label (plural)** — auto-populated (e.g., `Invoices`) -5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object. +1. **Nome (singular)** — por exemplo, `invoice` +2. **Nome (plural)** — por exemplo, `invoices` +3. **Rótulo (singular)** — preenchido automaticamente a partir do nome (por exemplo, `Invoice`) +4. **Rótulo (plural)** — preenchido automaticamente (por exemplo, `Invoices`) +5. **Criar uma view e um item de navegação?** — se você responder sim, o scaffolder também gera uma view correspondente e um link na barra lateral para o novo objeto. -Other entity types have simpler prompts — most only ask for a name. +Outros tipos de entidade têm prompts mais simples — a maioria pede apenas um nome. -The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`. +O tipo de entidade `field` é mais detalhado: ele solicita o nome do campo, rótulo, tipo (a partir de uma lista de todos os tipos de campo disponíveis como `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.) e o `universalIdentifier` do objeto de destino. -### Custom output path +### Caminho de saída personalizado -Use the `--path` flag to place the generated file in a custom location: +Use a opção `--path` para colocar o arquivo gerado em um local personalizado: ```bash filename="Terminal" yarn twenty add logicFunction --path src/custom-folder ``` -## Typed API clients (twenty-client-sdk) +## Clientes de API tipados (twenty-client-sdk) O pacote `twenty-client-sdk` fornece dois clientes GraphQL tipados para interagir com a API do Twenty a partir das suas funções de lógica e componentes de front-end. @@ -1336,9 +1336,9 @@ O pacote `twenty-client-sdk` fornece dois clientes GraphQL tipados para interagi | `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — configuração do espaço de trabalho, upload de arquivos | Não, vem pré-compilado | - + -`CoreApiClient` é o cliente principal para consultar e mutar dados do espaço de trabalho. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields. +`CoreApiClient` é o cliente principal para consultar e mutar dados do espaço de trabalho. Ele é **gerado a partir do schema do seu espaço de trabalho** durante `yarn twenty dev` ou `yarn twenty build`, então é totalmente tipado para corresponder aos seus objetos e campos. ```ts import { CoreApiClient } from 'twenty-client-sdk/core'; @@ -1378,12 +1378,12 @@ const { createCompany } = await client.mutation({ O cliente usa uma sintaxe de selection-set: passe `true` para incluir um campo, use `__args` para argumentos e aninhe objetos para relações. Você tem preenchimento automático e verificação de tipos completos com base no schema do seu espaço de trabalho. -**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`. +**CoreApiClient é gerado em tempo de dev/build.** Se você usá-lo sem executar primeiro `yarn twenty dev` ou `yarn twenty build`, ele lançará um erro. A geração ocorre automaticamente — a CLI analisa o schema GraphQL do seu espaço de trabalho e gera um cliente tipado usando `@genql/cli`. #### Usando CoreSchema para anotações de tipo -`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters: +`CoreSchema` fornece tipos TypeScript que correspondem aos objetos do seu espaço de trabalho — útil para tipar o estado de componentes ou parâmetros de função: ```ts import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core'; @@ -1405,7 +1405,7 @@ setCompany(result.company); ``` - + `MetadataApiClient` é fornecido pré-compilado com o SDK (não é necessário gerar). Ele consulta o endpoint `/metadata` para configuração do espaço de trabalho, aplicativos e upload de arquivos. @@ -1461,7 +1461,7 @@ console.log(uploadedFile); | ---------------------------------- | -------- | -------------------------------------------------------------- | | `fileBuffer` | `Buffer` | O conteúdo bruto do arquivo | | `filename` | `string` | O nome do arquivo (usado para armazenamento e exibição) | -| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) | +| `contentType` | `string` | Tipo MIME (padrão para `application/octet-stream` se omitido) | | `fieldMetadataUniversalIdentifier` | `string` | O `universalIdentifier` do campo do tipo arquivo no seu objeto | Pontos-chave: @@ -1475,24 +1475,24 @@ Pontos-chave: Quando seu código é executado no Twenty (funções de lógica ou componentes de front-end), a plataforma injeta credenciais como variáveis de ambiente: * `TWENTY_API_URL` — URL base da API do Twenty - * `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role + * `TWENTY_APP_ACCESS_TOKEN` — Chave de curta duração com escopo para o papel de função padrão do seu aplicativo Você **não** precisa passá-las para os clientes — eles leem de `process.env` automaticamente. As permissões da chave de API são determinadas pelo papel referenciado em `defaultRoleUniversalIdentifier` no seu `application-config.ts`. -## Testing your app +## Testando seu aplicativo -The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server. +O SDK fornece APIs programáticas que permitem compilar, implantar, instalar e desinstalar seu aplicativo a partir de código de teste. Em conjunto com [Vitest](https://vitest.dev/) e os clientes de API tipados, você pode escrever testes de integração que verificam que seu aplicativo funciona de ponta a ponta em um servidor Twenty real. ### Configuração -The scaffolded app already includes Vitest. If you set it up manually, install the dependencies: +O aplicativo gerado pelo scaffolder já inclui o Vitest. Se você configurá-lo manualmente, instale as dependências: ```bash filename="Terminal" yarn add -D vitest vite-tsconfig-paths ``` -Create a `vitest.config.ts` at the root of your app: +Crie um `vitest.config.ts` na raiz do seu aplicativo: ```ts vitest.config.ts import tsconfigPaths from 'vite-tsconfig-paths'; @@ -1518,7 +1518,7 @@ export default defineConfig({ }); ``` -Create a setup file that verifies the server is reachable before tests run: +Crie um arquivo de configuração que verifique se o servidor está acessível antes da execução dos testes: ```ts src/__tests__/setup-test.ts import * as fs from 'fs'; @@ -1558,22 +1558,22 @@ beforeAll(async () => { }); ``` -### Programmatic SDK APIs +### APIs programáticas do SDK -The `twenty-sdk/cli` subpath exports functions you can call directly from test code: +O subcaminho `twenty-sdk/cli` exporta funções que você pode chamar diretamente a partir do código de teste: -| Função | Descrição | -| -------------- | ------------------------------------------- | -| `appBuild` | Build the app and optionally pack a tarball | -| `appDeploy` | Upload a tarball to the server | -| `appInstall` | Install the app on the active workspace | -| `appUninstall` | Uninstall the app from the active workspace | +| Função | Descrição | +| -------------- | ------------------------------------------------------------ | +| `appBuild` | Compilar o aplicativo e, opcionalmente, empacotar um tarball | +| `appDeploy` | Enviar um tarball para o servidor | +| `appInstall` | Instalar o aplicativo no espaço de trabalho ativo | +| `appUninstall` | Desinstalar o aplicativo do espaço de trabalho ativo | -Each function returns a result object with `success: boolean` and either `data` or `error`. +Cada função retorna um objeto de resultado com `success: boolean` e `data` ou `error`. -### Writing an integration test +### Escrevendo um teste de integração -Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace: +Aqui está um exemplo completo que compila, implanta e instala o aplicativo e, em seguida, verifica se ele aparece no espaço de trabalho: ```ts src/__tests__/app-install.integration-test.ts import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'; @@ -1636,37 +1636,37 @@ describe('App installation', () => { }); ``` -### Running tests +### Executando testes -Make sure your local Twenty server is running, then: +Certifique-se de que seu servidor Twenty local esteja em execução e, em seguida: ```bash filename="Terminal" yarn test ``` -Or in watch mode during development: +Ou no modo watch durante o desenvolvimento: ```bash filename="Terminal" yarn test:watch ``` -### Type checking +### Verificação de tipos -You can also run type checking on your app without running tests: +Você também pode executar a verificação de tipos no seu aplicativo sem executar os testes: ```bash filename="Terminal" yarn twenty typecheck ``` -This runs `tsc --noEmit` and reports any type errors. +Isso executa `tsc --noEmit` e informa quaisquer erros de tipo. ## Referência da CLI -Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations. +Além de `dev`, `build`, `add` e `typecheck`, a CLI fornece comandos para executar funções, visualizar logs e gerenciar instalações de aplicativos. -### Executing functions (`yarn twenty exec`) +### Executando funções (`yarn twenty exec`) -Run a logic function manually without triggering it via HTTP, cron, or database event: +Execute manualmente uma função de lógica sem acioná-la via HTTP, cron ou evento de banco de dados: ```bash filename="Terminal" # Execute by function name @@ -1683,9 +1683,9 @@ yarn twenty exec --preInstall yarn twenty exec --postInstall ``` -### Viewing function logs (`yarn twenty logs`) +### Visualizando logs de funções (`yarn twenty logs`) -Stream execution logs for your app's logic functions: +Transmita os logs de execução das funções de lógica do seu aplicativo: ```bash filename="Terminal" # Stream all function logs @@ -1699,12 +1699,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf ``` -This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server. +Isso é diferente de `yarn twenty server logs`, que mostra os logs do contêiner Docker. `yarn twenty logs` mostra os logs de execução de funções do seu aplicativo a partir do servidor Twenty. -### Uninstalling an app (`yarn twenty uninstall`) +### Desinstalando um aplicativo (`yarn twenty uninstall`) -Remove your app from the active workspace: +Remova seu aplicativo do espaço de trabalho ativo: ```bash filename="Terminal" yarn twenty uninstall diff --git a/packages/twenty-docs/l/ru/developers/extend/apps/building.mdx b/packages/twenty-docs/l/ru/developers/extend/apps/building.mdx index 0fdc81d5fc..ae73c67fad 100644 --- a/packages/twenty-docs/l/ru/developers/extend/apps/building.mdx +++ b/packages/twenty-docs/l/ru/developers/extend/apps/building.mdx @@ -1301,32 +1301,32 @@ yarn twenty add frontComponent | Навык | `yarn twenty add skill` | `src/skills/.ts` | | Агент | `yarn twenty add agent` | `src/agents/.ts` | | Представление | `yarn twenty add view` | `src/views/.ts` | -| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | -| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | +| Пункт меню навигации | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | +| Макет страницы | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | -### What the scaffolder generates +### Что генерирует скэффолдер -Each entity type has its own template. For example, `yarn twenty add object` asks for: +У каждого типа сущности есть свой шаблон. Например, `yarn twenty add object` запрашивает: -1. **Name (singular)** — e.g., `invoice` -2. **Name (plural)** — e.g., `invoices` -3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`) -4. **Label (plural)** — auto-populated (e.g., `Invoices`) -5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object. +1. **Имя (единственное число)** — например, `invoice` +2. **Имя (множественное число)** — например, `invoices` +3. **Метка (единственное число)** — заполняется автоматически из имени (например, `Invoice`) +4. **Метка (множественное число)** — заполняется автоматически (например, `Invoices`) +5. **Создать представление и пункт навигации?** — если вы ответите «да», скэффолдер также сгенерирует соответствующее представление и ссылку в боковой панели для нового объекта. -Other entity types have simpler prompts — most only ask for a name. +У других типов сущностей подсказки проще — в большинстве случаев запрашивается только имя. -The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`. +Тип сущности `field` более детализирован: он запрашивает имя поля, метку, тип (из списка всех доступных типов полей, таких как `TEXT`, `NUMBER`, `SELECT`, `RELATION` и т. д.), а также `universalIdentifier` целевого объекта. -### Custom output path +### Пользовательский путь вывода -Use the `--path` flag to place the generated file in a custom location: +Используйте флаг `--path`, чтобы поместить сгенерированный файл в пользовательское расположение: ```bash filename="Terminal" yarn twenty add logicFunction --path src/custom-folder ``` -## Typed API clients (twenty-client-sdk) +## Типизированные клиенты API (twenty-client-sdk) Пакет `twenty-client-sdk` предоставляет два типизированных клиента GraphQL для взаимодействия с API Twenty из ваших логических функций и фронт-компонентов. @@ -1336,9 +1336,9 @@ yarn twenty add logicFunction --path src/custom-folder | `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — конфигурация рабочего пространства, загрузка файлов | Нет, поставляется в готовом виде | - + -`CoreApiClient` — основной клиент для запросов и изменений данных рабочего пространства. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields. +`CoreApiClient` — основной клиент для запросов и изменений данных рабочего пространства. Он **генерируется из схемы вашего рабочего пространства** во время `yarn twenty dev` или `yarn twenty build`, поэтому полностью типизирован в соответствии с вашими объектами и полями. ```ts import { CoreApiClient } from 'twenty-client-sdk/core'; @@ -1378,12 +1378,12 @@ const { createCompany } = await client.mutation({ Клиент использует синтаксис selection-set: передайте `true`, чтобы включить поле, используйте `__args` для аргументов и вкладывайте объекты для отношений. Вы получаете полное автодополнение и проверку типов на основе схемы вашего рабочего пространства. -**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`. +**CoreApiClient генерируется на этапе dev/build.** Если вы используете его, не запустив сначала `yarn twenty dev` или `yarn twenty build`, он выбросит ошибку. Генерация происходит автоматически — CLI анализирует GraphQL-схему вашего рабочего пространства и создает типизированный клиент с помощью `@genql/cli`. #### Использование CoreSchema для аннотаций типов -`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters: +`CoreSchema` предоставляет типы TypeScript, соответствующие объектам вашего рабочего пространства — это полезно для типизации состояния компонентов или параметров функций: ```ts import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core'; @@ -1405,7 +1405,7 @@ setCompany(result.company); ``` - + `MetadataApiClient` поставляется в готовом виде вместе с SDK (генерация не требуется). Он выполняет запросы к эндпоинту `/metadata` для получения конфигурации рабочего пространства, приложений и загрузки файлов. @@ -1461,7 +1461,7 @@ console.log(uploadedFile); | ---------------------------------- | -------- | ------------------------------------------------------------------ | | `fileBuffer` | `Buffer` | Необработанное содержимое файла | | `filename` | `строка` | Имя файла (используется для хранения и отображения) | -| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) | +| `contentType` | `string` | Тип MIME (по умолчанию `application/octet-stream`, если не указан) | | `fieldMetadataUniversalIdentifier` | `string` | Значение `universalIdentifier` для поля типа файла в вашем объекте | Основные моменты: @@ -1475,24 +1475,24 @@ console.log(uploadedFile); Когда ваш код выполняется на Twenty (логические функции или фронт-компоненты), платформа предоставляет учётные данные в виде переменных окружения: * `TWENTY_API_URL` — базовый URL API Twenty - * `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role + * `TWENTY_APP_ACCESS_TOKEN` — краткоживущий ключ, ограниченный ролью функции по умолчанию вашего приложения Вам не нужно передавать их клиентам — они автоматически читаются из `process.env`. Права ключа API определяются ролью, указанной в `defaultRoleUniversalIdentifier` в вашем `application-config.ts`. -## Testing your app +## Тестирование вашего приложения -The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server. +SDK предоставляет программные API, которые позволяют собирать, разворачивать, устанавливать и удалять ваше приложение из тестового кода. В сочетании с [Vitest](https://vitest.dev/) и типизированными клиентами API вы можете писать интеграционные тесты, которые проверяют, что ваше приложение работает сквозным образом на реальном сервере Twenty. ### Настройка -The scaffolded app already includes Vitest. If you set it up manually, install the dependencies: +Приложение, созданное скэффолдером, уже включает Vitest. Если вы настраиваете его вручную, установите зависимости: ```bash filename="Terminal" yarn add -D vitest vite-tsconfig-paths ``` -Create a `vitest.config.ts` at the root of your app: +Создайте `vitest.config.ts` в корне вашего приложения: ```ts vitest.config.ts import tsconfigPaths from 'vite-tsconfig-paths'; @@ -1518,7 +1518,7 @@ export default defineConfig({ }); ``` -Create a setup file that verifies the server is reachable before tests run: +Создайте файл инициализации, который проверяет доступность сервера перед запуском тестов: ```ts src/__tests__/setup-test.ts import * as fs from 'fs'; @@ -1558,22 +1558,22 @@ beforeAll(async () => { }); ``` -### Programmatic SDK APIs +### Программные API SDK -The `twenty-sdk/cli` subpath exports functions you can call directly from test code: +Подпуть `twenty-sdk/cli` экспортирует функции, которые можно вызывать напрямую из тестового кода: -| Функция | Описание | -| -------------- | ------------------------------------------- | -| `appBuild` | Build the app and optionally pack a tarball | -| `appDeploy` | Upload a tarball to the server | -| `appInstall` | Install the app on the active workspace | -| `appUninstall` | Uninstall the app from the active workspace | +| Функция | Описание | +| -------------- | ---------------------------------------------------------- | +| `appBuild` | Собрать приложение и при необходимости упаковать tar-архив | +| `appDeploy` | Загрузить tar-архив на сервер | +| `appInstall` | Установить приложение в активное рабочее пространство | +| `appUninstall` | Удалить приложение из активного рабочего пространства | -Each function returns a result object with `success: boolean` and either `data` or `error`. +Каждая функция возвращает объект результата с `success: boolean` и либо `data`, либо `error`. -### Writing an integration test +### Написание интеграционного теста -Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace: +Полный пример, который собирает, разворачивает и устанавливает приложение, а затем проверяет, что оно появляется в рабочем пространстве: ```ts src/__tests__/app-install.integration-test.ts import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'; @@ -1636,37 +1636,37 @@ describe('App installation', () => { }); ``` -### Running tests +### Запуск тестов -Make sure your local Twenty server is running, then: +Убедитесь, что ваш локальный сервер Twenty запущен, затем: ```bash filename="Terminal" yarn test ``` -Or in watch mode during development: +Или в режиме наблюдения во время разработки: ```bash filename="Terminal" yarn test:watch ``` -### Type checking +### Проверка типов -You can also run type checking on your app without running tests: +Вы также можете запустить проверку типов для своего приложения без запуска тестов: ```bash filename="Terminal" yarn twenty typecheck ``` -This runs `tsc --noEmit` and reports any type errors. +Это запускает `tsc --noEmit` и сообщает о любых ошибках типов. ## Справочник по CLI -Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations. +Помимо `dev`, `build`, `add` и `typecheck`, CLI предоставляет команды для выполнения функций, просмотра логов и управления установками приложений. -### Executing functions (`yarn twenty exec`) +### Выполнение функций (`yarn twenty exec`) -Run a logic function manually without triggering it via HTTP, cron, or database event: +Запустите функцию логики вручную, не вызывая ее через HTTP, cron или событие базы данных: ```bash filename="Terminal" # Execute by function name @@ -1683,9 +1683,9 @@ yarn twenty exec --preInstall yarn twenty exec --postInstall ``` -### Viewing function logs (`yarn twenty logs`) +### Просмотр логов функций (`yarn twenty logs`) -Stream execution logs for your app's logic functions: +Потоковая передача журналов выполнения функций логики вашего приложения: ```bash filename="Terminal" # Stream all function logs @@ -1699,12 +1699,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf ``` -This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server. +Это отличается от `yarn twenty server logs`, который показывает логи контейнера Docker. `yarn twenty logs` показывает журналы выполнения функций вашего приложения с сервера Twenty. -### Uninstalling an app (`yarn twenty uninstall`) +### Удаление приложения (`yarn twenty uninstall`) -Remove your app from the active workspace: +Удалите свое приложение из активного рабочего пространства: ```bash filename="Terminal" yarn twenty uninstall diff --git a/packages/twenty-docs/l/tr/developers/extend/apps/building.mdx b/packages/twenty-docs/l/tr/developers/extend/apps/building.mdx index 68a5a711e3..1aab26173c 100644 --- a/packages/twenty-docs/l/tr/developers/extend/apps/building.mdx +++ b/packages/twenty-docs/l/tr/developers/extend/apps/building.mdx @@ -1302,34 +1302,34 @@ yarn twenty add frontComponent | Beceri | `yarn twenty add skill` | `src/skills/.ts` | | Temsilci | `yarn twenty add agent` | `src/agents/.ts` | | Görünüm | `yarn twenty add view` | `src/views/.ts` | -| Navigation menu item | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | -| Page layout | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | +| Gezinme menüsü öğesi | `yarn twenty add navigationMenuItem` | `src/navigation-menu-items/.ts` | +| Sayfa düzeni | `yarn twenty add pageLayout` | `src/page-layouts/.ts` | -### What the scaffolder generates +### İskelet oluşturucunun ürettikleri -Each entity type has its own template. For example, `yarn twenty add object` asks for: +Her varlık türünün kendi şablonu vardır. Örneğin, `yarn twenty add object` şunları sorar: -1. **Name (singular)** — e.g., `invoice` -2. **Name (plural)** — e.g., `invoices` -3. **Label (singular)** — auto-populated from the name (e.g., `Invoice`) -4. **Label (plural)** — auto-populated (e.g., `Invoices`) -5. **Create a view and navigation item?** — if you answer yes, the scaffolder also generates a matching view and sidebar link for the new object. +1. **Ad (tekil)** — ör. `invoice` +2. **Ad (çoğul)** — ör. `invoices` +3. **Etiket (tekil)** — adından otomatik doldurulur (ör. `Invoice`) +4. **Etiket (çoğul)** — otomatik doldurulur (ör. `Invoices`) +5. **Bir görünüm ve gezinme öğesi oluşturulsun mu?** — evet derseniz, iskelet oluşturucu yeni nesne için eşleşen bir görünüm ve kenar çubuğu bağlantısı da üretir. -Other entity types have simpler prompts — most only ask for a name. +Diğer varlık türlerinin istemleri daha basittir — çoğu yalnızca bir ad sorar. -The `field` entity type is more detailed: it asks for the field name, label, type (from a list of all available field types like `TEXT`, `NUMBER`, `SELECT`, `RELATION`, etc.), and the target object's `universalIdentifier`. +`field` varlık türü daha ayrıntılıdır: alan adını, etiketi, türü (`TEXT`, `NUMBER`, `SELECT`, `RELATION` vb. gibi mevcut tüm alan türlerinin listesinden) ve hedef nesnenin `universalIdentifier` değerini sorar. -### Custom output path +### Özel çıktı yolu -Use the `--path` flag to place the generated file in a custom location: +`--path` bayrağını kullanarak oluşturulan dosyayı özel bir konuma yerleştirin: ```bash filename="Terminal" yarn twenty add logicFunction --path src/custom-folder ``` -## Typed API clients (twenty-client-sdk) +## Tipli API istemcileri (twenty-client-sdk) -The `twenty-client-sdk` package provides two typed GraphQL clients for interacting with the Twenty API from your logic functions and front components. +`twenty-client-sdk` paketi, mantık fonksiyonlarınızdan ve ön uç bileşenlerinizden Twenty API ile etkileşim kurmak için tip tanımlı iki GraphQL istemcisi sağlar. | İstemci | İçe Aktar | Uç nokta | Oluşturuldu mu? | | ------------------- | ---------------------------- | ------------------------------------------------------------- | --------------------------------------- | @@ -1337,9 +1337,9 @@ The `twenty-client-sdk` package provides two typed GraphQL clients for interacti | `MetadataApiClient` | `twenty-client-sdk/metadata` | `/metadata` — çalışma alanı yapılandırması, dosya yüklemeleri | Hayır, önceden hazırlanmış olarak gelir | - + -`CoreApiClient`, çalışma alanı verilerini sorgulamak ve değiştirmek için ana istemcidir. It is **generated from your workspace schema** during `yarn twenty dev` or `yarn twenty build`, so it is fully typed to match your objects and fields. +`CoreApiClient`, çalışma alanı verilerini sorgulamak ve değiştirmek için ana istemcidir. `yarn twenty dev` veya `yarn twenty build` sırasında **çalışma alanı şemanızdan oluşturulur**, bu nedenle nesnelerinize ve alanlarınıza uyacak şekilde tamamen tiplenmiştir. ```ts import { CoreApiClient } from 'twenty-client-sdk/core'; @@ -1379,12 +1379,12 @@ const { createCompany } = await client.mutation({ İstemci bir seçim kümesi sözdizimi kullanır: Bir alanı dahil etmek için `true` geçin, bağımsız değişkenler için `__args` kullanın ve ilişkiler için nesneleri iç içe yerleştirin. Çalışma alanı şemanıza göre tam otomatik tamamlama ve tip denetimi elde edersiniz. -**CoreApiClient is generated at dev/build time.** If you use it without running `yarn twenty dev` or `yarn twenty build` first, it throws an error. The generation happens automatically — the CLI introspects your workspace's GraphQL schema and generates a typed client using `@genql/cli`. +**CoreApiClient geliştirme/derleme zamanında oluşturulur.** Bunu önce `yarn twenty dev` veya `yarn twenty build` çalıştırmadan kullanırsanız, bir hata verir. Oluşturma otomatik olarak gerçekleşir — CLI, çalışma alanınızın GraphQL şemasını inceler ve `@genql/cli` kullanarak tiplenmiş bir istemci üretir. #### Tür açıklamaları için CoreSchema'yı kullanma -`CoreSchema` provides TypeScript types matching your workspace objects — useful for typing component state or function parameters: +`CoreSchema`, çalışma alanı nesnelerinize uyan TypeScript türleri sağlar — bileşen durumunu veya işlev parametrelerini tiplemek için kullanışlıdır: ```ts import { CoreApiClient, CoreSchema } from 'twenty-client-sdk/core'; @@ -1406,7 +1406,7 @@ setCompany(result.company); ``` - + `MetadataApiClient`, SDK ile birlikte önceden hazırlanmış olarak gelir (oluşturma gerektirmez). Çalışma alanı yapılandırması, uygulamalar ve dosya yüklemeleri için `/metadata` uç noktasını sorgular. @@ -1458,12 +1458,12 @@ console.log(uploadedFile); // { id: '...', path: '...', size: 12345, createdAt: '...', url: 'https://...' } ``` -| Parametre | Tür | Açıklama | -| ---------------------------------- | -------- | ------------------------------------------------------------- | -| `fileBuffer` | `Buffer` | Dosyanın ham içeriği | -| `filename` | `string` | Dosyanın adı (depolama ve görüntüleme için kullanılır) | -| `contentType` | `string` | MIME type (defaults to `application/octet-stream` if omitted) | -| `fieldMetadataUniversalIdentifier` | `string` | Nesnenizdeki dosya türü alanının `universalIdentifier` değeri | +| Parametre | Tür | Açıklama | +| ---------------------------------- | -------- | --------------------------------------------------------------------------------- | +| `fileBuffer` | `Buffer` | Dosyanın ham içeriği | +| `filename` | `string` | Dosyanın adı (depolama ve görüntüleme için kullanılır) | +| `contentType` | `string` | MIME türü (belirtilmezse varsayılan olarak `application/octet-stream` kullanılır) | +| `fieldMetadataUniversalIdentifier` | `string` | Nesnenizdeki dosya türü alanının `universalIdentifier` değeri | Önemli noktalar: * Alan için `universalIdentifier` kullanır (çalışma alanına özgü kimliği değil), böylece yükleme kodunuz uygulamanızın yüklü olduğu herhangi bir çalışma alanında çalışır. @@ -1476,24 +1476,24 @@ console.log(uploadedFile); Kodunuz Twenty üzerinde çalıştığında (mantık işlevleri veya ön uç bileşenleri), platform kimlik bilgilerini ortam değişkenleri olarak enjekte eder: * `TWENTY_API_URL` — Twenty API'nin temel URL'si - * `TWENTY_APP_ACCESS_TOKEN` — Short-lived key scoped to your application's default function role + * `TWENTY_APP_ACCESS_TOKEN` — Uygulamanızın varsayılan fonksiyon rolü kapsamında kısa ömürlü anahtar Bunları istemcilere iletmeniz gerekmez — otomatik olarak `process.env`'den okurlar. API anahtarının izinleri, `application-config.ts` içinde `defaultRoleUniversalIdentifier` ile referans verilen role göre belirlenir. -## Testing your app +## Uygulamanızı test etme -The SDK provides programmatic APIs that let you build, deploy, install, and uninstall your app from test code. Combined with [Vitest](https://vitest.dev/) and the typed API clients, you can write integration tests that verify your app works end-to-end against a real Twenty server. +SDK, test kodundan uygulamanızı derlemenize, dağıtmanıza, yüklemenize ve kaldırmanıza olanak tanıyan programatik API'ler sağlar. Tiplenmiş API istemcileriyle birlikte [Vitest](https://vitest.dev/) kullanarak, uygulamanızın gerçek bir Twenty sunucusunda uçtan uca çalıştığını doğrulayan entegrasyon testleri yazabilirsiniz. ### Kurulum -The scaffolded app already includes Vitest. If you set it up manually, install the dependencies: +İskelet aracıyla oluşturulan uygulama zaten Vitest'i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin: ```bash filename="Terminal" yarn add -D vitest vite-tsconfig-paths ``` -Create a `vitest.config.ts` at the root of your app: +Uygulamanızın kök dizininde bir `vitest.config.ts` oluşturun: ```ts vitest.config.ts import tsconfigPaths from 'vite-tsconfig-paths'; @@ -1519,7 +1519,7 @@ export default defineConfig({ }); ``` -Create a setup file that verifies the server is reachable before tests run: +Testler çalışmadan önce sunucuya erişilebildiğini doğrulayan bir kurulum dosyası oluşturun: ```ts src/__tests__/setup-test.ts import * as fs from 'fs'; @@ -1559,22 +1559,22 @@ beforeAll(async () => { }); ``` -### Programmatic SDK APIs +### Programatik SDK API'leri -The `twenty-sdk/cli` subpath exports functions you can call directly from test code: +`twenty-sdk/cli` alt yolu, test kodundan doğrudan çağırabileceğiniz fonksiyonları dışa aktarır: -| Fonksiyon | Açıklama | -| -------------- | ------------------------------------------- | -| `appBuild` | Build the app and optionally pack a tarball | -| `appDeploy` | Upload a tarball to the server | -| `appInstall` | Install the app on the active workspace | -| `appUninstall` | Uninstall the app from the active workspace | +| Fonksiyon | Açıklama | +| -------------- | ----------------------------------------------------------------- | +| `appBuild` | Uygulamayı derleyin ve isteğe bağlı olarak bir tarball paketleyin | +| `appDeploy` | Bir tarball'ı sunucuya yükleyin | +| `appInstall` | Uygulamayı etkin çalışma alanına yükleyin | +| `appUninstall` | Uygulamayı etkin çalışma alanından kaldırın | -Each function returns a result object with `success: boolean` and either `data` or `error`. +Her fonksiyon, `success: boolean` ile birlikte `data` veya `error` içeren bir sonuç nesnesi döndürür. -### Writing an integration test +### Bir entegrasyon testi yazma -Here is a full example that builds, deploys, and installs the app, then verifies it appears in the workspace: +İşte uygulamayı derleyen, dağıtan ve yükleyen; ardından çalışma alanında göründüğünü doğrulayan tam bir örnek: ```ts src/__tests__/app-install.integration-test.ts import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application-config'; @@ -1637,37 +1637,37 @@ describe('App installation', () => { }); ``` -### Running tests +### Testleri çalıştırma -Make sure your local Twenty server is running, then: +Yerel Twenty sunucunuzun çalıştığından emin olun, ardından: ```bash filename="Terminal" yarn test ``` -Or in watch mode during development: +Veya geliştirme sırasında izleme modunda: ```bash filename="Terminal" yarn test:watch ``` -### Type checking +### Tip denetimi -You can also run type checking on your app without running tests: +Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz: ```bash filename="Terminal" yarn twenty typecheck ``` -This runs `tsc --noEmit` and reports any type errors. +Bu, `tsc --noEmit` komutunu çalıştırır ve tüm tip hatalarını raporlar. ## CLI başvurusu -Beyond `dev`, `build`, `add`, and `typecheck`, the CLI provides commands for executing functions, viewing logs, and managing app installations. +`dev`, `build`, `add` ve `typecheck` dışında CLI, fonksiyonları çalıştırma, günlükleri görüntüleme ve uygulama kurulumlarını yönetme komutları sağlar. -### Executing functions (`yarn twenty exec`) +### Fonksiyonları çalıştırma (`yarn twenty exec`) -Run a logic function manually without triggering it via HTTP, cron, or database event: +Bir mantık fonksiyonunu HTTP, cron veya veritabanı olayıyla tetiklemeden manuel olarak çalıştırın: ```bash filename="Terminal" # Execute by function name @@ -1684,9 +1684,9 @@ yarn twenty exec --preInstall yarn twenty exec --postInstall ``` -### Viewing function logs (`yarn twenty logs`) +### Fonksiyon günlüklerini görüntüleme (`yarn twenty logs`) -Stream execution logs for your app's logic functions: +Uygulamanızın mantık fonksiyonlarının yürütme günlüklerini akış olarak alın: ```bash filename="Terminal" # Stream all function logs @@ -1700,12 +1700,12 @@ yarn twenty logs -u e56d363b-0bdc-4d8a-a393-6f0d1c75bdcf ``` -This is different from `yarn twenty server logs`, which shows the Docker container logs. `yarn twenty logs` shows your app's function execution logs from the Twenty server. +Bu, Docker konteyner günlüklerini gösteren `yarn twenty server logs` komutundan farklıdır. `yarn twenty logs`, uygulamanızın fonksiyon yürütme günlüklerini Twenty sunucusundan gösterir. -### Uninstalling an app (`yarn twenty uninstall`) +### Bir uygulamayı kaldırma (`yarn twenty uninstall`) -Remove your app from the active workspace: +Uygulamanızı etkin çalışma alanından kaldırın: ```bash filename="Terminal" yarn twenty uninstall