From 31742a3810898027787781653f8d40cb0ef55bca Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Wed, 13 May 2026 15:58:32 +0000 Subject: [PATCH] chore: update translations --- .../da/crowdin/billing/app-subscriptions.mdx | 65 + .../billing/changing-subscription-plan.mdx | 83 + .../da/crowdin/billing/crowdin-credits.mdx | 100 + .../da/crowdin/billing/payments-invoices.mdx | 79 + .../docs/da/crowdin/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 71 + .../getting-started/account/notifications.mdx | 310 ++ .../getting-started/account/settings.mdx | 520 ++ .../additional-support-services.mdx | 50 + .../crowdin/getting-started/for-managers.mdx | 184 + .../getting-started/for-translators.mdx | 203 + .../getting-started/migrating-to-crowdin.mdx | 74 + .../getting-started/supported-formats.mdx | 74 + .../docs/da/crowdin/integrations/adobe-xd.mdx | 258 + .../da/crowdin/integrations/azure-repos.mdx | 236 + .../da/crowdin/integrations/bitbucket.mdx | 230 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 166 + .../docs/da/crowdin/integrations/figma.mdx | 469 ++ .../docs/da/crowdin/integrations/github.mdx | 249 + .../docs/da/crowdin/integrations/gitlab.mdx | 241 + .../da/crowdin/integrations/google-play.mdx | 95 + .../docs/da/crowdin/integrations/jira.mdx | 117 + .../docs/da/crowdin/integrations/overview.mdx | 125 + .../docs/da/crowdin/integrations/sketch.mdx | 206 + src/content/docs/da/crowdin/introduction.mdx | 203 + .../localization-resources/glossary.mdx | 301 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 170 + .../translation-memory.mdx | 377 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../docs/da/crowdin/online-editor/issues.mdx | 148 + .../da/crowdin/online-editor/overview.mdx | 959 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../da/crowdin/online-editor/word-counter.mdx | 13 + .../project-management/creating-project.mdx | 97 + .../project-management/discussions.mdx | 123 + .../project-management/project-activity.mdx | 48 + .../project-settings/ai.mdx | 60 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 49 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 94 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 119 + .../project-settings/labels.mdx | 40 + .../project-settings/languages.mdx | 95 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/pre-translate.mdx | 56 + .../privacy-collaboration.mdx | 59 + .../project-settings/qa-checks.mdx | 168 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 68 + .../project-management/screenshots.mdx | 218 + .../sources/asset-localization.mdx | 45 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 85 + .../sources/file-management.mdx | 205 + .../sources/string-management.mdx | 142 + .../sources/uploading-files.mdx | 123 + .../sources/version-management.mdx | 328 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 120 + .../translations/uploading-translations.mdx | 149 + .../crowdin/project-management/webhooks.mdx | 117 + .../crowdin/reports/contributor-reports.mdx | 473 ++ .../da/crowdin/reports/project-reports.mdx | 858 ++++ .../da/crowdin/tasks/blend-integration.mdx | 124 + .../tasks/crowdin-language-services.mdx | 182 + src/content/docs/da/crowdin/tasks/tasks.mdx | 375 ++ .../docs/da/crowdin/tasks/user-tasks.mdx | 175 + .../team-management/inviting-people.mdx | 85 + .../team-management/manager-permissions.mdx | 64 + .../team-management/project-members.mdx | 62 + .../docs/da/crowdin/team-management/roles.mdx | 61 + .../translation-process/ai-fine-tuning.mdx | 210 + .../translation-process/crowdin-ai.mdx | 424 ++ .../offline-translation.mdx | 147 + .../ordering-professional-translations.mdx | 119 + .../translation-process/pre-translation.mdx | 155 + .../translation-strategies.mdx | 80 + src/content/docs/da/developer/api/croql.mdx | 1620 ++++++ .../da/developer/api/crowdin-mcp-server.mdx | 448 ++ .../docs/da/developer/api/graphql-api.mdx | 567 ++ .../docs/da/developer/api/language-codes.mdx | 24 + .../docs/da/developer/api/overview.mdx | 48 + .../developer/capabilities/editor-themes.mdx | 193 + .../da/developer/capabilities/in-context.mdx | 324 ++ .../capabilities/pseudolocalization.mdx | 91 + .../da/developer/capabilities/webhooks.mdx | 426 ++ .../crowdin-apps/about-crowdin-apps.mdx | 113 + .../developer/crowdin-apps/app-descriptor.mdx | 442 ++ .../da/developer/crowdin-apps/apps-js.mdx | 4539 +++++++++++++++++ .../developer/crowdin-apps/installation.mdx | 194 + .../crowdin-apps/publishing/monetization.mdx | 93 + .../crowdin-apps/publishing/promoting.mdx | 31 + .../crowdin-apps/publishing/publishing.mdx | 280 + .../crowdin-apps/publishing/releasing.mdx | 57 + .../da/developer/crowdin-apps/quick-start.mdx | 1584 ++++++ .../da/developer/crowdin-apps/security.mdx | 124 + .../developer/crowdin-apps/user-interface.mdx | 22 + .../dev-tools/configuration-file.mdx | 856 ++++ .../docs/da/developer/dev-tools/overview.mdx | 68 + .../da/developer/guides/apps-localization.mdx | 70 + .../automated-screenshot-management.mdx | 126 + .../guides/shopify-apps-localization.mdx | 106 + .../modules/ai-modules/ai-prompt-provider.mdx | 761 +++ .../ai-modules/ai-request-processors.mdx | 145 + .../modules/ai-modules/custom-ai.mdx | 272 + .../developer/modules/ai-modules/overview.mdx | 105 + .../custom-bundle-generator.mdx | 325 ++ .../custom-file-format.mdx | 409 ++ .../file-post-export-processing.mdx | 219 + .../file-post-import-processing.mdx | 309 ++ .../file-pre-export-processing.mdx | 291 ++ .../file-pre-import-processing.mdx | 219 + .../file-processing-modules/overview.mdx | 126 + .../translation-alignment.mdx | 300 ++ .../docs/da/developer/modules/other/api.mdx | 98 + .../da/developer/modules/other/auth-guard.mdx | 610 +++ .../modules/other/custom-spellchecker.mdx | 251 + .../modules/other/external-qa-checks.mdx | 255 + .../da/developer/modules/other/webhook.mdx | 135 + .../modules/other/workflow-step-type.mdx | 543 ++ .../modules/ui-modules/context-menu.mdx | 252 + .../modules/ui-modules/custom-mt.mdx | 338 ++ .../modules/ui-modules/editor-asset-panel.mdx | 119 + .../modules/ui-modules/editor-right-panel.mdx | 115 + .../ui-modules/editor-translations-panel.mdx | 101 + .../modules/ui-modules/integrations.mdx | 106 + .../da/developer/modules/ui-modules/modal.mdx | 82 + .../organization-menu-crowdsource.mdx | 66 + .../modules/ui-modules/organization-menu.mdx | 80 + .../ui-modules/organization-settings-menu.mdx | 79 + .../developer/modules/ui-modules/overview.mdx | 196 + .../modules/ui-modules/profile-menu.mdx | 93 + .../ui-modules/profile-settings-menu.mdx | 68 + .../ui-modules/project-menu-crowdsource.mdx | 78 + .../modules/ui-modules/project-menu.mdx | 89 + .../developer/modules/ui-modules/reports.mdx | 101 + .../da/developer/modules/ui-modules/tools.mdx | 106 + .../security/authorizing-oauth-apps.mdx | 276 + .../da/developer/security/ip-addresses.mdx | 97 + .../security/understanding-scopes.mdx | 254 + .../docs/da/docs/company-description.mdx | 55 + src/content/docs/da/docs/cookies.mdx | 41 + src/content/docs/da/docs/data-residency.mdx | 80 + src/content/docs/da/docs/gdpr.mdx | 76 + src/content/docs/da/docs/hipaa-disclaimer.mdx | 30 + .../intellectual-rights-for-translations.mdx | 26 + src/content/docs/da/docs/privacy-policy.mdx | 261 + src/content/docs/da/docs/security-policy.mdx | 207 + src/content/docs/da/docs/sub-processors.mdx | 55 + src/content/docs/da/docs/terms.mdx | 573 +++ src/content/docs/da/docs/using-logo.mdx | 342 ++ .../docs/da/docs/vulnerability-policy.mdx | 10 + .../enterprise/billing/app-subscriptions.mdx | 60 + .../billing/changing-subscription-plan.mdx | 61 + .../da/enterprise/billing/crowdin-credits.mdx | 96 + .../enterprise/billing/payments-invoices.mdx | 70 + .../docs/da/enterprise/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 68 + .../getting-started/account/notifications.mdx | 306 ++ .../getting-started/account/settings.mdx | 263 + .../additional-support-services.mdx | 48 + ...mparing-crowdin-and-crowdin-enterprise.mdx | 134 + .../getting-started/for-managers.mdx | 383 ++ .../getting-started/for-translators.mdx | 233 + .../getting-started/for-vendors.mdx | 101 + .../getting-started/keyboard-shortcuts.mdx | 174 + .../migrating-to-crowdin-enterprise.mdx | 131 + .../getting-started/supported-formats.mdx | 74 + .../da/enterprise/integrations/adobe-xd.mdx | 259 + .../enterprise/integrations/azure-repos.mdx | 233 + .../da/enterprise/integrations/bitbucket.mdx | 227 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 165 + .../docs/da/enterprise/integrations/figma.mdx | 469 ++ .../da/enterprise/integrations/github.mdx | 246 + .../da/enterprise/integrations/gitlab.mdx | 238 + .../enterprise/integrations/google-play.mdx | 95 + .../docs/da/enterprise/integrations/jira.mdx | 121 + .../da/enterprise/integrations/overview.mdx | 126 + .../da/enterprise/integrations/sketch.mdx | 207 + .../docs/da/enterprise/introduction.mdx | 60 + .../localization-resources/glossary.mdx | 338 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 174 + .../translation-memory.mdx | 376 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../da/enterprise/online-editor/issues.mdx | 148 + .../da/enterprise/online-editor/overview.mdx | 1030 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../enterprise/online-editor/word-counter.mdx | 13 + .../organization-management/clients.mdx | 104 + .../organization-management/crowdsourcing.mdx | 116 + .../organization-management/groups.mdx | 75 + .../organization-management/overview.mdx | 79 + .../settings/custom-placeholders.mdx | 145 + .../settings/custom-qa-checks.mdx | 232 + .../settings/fields.mdx | 135 + .../settings/general.mdx | 276 + .../organization-management/settings/oidc.mdx | 144 + .../settings/permissions-granularity-mode.mdx | 83 + .../organization-management/settings/saml.mdx | 443 ++ .../settings/security.mdx | 169 + .../settings/user-access-tokens.mdx | 51 + .../organization-management/vendors.mdx | 51 + .../workflows/app-based-workflow-step.mdx | 86 + .../workflows/custom-code.mdx | 137 + .../workflows/overview.mdx | 131 + .../workflows/source-text-review.mdx | 74 + .../workflows/translation-by-api-vendor.mdx | 63 + .../translation-proofreading-by-vendor.mdx | 76 + .../project-management/creating-project.mdx | 146 + .../project-management/project-activity.mdx | 47 + .../project-settings/ai.mdx | 62 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 76 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 54 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 136 + .../project-settings/labels.mdx | 39 + .../project-settings/languages.mdx | 57 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/privacy.mdx | 64 + .../project-settings/qa-checks.mdx | 185 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 64 + .../project-management/screenshots.mdx | 210 + .../sources/asset-localization.mdx | 44 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 86 + .../sources/file-management.mdx | 193 + .../sources/string-management.mdx | 145 + .../sources/uploading-files.mdx | 124 + .../sources/version-management.mdx | 331 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 112 + .../translations/uploading-translations.mdx | 149 + .../project-management/webhooks.mdx | 122 + .../reports/contributor-reports.mdx | 479 ++ .../reports/organization-reports.mdx | 699 +++ .../da/enterprise/reports/project-reports.mdx | 993 ++++ .../docs/da/enterprise/tasks/tasks.mdx | 381 ++ .../docs/da/enterprise/tasks/user-tasks.mdx | 167 + .../team-management/inviting-people.mdx | 60 + .../team-management/organization-members.mdx | 149 + .../team-management/project-members.mdx | 93 + .../da/enterprise/team-management/roles.mdx | 85 + .../da/enterprise/team-management/teams.mdx | 138 + .../translation-process/ai-fine-tuning.mdx | 226 + .../translation-process/crowdin-ai.mdx | 458 ++ .../offline-translation.mdx | 154 + .../translation-process/pre-translation.mdx | 167 + .../translation-strategies.mdx | 95 + src/content/docs/da/index.mdx | 115 + .../de/crowdin/billing/app-subscriptions.mdx | 65 + .../billing/changing-subscription-plan.mdx | 83 + .../de/crowdin/billing/crowdin-credits.mdx | 100 + .../de/crowdin/billing/payments-invoices.mdx | 79 + .../docs/de/crowdin/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 71 + .../getting-started/account/notifications.mdx | 310 ++ .../getting-started/account/settings.mdx | 520 ++ .../additional-support-services.mdx | 50 + .../crowdin/getting-started/for-managers.mdx | 184 + .../getting-started/for-translators.mdx | 203 + .../getting-started/migrating-to-crowdin.mdx | 74 + .../getting-started/supported-formats.mdx | 74 + .../docs/de/crowdin/integrations/adobe-xd.mdx | 258 + .../de/crowdin/integrations/azure-repos.mdx | 236 + .../de/crowdin/integrations/bitbucket.mdx | 230 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 166 + .../docs/de/crowdin/integrations/figma.mdx | 469 ++ .../docs/de/crowdin/integrations/github.mdx | 249 + .../docs/de/crowdin/integrations/gitlab.mdx | 241 + .../de/crowdin/integrations/google-play.mdx | 95 + .../docs/de/crowdin/integrations/jira.mdx | 117 + .../docs/de/crowdin/integrations/overview.mdx | 125 + .../docs/de/crowdin/integrations/sketch.mdx | 206 + src/content/docs/de/crowdin/introduction.mdx | 202 + .../localization-resources/glossary.mdx | 301 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 170 + .../translation-memory.mdx | 377 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 129 + .../docs/de/crowdin/online-editor/issues.mdx | 148 + .../de/crowdin/online-editor/overview.mdx | 959 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../de/crowdin/online-editor/word-counter.mdx | 13 + .../project-management/creating-project.mdx | 97 + .../project-management/discussions.mdx | 123 + .../project-management/project-activity.mdx | 48 + .../project-settings/ai.mdx | 60 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 49 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 94 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 119 + .../project-settings/labels.mdx | 40 + .../project-settings/languages.mdx | 95 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/pre-translate.mdx | 56 + .../privacy-collaboration.mdx | 59 + .../project-settings/qa-checks.mdx | 168 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 68 + .../project-management/screenshots.mdx | 218 + .../sources/asset-localization.mdx | 45 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 85 + .../sources/file-management.mdx | 205 + .../sources/string-management.mdx | 142 + .../sources/uploading-files.mdx | 123 + .../sources/version-management.mdx | 328 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 120 + .../translations/uploading-translations.mdx | 149 + .../crowdin/project-management/webhooks.mdx | 117 + .../crowdin/reports/contributor-reports.mdx | 473 ++ .../de/crowdin/reports/project-reports.mdx | 858 ++++ .../de/crowdin/tasks/blend-integration.mdx | 124 + .../tasks/crowdin-language-services.mdx | 182 + src/content/docs/de/crowdin/tasks/tasks.mdx | 375 ++ .../docs/de/crowdin/tasks/user-tasks.mdx | 175 + .../team-management/inviting-people.mdx | 85 + .../team-management/manager-permissions.mdx | 64 + .../team-management/project-members.mdx | 62 + .../docs/de/crowdin/team-management/roles.mdx | 61 + .../translation-process/ai-fine-tuning.mdx | 210 + .../translation-process/crowdin-ai.mdx | 424 ++ .../offline-translation.mdx | 147 + .../ordering-professional-translations.mdx | 119 + .../translation-process/pre-translation.mdx | 155 + .../translation-strategies.mdx | 80 + src/content/docs/de/developer/api/croql.mdx | 1620 ++++++ .../de/developer/api/crowdin-mcp-server.mdx | 448 ++ .../docs/de/developer/api/graphql-api.mdx | 567 ++ .../docs/de/developer/api/language-codes.mdx | 24 + .../docs/de/developer/api/overview.mdx | 48 + .../developer/capabilities/editor-themes.mdx | 193 + .../de/developer/capabilities/in-context.mdx | 324 ++ .../capabilities/pseudolocalization.mdx | 91 + .../de/developer/capabilities/webhooks.mdx | 426 ++ .../crowdin-apps/about-crowdin-apps.mdx | 113 + .../developer/crowdin-apps/app-descriptor.mdx | 442 ++ .../de/developer/crowdin-apps/apps-js.mdx | 4539 +++++++++++++++++ .../developer/crowdin-apps/installation.mdx | 194 + .../crowdin-apps/publishing/monetization.mdx | 93 + .../crowdin-apps/publishing/promoting.mdx | 31 + .../crowdin-apps/publishing/publishing.mdx | 280 + .../crowdin-apps/publishing/releasing.mdx | 57 + .../de/developer/crowdin-apps/quick-start.mdx | 1584 ++++++ .../de/developer/crowdin-apps/security.mdx | 124 + .../developer/crowdin-apps/user-interface.mdx | 22 + .../dev-tools/configuration-file.mdx | 856 ++++ .../docs/de/developer/dev-tools/overview.mdx | 68 + .../de/developer/guides/apps-localization.mdx | 70 + .../automated-screenshot-management.mdx | 126 + .../guides/shopify-apps-localization.mdx | 106 + .../modules/ai-modules/ai-prompt-provider.mdx | 761 +++ .../ai-modules/ai-request-processors.mdx | 145 + .../modules/ai-modules/custom-ai.mdx | 272 + .../developer/modules/ai-modules/overview.mdx | 105 + .../custom-bundle-generator.mdx | 325 ++ .../custom-file-format.mdx | 409 ++ .../file-post-export-processing.mdx | 219 + .../file-post-import-processing.mdx | 309 ++ .../file-pre-export-processing.mdx | 291 ++ .../file-pre-import-processing.mdx | 219 + .../file-processing-modules/overview.mdx | 126 + .../translation-alignment.mdx | 300 ++ .../docs/de/developer/modules/other/api.mdx | 98 + .../de/developer/modules/other/auth-guard.mdx | 610 +++ .../modules/other/custom-spellchecker.mdx | 251 + .../modules/other/external-qa-checks.mdx | 255 + .../de/developer/modules/other/webhook.mdx | 135 + .../modules/other/workflow-step-type.mdx | 543 ++ .../modules/ui-modules/context-menu.mdx | 252 + .../modules/ui-modules/custom-mt.mdx | 338 ++ .../modules/ui-modules/editor-asset-panel.mdx | 119 + .../modules/ui-modules/editor-right-panel.mdx | 115 + .../ui-modules/editor-translations-panel.mdx | 101 + .../modules/ui-modules/integrations.mdx | 106 + .../de/developer/modules/ui-modules/modal.mdx | 82 + .../organization-menu-crowdsource.mdx | 66 + .../modules/ui-modules/organization-menu.mdx | 80 + .../ui-modules/organization-settings-menu.mdx | 79 + .../developer/modules/ui-modules/overview.mdx | 196 + .../modules/ui-modules/profile-menu.mdx | 93 + .../ui-modules/profile-settings-menu.mdx | 68 + .../ui-modules/project-menu-crowdsource.mdx | 78 + .../modules/ui-modules/project-menu.mdx | 89 + .../developer/modules/ui-modules/reports.mdx | 101 + .../de/developer/modules/ui-modules/tools.mdx | 106 + .../security/authorizing-oauth-apps.mdx | 276 + .../de/developer/security/ip-addresses.mdx | 97 + .../security/understanding-scopes.mdx | 254 + .../docs/de/docs/company-description.mdx | 55 + src/content/docs/de/docs/cookies.mdx | 41 + src/content/docs/de/docs/data-residency.mdx | 80 + src/content/docs/de/docs/gdpr.mdx | 76 + src/content/docs/de/docs/hipaa-disclaimer.mdx | 30 + .../intellectual-rights-for-translations.mdx | 26 + src/content/docs/de/docs/privacy-policy.mdx | 261 + src/content/docs/de/docs/security-policy.mdx | 207 + src/content/docs/de/docs/sub-processors.mdx | 55 + src/content/docs/de/docs/terms.mdx | 573 +++ src/content/docs/de/docs/using-logo.mdx | 342 ++ .../docs/de/docs/vulnerability-policy.mdx | 10 + .../enterprise/billing/app-subscriptions.mdx | 60 + .../billing/changing-subscription-plan.mdx | 61 + .../de/enterprise/billing/crowdin-credits.mdx | 96 + .../enterprise/billing/payments-invoices.mdx | 70 + .../docs/de/enterprise/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 68 + .../getting-started/account/notifications.mdx | 306 ++ .../getting-started/account/settings.mdx | 263 + .../additional-support-services.mdx | 48 + ...mparing-crowdin-and-crowdin-enterprise.mdx | 134 + .../getting-started/for-managers.mdx | 383 ++ .../getting-started/for-translators.mdx | 233 + .../getting-started/for-vendors.mdx | 101 + .../getting-started/keyboard-shortcuts.mdx | 174 + .../migrating-to-crowdin-enterprise.mdx | 131 + .../getting-started/supported-formats.mdx | 74 + .../de/enterprise/integrations/adobe-xd.mdx | 259 + .../enterprise/integrations/azure-repos.mdx | 233 + .../de/enterprise/integrations/bitbucket.mdx | 227 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 165 + .../docs/de/enterprise/integrations/figma.mdx | 469 ++ .../de/enterprise/integrations/github.mdx | 246 + .../de/enterprise/integrations/gitlab.mdx | 238 + .../enterprise/integrations/google-play.mdx | 95 + .../docs/de/enterprise/integrations/jira.mdx | 121 + .../de/enterprise/integrations/overview.mdx | 126 + .../de/enterprise/integrations/sketch.mdx | 207 + .../docs/de/enterprise/introduction.mdx | 60 + .../localization-resources/glossary.mdx | 338 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 174 + .../translation-memory.mdx | 376 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 129 + .../de/enterprise/online-editor/issues.mdx | 148 + .../de/enterprise/online-editor/overview.mdx | 1030 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../enterprise/online-editor/word-counter.mdx | 13 + .../organization-management/clients.mdx | 104 + .../organization-management/crowdsourcing.mdx | 116 + .../organization-management/groups.mdx | 75 + .../organization-management/overview.mdx | 79 + .../settings/custom-placeholders.mdx | 145 + .../settings/custom-qa-checks.mdx | 232 + .../settings/fields.mdx | 135 + .../settings/general.mdx | 276 + .../organization-management/settings/oidc.mdx | 144 + .../settings/permissions-granularity-mode.mdx | 83 + .../organization-management/settings/saml.mdx | 443 ++ .../settings/security.mdx | 169 + .../settings/user-access-tokens.mdx | 51 + .../organization-management/vendors.mdx | 51 + .../workflows/app-based-workflow-step.mdx | 86 + .../workflows/custom-code.mdx | 137 + .../workflows/overview.mdx | 131 + .../workflows/source-text-review.mdx | 74 + .../workflows/translation-by-api-vendor.mdx | 63 + .../translation-proofreading-by-vendor.mdx | 76 + .../project-management/creating-project.mdx | 146 + .../project-management/project-activity.mdx | 47 + .../project-settings/ai.mdx | 62 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 76 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 54 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 136 + .../project-settings/labels.mdx | 39 + .../project-settings/languages.mdx | 57 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/privacy.mdx | 64 + .../project-settings/qa-checks.mdx | 185 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 64 + .../project-management/screenshots.mdx | 210 + .../sources/asset-localization.mdx | 44 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 86 + .../sources/file-management.mdx | 193 + .../sources/string-management.mdx | 145 + .../sources/uploading-files.mdx | 124 + .../sources/version-management.mdx | 331 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 112 + .../translations/uploading-translations.mdx | 149 + .../project-management/webhooks.mdx | 122 + .../reports/contributor-reports.mdx | 479 ++ .../reports/organization-reports.mdx | 699 +++ .../de/enterprise/reports/project-reports.mdx | 993 ++++ .../docs/de/enterprise/tasks/tasks.mdx | 381 ++ .../docs/de/enterprise/tasks/user-tasks.mdx | 167 + .../team-management/inviting-people.mdx | 60 + .../team-management/organization-members.mdx | 149 + .../team-management/project-members.mdx | 93 + .../de/enterprise/team-management/roles.mdx | 85 + .../de/enterprise/team-management/teams.mdx | 138 + .../translation-process/ai-fine-tuning.mdx | 226 + .../translation-process/crowdin-ai.mdx | 458 ++ .../offline-translation.mdx | 154 + .../translation-process/pre-translation.mdx | 167 + .../translation-strategies.mdx | 95 + src/content/docs/de/index.mdx | 72 +- .../es/crowdin/billing/app-subscriptions.mdx | 65 + .../billing/changing-subscription-plan.mdx | 83 + .../es/crowdin/billing/crowdin-credits.mdx | 100 + .../es/crowdin/billing/payments-invoices.mdx | 79 + .../docs/es/crowdin/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 71 + .../getting-started/account/notifications.mdx | 310 ++ .../getting-started/account/settings.mdx | 520 ++ .../additional-support-services.mdx | 50 + .../crowdin/getting-started/for-managers.mdx | 184 + .../getting-started/for-translators.mdx | 203 + .../getting-started/migrating-to-crowdin.mdx | 74 + .../getting-started/supported-formats.mdx | 74 + .../docs/es/crowdin/integrations/adobe-xd.mdx | 258 + .../es/crowdin/integrations/azure-repos.mdx | 236 + .../es/crowdin/integrations/bitbucket.mdx | 230 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 166 + .../docs/es/crowdin/integrations/figma.mdx | 469 ++ .../docs/es/crowdin/integrations/github.mdx | 249 + .../docs/es/crowdin/integrations/gitlab.mdx | 241 + .../es/crowdin/integrations/google-play.mdx | 95 + .../docs/es/crowdin/integrations/jira.mdx | 117 + .../docs/es/crowdin/integrations/overview.mdx | 125 + .../docs/es/crowdin/integrations/sketch.mdx | 206 + src/content/docs/es/crowdin/introduction.mdx | 202 + .../localization-resources/glossary.mdx | 301 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 170 + .../translation-memory.mdx | 377 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../docs/es/crowdin/online-editor/issues.mdx | 148 + .../es/crowdin/online-editor/overview.mdx | 959 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../es/crowdin/online-editor/word-counter.mdx | 13 + .../project-management/creating-project.mdx | 97 + .../project-management/discussions.mdx | 123 + .../project-management/project-activity.mdx | 48 + .../project-settings/ai.mdx | 60 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 49 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 94 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 119 + .../project-settings/labels.mdx | 40 + .../project-settings/languages.mdx | 95 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/pre-translate.mdx | 56 + .../privacy-collaboration.mdx | 59 + .../project-settings/qa-checks.mdx | 168 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 68 + .../project-management/screenshots.mdx | 218 + .../sources/asset-localization.mdx | 45 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 85 + .../sources/file-management.mdx | 205 + .../sources/string-management.mdx | 142 + .../sources/uploading-files.mdx | 123 + .../sources/version-management.mdx | 328 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 120 + .../translations/uploading-translations.mdx | 149 + .../crowdin/project-management/webhooks.mdx | 117 + .../crowdin/reports/contributor-reports.mdx | 473 ++ .../es/crowdin/reports/project-reports.mdx | 858 ++++ .../es/crowdin/tasks/blend-integration.mdx | 124 + .../tasks/crowdin-language-services.mdx | 182 + src/content/docs/es/crowdin/tasks/tasks.mdx | 375 ++ .../docs/es/crowdin/tasks/user-tasks.mdx | 175 + .../team-management/inviting-people.mdx | 85 + .../team-management/manager-permissions.mdx | 64 + .../team-management/project-members.mdx | 62 + .../docs/es/crowdin/team-management/roles.mdx | 61 + .../translation-process/ai-fine-tuning.mdx | 210 + .../translation-process/crowdin-ai.mdx | 424 ++ .../offline-translation.mdx | 147 + .../ordering-professional-translations.mdx | 119 + .../translation-process/pre-translation.mdx | 155 + .../translation-strategies.mdx | 80 + src/content/docs/es/developer/api/croql.mdx | 1620 ++++++ .../es/developer/api/crowdin-mcp-server.mdx | 448 ++ .../docs/es/developer/api/graphql-api.mdx | 567 ++ .../docs/es/developer/api/language-codes.mdx | 24 + .../docs/es/developer/api/overview.mdx | 48 + .../developer/capabilities/editor-themes.mdx | 193 + .../es/developer/capabilities/in-context.mdx | 324 ++ .../capabilities/pseudolocalization.mdx | 91 + .../es/developer/capabilities/webhooks.mdx | 426 ++ .../crowdin-apps/about-crowdin-apps.mdx | 113 + .../developer/crowdin-apps/app-descriptor.mdx | 442 ++ .../es/developer/crowdin-apps/apps-js.mdx | 4539 +++++++++++++++++ .../developer/crowdin-apps/installation.mdx | 194 + .../crowdin-apps/publishing/monetization.mdx | 93 + .../crowdin-apps/publishing/promoting.mdx | 31 + .../crowdin-apps/publishing/publishing.mdx | 280 + .../crowdin-apps/publishing/releasing.mdx | 57 + .../es/developer/crowdin-apps/quick-start.mdx | 1584 ++++++ .../es/developer/crowdin-apps/security.mdx | 124 + .../developer/crowdin-apps/user-interface.mdx | 22 + .../dev-tools/configuration-file.mdx | 856 ++++ .../docs/es/developer/dev-tools/overview.mdx | 68 + .../es/developer/guides/apps-localization.mdx | 70 + .../automated-screenshot-management.mdx | 126 + .../guides/shopify-apps-localization.mdx | 106 + .../modules/ai-modules/ai-prompt-provider.mdx | 761 +++ .../ai-modules/ai-request-processors.mdx | 145 + .../modules/ai-modules/custom-ai.mdx | 272 + .../developer/modules/ai-modules/overview.mdx | 105 + .../custom-bundle-generator.mdx | 325 ++ .../custom-file-format.mdx | 409 ++ .../file-post-export-processing.mdx | 219 + .../file-post-import-processing.mdx | 309 ++ .../file-pre-export-processing.mdx | 291 ++ .../file-pre-import-processing.mdx | 219 + .../file-processing-modules/overview.mdx | 126 + .../translation-alignment.mdx | 300 ++ .../docs/es/developer/modules/other/api.mdx | 98 + .../es/developer/modules/other/auth-guard.mdx | 610 +++ .../modules/other/custom-spellchecker.mdx | 251 + .../modules/other/external-qa-checks.mdx | 255 + .../es/developer/modules/other/webhook.mdx | 135 + .../modules/other/workflow-step-type.mdx | 543 ++ .../modules/ui-modules/context-menu.mdx | 252 + .../modules/ui-modules/custom-mt.mdx | 338 ++ .../modules/ui-modules/editor-asset-panel.mdx | 119 + .../modules/ui-modules/editor-right-panel.mdx | 115 + .../ui-modules/editor-translations-panel.mdx | 101 + .../modules/ui-modules/integrations.mdx | 106 + .../es/developer/modules/ui-modules/modal.mdx | 82 + .../organization-menu-crowdsource.mdx | 66 + .../modules/ui-modules/organization-menu.mdx | 80 + .../ui-modules/organization-settings-menu.mdx | 79 + .../developer/modules/ui-modules/overview.mdx | 196 + .../modules/ui-modules/profile-menu.mdx | 93 + .../ui-modules/profile-settings-menu.mdx | 68 + .../ui-modules/project-menu-crowdsource.mdx | 78 + .../modules/ui-modules/project-menu.mdx | 89 + .../developer/modules/ui-modules/reports.mdx | 101 + .../es/developer/modules/ui-modules/tools.mdx | 106 + .../security/authorizing-oauth-apps.mdx | 276 + .../es/developer/security/ip-addresses.mdx | 97 + .../security/understanding-scopes.mdx | 254 + .../docs/es/docs/company-description.mdx | 55 + src/content/docs/es/docs/cookies.mdx | 41 + src/content/docs/es/docs/data-residency.mdx | 80 + src/content/docs/es/docs/gdpr.mdx | 76 + src/content/docs/es/docs/hipaa-disclaimer.mdx | 30 + .../intellectual-rights-for-translations.mdx | 26 + src/content/docs/es/docs/privacy-policy.mdx | 261 + src/content/docs/es/docs/security-policy.mdx | 207 + src/content/docs/es/docs/sub-processors.mdx | 55 + src/content/docs/es/docs/terms.mdx | 573 +++ src/content/docs/es/docs/using-logo.mdx | 342 ++ .../docs/es/docs/vulnerability-policy.mdx | 10 + .../enterprise/billing/app-subscriptions.mdx | 60 + .../billing/changing-subscription-plan.mdx | 61 + .../es/enterprise/billing/crowdin-credits.mdx | 96 + .../enterprise/billing/payments-invoices.mdx | 70 + .../docs/es/enterprise/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 68 + .../getting-started/account/notifications.mdx | 306 ++ .../getting-started/account/settings.mdx | 263 + .../additional-support-services.mdx | 48 + ...mparing-crowdin-and-crowdin-enterprise.mdx | 134 + .../getting-started/for-managers.mdx | 383 ++ .../getting-started/for-translators.mdx | 233 + .../getting-started/for-vendors.mdx | 101 + .../getting-started/keyboard-shortcuts.mdx | 174 + .../migrating-to-crowdin-enterprise.mdx | 131 + .../getting-started/supported-formats.mdx | 74 + .../es/enterprise/integrations/adobe-xd.mdx | 259 + .../enterprise/integrations/azure-repos.mdx | 233 + .../es/enterprise/integrations/bitbucket.mdx | 227 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 165 + .../docs/es/enterprise/integrations/figma.mdx | 469 ++ .../es/enterprise/integrations/github.mdx | 246 + .../es/enterprise/integrations/gitlab.mdx | 238 + .../enterprise/integrations/google-play.mdx | 95 + .../docs/es/enterprise/integrations/jira.mdx | 121 + .../es/enterprise/integrations/overview.mdx | 126 + .../es/enterprise/integrations/sketch.mdx | 207 + .../docs/es/enterprise/introduction.mdx | 60 + .../localization-resources/glossary.mdx | 338 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 174 + .../translation-memory.mdx | 376 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../es/enterprise/online-editor/issues.mdx | 148 + .../es/enterprise/online-editor/overview.mdx | 1030 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../enterprise/online-editor/word-counter.mdx | 13 + .../organization-management/clients.mdx | 104 + .../organization-management/crowdsourcing.mdx | 116 + .../organization-management/groups.mdx | 75 + .../organization-management/overview.mdx | 79 + .../settings/custom-placeholders.mdx | 145 + .../settings/custom-qa-checks.mdx | 232 + .../settings/fields.mdx | 135 + .../settings/general.mdx | 276 + .../organization-management/settings/oidc.mdx | 144 + .../settings/permissions-granularity-mode.mdx | 83 + .../organization-management/settings/saml.mdx | 443 ++ .../settings/security.mdx | 169 + .../settings/user-access-tokens.mdx | 51 + .../organization-management/vendors.mdx | 51 + .../workflows/app-based-workflow-step.mdx | 86 + .../workflows/custom-code.mdx | 137 + .../workflows/overview.mdx | 131 + .../workflows/source-text-review.mdx | 74 + .../workflows/translation-by-api-vendor.mdx | 63 + .../translation-proofreading-by-vendor.mdx | 76 + .../project-management/creating-project.mdx | 146 + .../project-management/project-activity.mdx | 47 + .../project-settings/ai.mdx | 62 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 76 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 54 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 136 + .../project-settings/labels.mdx | 39 + .../project-settings/languages.mdx | 57 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/privacy.mdx | 64 + .../project-settings/qa-checks.mdx | 185 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 64 + .../project-management/screenshots.mdx | 210 + .../sources/asset-localization.mdx | 44 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 86 + .../sources/file-management.mdx | 193 + .../sources/string-management.mdx | 145 + .../sources/uploading-files.mdx | 124 + .../sources/version-management.mdx | 331 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 112 + .../translations/uploading-translations.mdx | 149 + .../project-management/webhooks.mdx | 122 + .../reports/contributor-reports.mdx | 479 ++ .../reports/organization-reports.mdx | 699 +++ .../es/enterprise/reports/project-reports.mdx | 993 ++++ .../docs/es/enterprise/tasks/tasks.mdx | 381 ++ .../docs/es/enterprise/tasks/user-tasks.mdx | 167 + .../team-management/inviting-people.mdx | 60 + .../team-management/organization-members.mdx | 149 + .../team-management/project-members.mdx | 93 + .../es/enterprise/team-management/roles.mdx | 85 + .../es/enterprise/team-management/teams.mdx | 138 + .../translation-process/ai-fine-tuning.mdx | 226 + .../translation-process/crowdin-ai.mdx | 458 ++ .../offline-translation.mdx | 154 + .../translation-process/pre-translation.mdx | 167 + .../translation-strategies.mdx | 95 + src/content/docs/es/index.mdx | 115 + .../fr/crowdin/billing/app-subscriptions.mdx | 65 + .../billing/changing-subscription-plan.mdx | 83 + .../fr/crowdin/billing/crowdin-credits.mdx | 100 + .../fr/crowdin/billing/payments-invoices.mdx | 79 + .../docs/fr/crowdin/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 71 + .../getting-started/account/notifications.mdx | 310 ++ .../getting-started/account/settings.mdx | 520 ++ .../additional-support-services.mdx | 50 + .../crowdin/getting-started/for-managers.mdx | 184 + .../getting-started/for-translators.mdx | 203 + .../getting-started/migrating-to-crowdin.mdx | 74 + .../getting-started/supported-formats.mdx | 74 + .../docs/fr/crowdin/integrations/adobe-xd.mdx | 258 + .../fr/crowdin/integrations/azure-repos.mdx | 236 + .../fr/crowdin/integrations/bitbucket.mdx | 230 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 166 + .../docs/fr/crowdin/integrations/figma.mdx | 469 ++ .../docs/fr/crowdin/integrations/github.mdx | 249 + .../docs/fr/crowdin/integrations/gitlab.mdx | 241 + .../fr/crowdin/integrations/google-play.mdx | 95 + .../docs/fr/crowdin/integrations/jira.mdx | 117 + .../docs/fr/crowdin/integrations/overview.mdx | 125 + .../docs/fr/crowdin/integrations/sketch.mdx | 206 + src/content/docs/fr/crowdin/introduction.mdx | 202 + .../localization-resources/glossary.mdx | 301 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 170 + .../translation-memory.mdx | 377 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../docs/fr/crowdin/online-editor/issues.mdx | 148 + .../fr/crowdin/online-editor/overview.mdx | 959 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../fr/crowdin/online-editor/word-counter.mdx | 13 + .../project-management/creating-project.mdx | 97 + .../project-management/discussions.mdx | 123 + .../project-management/project-activity.mdx | 48 + .../project-settings/ai.mdx | 60 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 49 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 94 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 119 + .../project-settings/labels.mdx | 40 + .../project-settings/languages.mdx | 95 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/pre-translate.mdx | 56 + .../privacy-collaboration.mdx | 59 + .../project-settings/qa-checks.mdx | 168 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 68 + .../project-management/screenshots.mdx | 218 + .../sources/asset-localization.mdx | 45 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 85 + .../sources/file-management.mdx | 205 + .../sources/string-management.mdx | 142 + .../sources/uploading-files.mdx | 123 + .../sources/version-management.mdx | 328 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 120 + .../translations/uploading-translations.mdx | 149 + .../crowdin/project-management/webhooks.mdx | 117 + .../crowdin/reports/contributor-reports.mdx | 473 ++ .../fr/crowdin/reports/project-reports.mdx | 858 ++++ .../fr/crowdin/tasks/blend-integration.mdx | 124 + .../tasks/crowdin-language-services.mdx | 182 + src/content/docs/fr/crowdin/tasks/tasks.mdx | 375 ++ .../docs/fr/crowdin/tasks/user-tasks.mdx | 175 + .../team-management/inviting-people.mdx | 85 + .../team-management/manager-permissions.mdx | 64 + .../team-management/project-members.mdx | 62 + .../docs/fr/crowdin/team-management/roles.mdx | 61 + .../translation-process/ai-fine-tuning.mdx | 210 + .../translation-process/crowdin-ai.mdx | 424 ++ .../offline-translation.mdx | 147 + .../ordering-professional-translations.mdx | 119 + .../translation-process/pre-translation.mdx | 155 + .../translation-strategies.mdx | 80 + src/content/docs/fr/developer/api/croql.mdx | 1620 ++++++ .../fr/developer/api/crowdin-mcp-server.mdx | 448 ++ .../docs/fr/developer/api/graphql-api.mdx | 567 ++ .../docs/fr/developer/api/language-codes.mdx | 24 + .../docs/fr/developer/api/overview.mdx | 48 + .../developer/capabilities/editor-themes.mdx | 193 + .../fr/developer/capabilities/in-context.mdx | 324 ++ .../capabilities/pseudolocalization.mdx | 91 + .../fr/developer/capabilities/webhooks.mdx | 426 ++ .../crowdin-apps/about-crowdin-apps.mdx | 113 + .../developer/crowdin-apps/app-descriptor.mdx | 442 ++ .../fr/developer/crowdin-apps/apps-js.mdx | 4539 +++++++++++++++++ .../developer/crowdin-apps/installation.mdx | 194 + .../crowdin-apps/publishing/monetization.mdx | 93 + .../crowdin-apps/publishing/promoting.mdx | 31 + .../crowdin-apps/publishing/publishing.mdx | 280 + .../crowdin-apps/publishing/releasing.mdx | 57 + .../fr/developer/crowdin-apps/quick-start.mdx | 1584 ++++++ .../fr/developer/crowdin-apps/security.mdx | 124 + .../developer/crowdin-apps/user-interface.mdx | 22 + .../dev-tools/configuration-file.mdx | 856 ++++ .../docs/fr/developer/dev-tools/overview.mdx | 68 + .../fr/developer/guides/apps-localization.mdx | 70 + .../automated-screenshot-management.mdx | 126 + .../guides/shopify-apps-localization.mdx | 106 + .../modules/ai-modules/ai-prompt-provider.mdx | 761 +++ .../ai-modules/ai-request-processors.mdx | 145 + .../modules/ai-modules/custom-ai.mdx | 272 + .../developer/modules/ai-modules/overview.mdx | 105 + .../custom-bundle-generator.mdx | 325 ++ .../custom-file-format.mdx | 409 ++ .../file-post-export-processing.mdx | 219 + .../file-post-import-processing.mdx | 309 ++ .../file-pre-export-processing.mdx | 291 ++ .../file-pre-import-processing.mdx | 219 + .../file-processing-modules/overview.mdx | 126 + .../translation-alignment.mdx | 300 ++ .../docs/fr/developer/modules/other/api.mdx | 98 + .../fr/developer/modules/other/auth-guard.mdx | 610 +++ .../modules/other/custom-spellchecker.mdx | 251 + .../modules/other/external-qa-checks.mdx | 255 + .../fr/developer/modules/other/webhook.mdx | 135 + .../modules/other/workflow-step-type.mdx | 543 ++ .../modules/ui-modules/context-menu.mdx | 252 + .../modules/ui-modules/custom-mt.mdx | 338 ++ .../modules/ui-modules/editor-asset-panel.mdx | 119 + .../modules/ui-modules/editor-right-panel.mdx | 115 + .../ui-modules/editor-translations-panel.mdx | 101 + .../modules/ui-modules/integrations.mdx | 106 + .../fr/developer/modules/ui-modules/modal.mdx | 82 + .../organization-menu-crowdsource.mdx | 66 + .../modules/ui-modules/organization-menu.mdx | 80 + .../ui-modules/organization-settings-menu.mdx | 79 + .../developer/modules/ui-modules/overview.mdx | 196 + .../modules/ui-modules/profile-menu.mdx | 93 + .../ui-modules/profile-settings-menu.mdx | 68 + .../ui-modules/project-menu-crowdsource.mdx | 78 + .../modules/ui-modules/project-menu.mdx | 89 + .../developer/modules/ui-modules/reports.mdx | 101 + .../fr/developer/modules/ui-modules/tools.mdx | 106 + .../security/authorizing-oauth-apps.mdx | 276 + .../fr/developer/security/ip-addresses.mdx | 97 + .../security/understanding-scopes.mdx | 254 + .../docs/fr/docs/company-description.mdx | 55 + src/content/docs/fr/docs/cookies.mdx | 41 + src/content/docs/fr/docs/data-residency.mdx | 80 + src/content/docs/fr/docs/gdpr.mdx | 76 + src/content/docs/fr/docs/hipaa-disclaimer.mdx | 30 + .../intellectual-rights-for-translations.mdx | 26 + src/content/docs/fr/docs/privacy-policy.mdx | 261 + src/content/docs/fr/docs/security-policy.mdx | 207 + src/content/docs/fr/docs/sub-processors.mdx | 55 + src/content/docs/fr/docs/terms.mdx | 573 +++ src/content/docs/fr/docs/using-logo.mdx | 342 ++ .../docs/fr/docs/vulnerability-policy.mdx | 10 + .../enterprise/billing/app-subscriptions.mdx | 60 + .../billing/changing-subscription-plan.mdx | 61 + .../fr/enterprise/billing/crowdin-credits.mdx | 96 + .../enterprise/billing/payments-invoices.mdx | 70 + .../docs/fr/enterprise/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 68 + .../getting-started/account/notifications.mdx | 306 ++ .../getting-started/account/settings.mdx | 263 + .../additional-support-services.mdx | 48 + ...mparing-crowdin-and-crowdin-enterprise.mdx | 134 + .../getting-started/for-managers.mdx | 383 ++ .../getting-started/for-translators.mdx | 233 + .../getting-started/for-vendors.mdx | 101 + .../getting-started/keyboard-shortcuts.mdx | 174 + .../migrating-to-crowdin-enterprise.mdx | 131 + .../getting-started/supported-formats.mdx | 74 + .../fr/enterprise/integrations/adobe-xd.mdx | 259 + .../enterprise/integrations/azure-repos.mdx | 233 + .../fr/enterprise/integrations/bitbucket.mdx | 227 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 165 + .../docs/fr/enterprise/integrations/figma.mdx | 469 ++ .../fr/enterprise/integrations/github.mdx | 246 + .../fr/enterprise/integrations/gitlab.mdx | 238 + .../enterprise/integrations/google-play.mdx | 95 + .../docs/fr/enterprise/integrations/jira.mdx | 121 + .../fr/enterprise/integrations/overview.mdx | 126 + .../fr/enterprise/integrations/sketch.mdx | 207 + .../docs/fr/enterprise/introduction.mdx | 60 + .../localization-resources/glossary.mdx | 338 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 174 + .../translation-memory.mdx | 376 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 130 + .../fr/enterprise/online-editor/issues.mdx | 148 + .../fr/enterprise/online-editor/overview.mdx | 1030 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../enterprise/online-editor/word-counter.mdx | 13 + .../organization-management/clients.mdx | 104 + .../organization-management/crowdsourcing.mdx | 116 + .../organization-management/groups.mdx | 75 + .../organization-management/overview.mdx | 79 + .../settings/custom-placeholders.mdx | 145 + .../settings/custom-qa-checks.mdx | 232 + .../settings/fields.mdx | 135 + .../settings/general.mdx | 276 + .../organization-management/settings/oidc.mdx | 144 + .../settings/permissions-granularity-mode.mdx | 83 + .../organization-management/settings/saml.mdx | 443 ++ .../settings/security.mdx | 169 + .../settings/user-access-tokens.mdx | 51 + .../organization-management/vendors.mdx | 51 + .../workflows/app-based-workflow-step.mdx | 86 + .../workflows/custom-code.mdx | 137 + .../workflows/overview.mdx | 131 + .../workflows/source-text-review.mdx | 74 + .../workflows/translation-by-api-vendor.mdx | 63 + .../translation-proofreading-by-vendor.mdx | 76 + .../project-management/creating-project.mdx | 146 + .../project-management/project-activity.mdx | 47 + .../project-settings/ai.mdx | 62 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 76 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 54 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 136 + .../project-settings/labels.mdx | 39 + .../project-settings/languages.mdx | 57 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/privacy.mdx | 64 + .../project-settings/qa-checks.mdx | 185 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 64 + .../project-management/screenshots.mdx | 210 + .../sources/asset-localization.mdx | 44 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 86 + .../sources/file-management.mdx | 193 + .../sources/string-management.mdx | 145 + .../sources/uploading-files.mdx | 124 + .../sources/version-management.mdx | 331 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 112 + .../translations/uploading-translations.mdx | 149 + .../project-management/webhooks.mdx | 122 + .../reports/contributor-reports.mdx | 479 ++ .../reports/organization-reports.mdx | 699 +++ .../fr/enterprise/reports/project-reports.mdx | 993 ++++ .../docs/fr/enterprise/tasks/tasks.mdx | 381 ++ .../docs/fr/enterprise/tasks/user-tasks.mdx | 167 + .../team-management/inviting-people.mdx | 60 + .../team-management/organization-members.mdx | 149 + .../team-management/project-members.mdx | 93 + .../fr/enterprise/team-management/roles.mdx | 85 + .../fr/enterprise/team-management/teams.mdx | 138 + .../translation-process/ai-fine-tuning.mdx | 226 + .../translation-process/crowdin-ai.mdx | 458 ++ .../offline-translation.mdx | 154 + .../translation-process/pre-translation.mdx | 167 + .../translation-strategies.mdx | 95 + src/content/docs/fr/index.mdx | 115 + .../pt/crowdin/billing/app-subscriptions.mdx | 65 + .../billing/changing-subscription-plan.mdx | 83 + .../pt/crowdin/billing/crowdin-credits.mdx | 100 + .../pt/crowdin/billing/payments-invoices.mdx | 79 + .../docs/pt/crowdin/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 71 + .../getting-started/account/notifications.mdx | 311 ++ .../getting-started/account/settings.mdx | 520 ++ .../additional-support-services.mdx | 50 + .../crowdin/getting-started/for-managers.mdx | 184 + .../getting-started/for-translators.mdx | 203 + .../getting-started/migrating-to-crowdin.mdx | 74 + .../getting-started/supported-formats.mdx | 74 + .../docs/pt/crowdin/integrations/adobe-xd.mdx | 258 + .../pt/crowdin/integrations/azure-repos.mdx | 236 + .../pt/crowdin/integrations/bitbucket.mdx | 230 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 166 + .../docs/pt/crowdin/integrations/figma.mdx | 469 ++ .../docs/pt/crowdin/integrations/github.mdx | 249 + .../docs/pt/crowdin/integrations/gitlab.mdx | 241 + .../pt/crowdin/integrations/google-play.mdx | 95 + .../docs/pt/crowdin/integrations/jira.mdx | 117 + .../docs/pt/crowdin/integrations/overview.mdx | 125 + .../docs/pt/crowdin/integrations/sketch.mdx | 206 + src/content/docs/pt/crowdin/introduction.mdx | 202 + .../localization-resources/glossary.mdx | 301 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 170 + .../translation-memory.mdx | 377 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 129 + .../docs/pt/crowdin/online-editor/issues.mdx | 148 + .../pt/crowdin/online-editor/overview.mdx | 959 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../pt/crowdin/online-editor/word-counter.mdx | 13 + .../project-management/creating-project.mdx | 97 + .../project-management/discussions.mdx | 123 + .../project-management/project-activity.mdx | 48 + .../project-settings/ai.mdx | 60 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 49 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 94 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 119 + .../project-settings/labels.mdx | 40 + .../project-settings/languages.mdx | 95 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/pre-translate.mdx | 56 + .../privacy-collaboration.mdx | 59 + .../project-settings/qa-checks.mdx | 168 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 68 + .../project-management/screenshots.mdx | 218 + .../sources/asset-localization.mdx | 45 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 85 + .../sources/file-management.mdx | 205 + .../sources/string-management.mdx | 142 + .../sources/uploading-files.mdx | 123 + .../sources/version-management.mdx | 328 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 120 + .../translations/uploading-translations.mdx | 149 + .../crowdin/project-management/webhooks.mdx | 117 + .../crowdin/reports/contributor-reports.mdx | 473 ++ .../pt/crowdin/reports/project-reports.mdx | 858 ++++ .../pt/crowdin/tasks/blend-integration.mdx | 124 + .../tasks/crowdin-language-services.mdx | 182 + src/content/docs/pt/crowdin/tasks/tasks.mdx | 375 ++ .../docs/pt/crowdin/tasks/user-tasks.mdx | 175 + .../team-management/inviting-people.mdx | 85 + .../team-management/manager-permissions.mdx | 64 + .../team-management/project-members.mdx | 62 + .../docs/pt/crowdin/team-management/roles.mdx | 61 + .../translation-process/ai-fine-tuning.mdx | 210 + .../translation-process/crowdin-ai.mdx | 424 ++ .../offline-translation.mdx | 147 + .../ordering-professional-translations.mdx | 119 + .../translation-process/pre-translation.mdx | 155 + .../translation-strategies.mdx | 80 + src/content/docs/pt/developer/api/croql.mdx | 1620 ++++++ .../pt/developer/api/crowdin-mcp-server.mdx | 448 ++ .../docs/pt/developer/api/graphql-api.mdx | 567 ++ .../docs/pt/developer/api/language-codes.mdx | 24 + .../docs/pt/developer/api/overview.mdx | 48 + .../developer/capabilities/editor-themes.mdx | 193 + .../pt/developer/capabilities/in-context.mdx | 324 ++ .../capabilities/pseudolocalization.mdx | 91 + .../pt/developer/capabilities/webhooks.mdx | 426 ++ .../crowdin-apps/about-crowdin-apps.mdx | 113 + .../developer/crowdin-apps/app-descriptor.mdx | 442 ++ .../pt/developer/crowdin-apps/apps-js.mdx | 4539 +++++++++++++++++ .../developer/crowdin-apps/installation.mdx | 194 + .../crowdin-apps/publishing/monetization.mdx | 93 + .../crowdin-apps/publishing/promoting.mdx | 31 + .../crowdin-apps/publishing/publishing.mdx | 280 + .../crowdin-apps/publishing/releasing.mdx | 57 + .../pt/developer/crowdin-apps/quick-start.mdx | 1584 ++++++ .../pt/developer/crowdin-apps/security.mdx | 124 + .../developer/crowdin-apps/user-interface.mdx | 22 + .../dev-tools/configuration-file.mdx | 856 ++++ .../docs/pt/developer/dev-tools/overview.mdx | 68 + .../pt/developer/guides/apps-localization.mdx | 70 + .../automated-screenshot-management.mdx | 126 + .../guides/shopify-apps-localization.mdx | 106 + .../modules/ai-modules/ai-prompt-provider.mdx | 761 +++ .../ai-modules/ai-request-processors.mdx | 145 + .../modules/ai-modules/custom-ai.mdx | 272 + .../developer/modules/ai-modules/overview.mdx | 105 + .../custom-bundle-generator.mdx | 325 ++ .../custom-file-format.mdx | 409 ++ .../file-post-export-processing.mdx | 219 + .../file-post-import-processing.mdx | 309 ++ .../file-pre-export-processing.mdx | 291 ++ .../file-pre-import-processing.mdx | 219 + .../file-processing-modules/overview.mdx | 126 + .../translation-alignment.mdx | 300 ++ .../docs/pt/developer/modules/other/api.mdx | 98 + .../pt/developer/modules/other/auth-guard.mdx | 610 +++ .../modules/other/custom-spellchecker.mdx | 251 + .../modules/other/external-qa-checks.mdx | 255 + .../pt/developer/modules/other/webhook.mdx | 135 + .../modules/other/workflow-step-type.mdx | 543 ++ .../modules/ui-modules/context-menu.mdx | 252 + .../modules/ui-modules/custom-mt.mdx | 338 ++ .../modules/ui-modules/editor-asset-panel.mdx | 119 + .../modules/ui-modules/editor-right-panel.mdx | 115 + .../ui-modules/editor-translations-panel.mdx | 101 + .../modules/ui-modules/integrations.mdx | 106 + .../pt/developer/modules/ui-modules/modal.mdx | 82 + .../organization-menu-crowdsource.mdx | 66 + .../modules/ui-modules/organization-menu.mdx | 80 + .../ui-modules/organization-settings-menu.mdx | 79 + .../developer/modules/ui-modules/overview.mdx | 196 + .../modules/ui-modules/profile-menu.mdx | 93 + .../ui-modules/profile-settings-menu.mdx | 68 + .../ui-modules/project-menu-crowdsource.mdx | 78 + .../modules/ui-modules/project-menu.mdx | 89 + .../developer/modules/ui-modules/reports.mdx | 101 + .../pt/developer/modules/ui-modules/tools.mdx | 106 + .../security/authorizing-oauth-apps.mdx | 276 + .../pt/developer/security/ip-addresses.mdx | 97 + .../security/understanding-scopes.mdx | 254 + .../docs/pt/docs/company-description.mdx | 55 + src/content/docs/pt/docs/cookies.mdx | 41 + src/content/docs/pt/docs/data-residency.mdx | 80 + src/content/docs/pt/docs/gdpr.mdx | 76 + src/content/docs/pt/docs/hipaa-disclaimer.mdx | 30 + .../intellectual-rights-for-translations.mdx | 26 + src/content/docs/pt/docs/privacy-policy.mdx | 261 + src/content/docs/pt/docs/security-policy.mdx | 207 + src/content/docs/pt/docs/sub-processors.mdx | 55 + src/content/docs/pt/docs/terms.mdx | 573 +++ src/content/docs/pt/docs/using-logo.mdx | 342 ++ .../docs/pt/docs/vulnerability-policy.mdx | 10 + .../enterprise/billing/app-subscriptions.mdx | 60 + .../billing/changing-subscription-plan.mdx | 61 + .../pt/enterprise/billing/crowdin-credits.mdx | 96 + .../enterprise/billing/payments-invoices.mdx | 70 + .../docs/pt/enterprise/billing/settings.mdx | 56 + .../getting-started/account/messages.mdx | 68 + .../getting-started/account/notifications.mdx | 307 ++ .../getting-started/account/settings.mdx | 263 + .../additional-support-services.mdx | 48 + ...mparing-crowdin-and-crowdin-enterprise.mdx | 134 + .../getting-started/for-managers.mdx | 383 ++ .../getting-started/for-translators.mdx | 233 + .../getting-started/for-vendors.mdx | 101 + .../getting-started/keyboard-shortcuts.mdx | 174 + .../migrating-to-crowdin-enterprise.mdx | 131 + .../getting-started/supported-formats.mdx | 74 + .../pt/enterprise/integrations/adobe-xd.mdx | 259 + .../enterprise/integrations/azure-repos.mdx | 233 + .../pt/enterprise/integrations/bitbucket.mdx | 227 + .../integrations/cdn-distributions.mdx | 191 + .../integrations/configuring-vcs-online.mdx | 165 + .../docs/pt/enterprise/integrations/figma.mdx | 469 ++ .../pt/enterprise/integrations/github.mdx | 246 + .../pt/enterprise/integrations/gitlab.mdx | 238 + .../enterprise/integrations/google-play.mdx | 95 + .../docs/pt/enterprise/integrations/jira.mdx | 121 + .../pt/enterprise/integrations/overview.mdx | 126 + .../pt/enterprise/integrations/sketch.mdx | 207 + .../docs/pt/enterprise/introduction.mdx | 60 + .../localization-resources/glossary.mdx | 338 ++ .../machine-translation.mdx | 226 + .../localization-resources/style-guide.mdx | 174 + .../translation-memory.mdx | 376 ++ .../expression-syntax-elements.mdx | 265 + .../online-editor/icu-message-syntax.mdx | 129 + .../pt/enterprise/online-editor/issues.mdx | 148 + .../pt/enterprise/online-editor/overview.mdx | 1030 ++++ .../online-editor/screens-translation.mdx | 67 + .../online-editor/translation-consistency.mdx | 54 + .../enterprise/online-editor/word-counter.mdx | 13 + .../organization-management/clients.mdx | 104 + .../organization-management/crowdsourcing.mdx | 116 + .../organization-management/groups.mdx | 75 + .../organization-management/overview.mdx | 79 + .../settings/custom-placeholders.mdx | 145 + .../settings/custom-qa-checks.mdx | 232 + .../settings/fields.mdx | 135 + .../settings/general.mdx | 276 + .../organization-management/settings/oidc.mdx | 144 + .../settings/permissions-granularity-mode.mdx | 83 + .../organization-management/settings/saml.mdx | 443 ++ .../settings/security.mdx | 169 + .../settings/user-access-tokens.mdx | 51 + .../organization-management/vendors.mdx | 51 + .../workflows/app-based-workflow-step.mdx | 86 + .../workflows/custom-code.mdx | 137 + .../workflows/overview.mdx | 131 + .../workflows/source-text-review.mdx | 74 + .../workflows/translation-by-api-vendor.mdx | 63 + .../translation-proofreading-by-vendor.mdx | 76 + .../project-management/creating-project.mdx | 146 + .../project-management/project-activity.mdx | 47 + .../project-settings/ai.mdx | 62 + .../project-settings/customize-tabs.mdx | 50 + .../project-settings/export.mdx | 76 + .../project-settings/file-processors.mdx | 62 + .../project-settings/general.mdx | 54 + .../project-settings/glossaries.mdx | 34 + .../project-settings/import.mdx | 136 + .../project-settings/labels.mdx | 39 + .../project-settings/languages.mdx | 57 + .../project-settings/machine-translation.mdx | 27 + .../project-settings/parser-configuration.mdx | 79 + .../project-settings/privacy.mdx | 64 + .../project-settings/qa-checks.mdx | 185 + .../project-settings/style-guides.mdx | 30 + .../project-settings/translation-memories.mdx | 64 + .../project-management/screenshots.mdx | 210 + .../sources/asset-localization.mdx | 44 + .../sources/csv-xlsx-configuration.mdx | 154 + .../sources/custom-segmentation.mdx | 86 + .../sources/file-management.mdx | 193 + .../sources/string-management.mdx | 145 + .../sources/uploading-files.mdx | 124 + .../sources/version-management.mdx | 331 ++ .../sources/xml-configuration.mdx | 81 + .../translations/bundles.mdx | 271 + .../translations/downloading-translations.mdx | 112 + .../translations/uploading-translations.mdx | 149 + .../project-management/webhooks.mdx | 122 + .../reports/contributor-reports.mdx | 479 ++ .../reports/organization-reports.mdx | 699 +++ .../pt/enterprise/reports/project-reports.mdx | 993 ++++ .../docs/pt/enterprise/tasks/tasks.mdx | 381 ++ .../docs/pt/enterprise/tasks/user-tasks.mdx | 167 + .../team-management/inviting-people.mdx | 60 + .../team-management/organization-members.mdx | 149 + .../team-management/project-members.mdx | 93 + .../pt/enterprise/team-management/roles.mdx | 85 + .../pt/enterprise/team-management/teams.mdx | 138 + .../translation-process/ai-fine-tuning.mdx | 226 + .../translation-process/crowdin-ai.mdx | 458 ++ .../offline-translation.mdx | 154 + .../translation-process/pre-translation.mdx | 167 + .../translation-strategies.mdx | 95 + src/content/docs/pt/index.mdx | 115 + src/content/i18n/da.json | 48 +- src/content/i18n/de.json | 98 +- src/content/i18n/es.json | 50 +- src/content/i18n/fr.json | 46 +- src/content/i18n/pt.json | 50 +- .../contribution-raw-data-report-columns.mdx | 179 + .../includes/da/editable-formats-list.mdx | 19 + .../da/expression-syntax-elements.mdx | 21 + .../da/notification-types-crowdin.mdx | 13 + .../da/notification-types-enterprise.mdx | 13 + .../da/parser-configuration-parameters.mdx | 123 + src/content/includes/da/placeholders.mdx | 14 + src/content/includes/da/sb-file-formats.mdx | 17 + .../da/skip-untranslated-strings-formats.mdx | 16 + .../da/spellcheck-supported-languages.mdx | 1 + src/content/includes/da/srx-file-example.mdx | 40 + .../da/tm-non-translatable-elements.mdx | 78 + .../da/translatable-html-attributes.mdx | 13 + src/content/includes/da/word-counter.mdx | 29 + .../contribution-raw-data-report-columns.mdx | 179 + .../includes/de/editable-formats-list.mdx | 19 + .../de/expression-syntax-elements.mdx | 21 + .../de/notification-types-crowdin.mdx | 13 + .../de/notification-types-enterprise.mdx | 13 + .../de/parser-configuration-parameters.mdx | 123 + src/content/includes/de/placeholders.mdx | 14 + src/content/includes/de/sb-file-formats.mdx | 17 + .../de/skip-untranslated-strings-formats.mdx | 16 + .../de/spellcheck-supported-languages.mdx | 1 + src/content/includes/de/srx-file-example.mdx | 40 + .../de/tm-non-translatable-elements.mdx | 78 + .../de/translatable-html-attributes.mdx | 13 + src/content/includes/de/word-counter.mdx | 29 + .../contribution-raw-data-report-columns.mdx | 179 + .../includes/es/editable-formats-list.mdx | 19 + .../es/expression-syntax-elements.mdx | 21 + .../es/notification-types-crowdin.mdx | 13 + .../es/notification-types-enterprise.mdx | 13 + .../es/parser-configuration-parameters.mdx | 123 + src/content/includes/es/placeholders.mdx | 14 + src/content/includes/es/sb-file-formats.mdx | 17 + .../es/skip-untranslated-strings-formats.mdx | 16 + .../es/spellcheck-supported-languages.mdx | 1 + src/content/includes/es/srx-file-example.mdx | 40 + .../es/tm-non-translatable-elements.mdx | 78 + .../es/translatable-html-attributes.mdx | 13 + src/content/includes/es/word-counter.mdx | 29 + .../contribution-raw-data-report-columns.mdx | 179 + .../includes/fr/editable-formats-list.mdx | 19 + .../fr/expression-syntax-elements.mdx | 21 + .../fr/notification-types-crowdin.mdx | 13 + .../fr/notification-types-enterprise.mdx | 13 + .../fr/parser-configuration-parameters.mdx | 123 + src/content/includes/fr/placeholders.mdx | 14 + src/content/includes/fr/sb-file-formats.mdx | 17 + .../fr/skip-untranslated-strings-formats.mdx | 16 + .../fr/spellcheck-supported-languages.mdx | 1 + src/content/includes/fr/srx-file-example.mdx | 40 + .../fr/tm-non-translatable-elements.mdx | 78 + .../fr/translatable-html-attributes.mdx | 13 + src/content/includes/fr/word-counter.mdx | 29 + .../contribution-raw-data-report-columns.mdx | 179 + .../includes/pt/editable-formats-list.mdx | 19 + .../pt/expression-syntax-elements.mdx | 21 + .../pt/notification-types-crowdin.mdx | 13 + .../pt/notification-types-enterprise.mdx | 13 + .../pt/parser-configuration-parameters.mdx | 123 + src/content/includes/pt/placeholders.mdx | 14 + src/content/includes/pt/sb-file-formats.mdx | 17 + .../pt/skip-untranslated-strings-formats.mdx | 16 + .../pt/spellcheck-supported-languages.mdx | 1 + src/content/includes/pt/srx-file-example.mdx | 40 + .../pt/tm-non-translatable-elements.mdx | 78 + .../pt/translatable-html-attributes.mdx | 13 + src/content/includes/pt/word-counter.mdx | 29 + 1405 files changed, 276466 insertions(+), 182 deletions(-) create mode 100644 src/content/docs/da/crowdin/billing/app-subscriptions.mdx create mode 100644 src/content/docs/da/crowdin/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/da/crowdin/billing/crowdin-credits.mdx create mode 100644 src/content/docs/da/crowdin/billing/payments-invoices.mdx create mode 100644 src/content/docs/da/crowdin/billing/settings.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/account/messages.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/account/notifications.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/account/settings.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/for-managers.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/for-translators.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/migrating-to-crowdin.mdx create mode 100644 src/content/docs/da/crowdin/getting-started/supported-formats.mdx create mode 100644 src/content/docs/da/crowdin/integrations/adobe-xd.mdx create mode 100644 src/content/docs/da/crowdin/integrations/azure-repos.mdx create mode 100644 src/content/docs/da/crowdin/integrations/bitbucket.mdx create mode 100644 src/content/docs/da/crowdin/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/da/crowdin/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/da/crowdin/integrations/figma.mdx create mode 100644 src/content/docs/da/crowdin/integrations/github.mdx create mode 100644 src/content/docs/da/crowdin/integrations/gitlab.mdx create mode 100644 src/content/docs/da/crowdin/integrations/google-play.mdx create mode 100644 src/content/docs/da/crowdin/integrations/jira.mdx create mode 100644 src/content/docs/da/crowdin/integrations/overview.mdx create mode 100644 src/content/docs/da/crowdin/integrations/sketch.mdx create mode 100644 src/content/docs/da/crowdin/introduction.mdx create mode 100644 src/content/docs/da/crowdin/localization-resources/glossary.mdx create mode 100644 src/content/docs/da/crowdin/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/da/crowdin/localization-resources/style-guide.mdx create mode 100644 src/content/docs/da/crowdin/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/issues.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/overview.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/screens-translation.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/da/crowdin/online-editor/word-counter.mdx create mode 100644 src/content/docs/da/crowdin/project-management/creating-project.mdx create mode 100644 src/content/docs/da/crowdin/project-management/discussions.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-activity.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/export.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/general.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/import.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/pre-translate.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/privacy-collaboration.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/da/crowdin/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/da/crowdin/project-management/screenshots.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/file-management.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/string-management.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/version-management.mdx create mode 100644 src/content/docs/da/crowdin/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/da/crowdin/project-management/translations/bundles.mdx create mode 100644 src/content/docs/da/crowdin/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/da/crowdin/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/da/crowdin/project-management/webhooks.mdx create mode 100644 src/content/docs/da/crowdin/reports/contributor-reports.mdx create mode 100644 src/content/docs/da/crowdin/reports/project-reports.mdx create mode 100644 src/content/docs/da/crowdin/tasks/blend-integration.mdx create mode 100644 src/content/docs/da/crowdin/tasks/crowdin-language-services.mdx create mode 100644 src/content/docs/da/crowdin/tasks/tasks.mdx create mode 100644 src/content/docs/da/crowdin/tasks/user-tasks.mdx create mode 100644 src/content/docs/da/crowdin/team-management/inviting-people.mdx create mode 100644 src/content/docs/da/crowdin/team-management/manager-permissions.mdx create mode 100644 src/content/docs/da/crowdin/team-management/project-members.mdx create mode 100644 src/content/docs/da/crowdin/team-management/roles.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/offline-translation.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/ordering-professional-translations.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/pre-translation.mdx create mode 100644 src/content/docs/da/crowdin/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/da/developer/api/croql.mdx create mode 100644 src/content/docs/da/developer/api/crowdin-mcp-server.mdx create mode 100644 src/content/docs/da/developer/api/graphql-api.mdx create mode 100644 src/content/docs/da/developer/api/language-codes.mdx create mode 100644 src/content/docs/da/developer/api/overview.mdx create mode 100644 src/content/docs/da/developer/capabilities/editor-themes.mdx create mode 100644 src/content/docs/da/developer/capabilities/in-context.mdx create mode 100644 src/content/docs/da/developer/capabilities/pseudolocalization.mdx create mode 100644 src/content/docs/da/developer/capabilities/webhooks.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/about-crowdin-apps.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/app-descriptor.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/apps-js.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/installation.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/publishing/monetization.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/publishing/promoting.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/publishing/publishing.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/publishing/releasing.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/quick-start.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/security.mdx create mode 100644 src/content/docs/da/developer/crowdin-apps/user-interface.mdx create mode 100644 src/content/docs/da/developer/dev-tools/configuration-file.mdx create mode 100644 src/content/docs/da/developer/dev-tools/overview.mdx create mode 100644 src/content/docs/da/developer/guides/apps-localization.mdx create mode 100644 src/content/docs/da/developer/guides/automated-screenshot-management.mdx create mode 100644 src/content/docs/da/developer/guides/shopify-apps-localization.mdx create mode 100644 src/content/docs/da/developer/modules/ai-modules/ai-prompt-provider.mdx create mode 100644 src/content/docs/da/developer/modules/ai-modules/ai-request-processors.mdx create mode 100644 src/content/docs/da/developer/modules/ai-modules/custom-ai.mdx create mode 100644 src/content/docs/da/developer/modules/ai-modules/overview.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/custom-bundle-generator.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/custom-file-format.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/file-post-export-processing.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/file-post-import-processing.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/file-pre-export-processing.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/file-pre-import-processing.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/overview.mdx create mode 100644 src/content/docs/da/developer/modules/file-processing-modules/translation-alignment.mdx create mode 100644 src/content/docs/da/developer/modules/other/api.mdx create mode 100644 src/content/docs/da/developer/modules/other/auth-guard.mdx create mode 100644 src/content/docs/da/developer/modules/other/custom-spellchecker.mdx create mode 100644 src/content/docs/da/developer/modules/other/external-qa-checks.mdx create mode 100644 src/content/docs/da/developer/modules/other/webhook.mdx create mode 100644 src/content/docs/da/developer/modules/other/workflow-step-type.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/context-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/custom-mt.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/editor-asset-panel.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/editor-right-panel.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/editor-translations-panel.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/integrations.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/modal.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/organization-menu-crowdsource.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/organization-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/organization-settings-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/overview.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/profile-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/profile-settings-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/project-menu-crowdsource.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/project-menu.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/reports.mdx create mode 100644 src/content/docs/da/developer/modules/ui-modules/tools.mdx create mode 100644 src/content/docs/da/developer/security/authorizing-oauth-apps.mdx create mode 100644 src/content/docs/da/developer/security/ip-addresses.mdx create mode 100644 src/content/docs/da/developer/security/understanding-scopes.mdx create mode 100644 src/content/docs/da/docs/company-description.mdx create mode 100644 src/content/docs/da/docs/cookies.mdx create mode 100644 src/content/docs/da/docs/data-residency.mdx create mode 100644 src/content/docs/da/docs/gdpr.mdx create mode 100644 src/content/docs/da/docs/hipaa-disclaimer.mdx create mode 100644 src/content/docs/da/docs/intellectual-rights-for-translations.mdx create mode 100644 src/content/docs/da/docs/privacy-policy.mdx create mode 100644 src/content/docs/da/docs/security-policy.mdx create mode 100644 src/content/docs/da/docs/sub-processors.mdx create mode 100644 src/content/docs/da/docs/terms.mdx create mode 100644 src/content/docs/da/docs/using-logo.mdx create mode 100644 src/content/docs/da/docs/vulnerability-policy.mdx create mode 100644 src/content/docs/da/enterprise/billing/app-subscriptions.mdx create mode 100644 src/content/docs/da/enterprise/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/da/enterprise/billing/crowdin-credits.mdx create mode 100644 src/content/docs/da/enterprise/billing/payments-invoices.mdx create mode 100644 src/content/docs/da/enterprise/billing/settings.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/account/messages.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/account/notifications.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/account/settings.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/comparing-crowdin-and-crowdin-enterprise.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/for-managers.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/for-translators.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/for-vendors.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/keyboard-shortcuts.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/migrating-to-crowdin-enterprise.mdx create mode 100644 src/content/docs/da/enterprise/getting-started/supported-formats.mdx create mode 100644 src/content/docs/da/enterprise/integrations/adobe-xd.mdx create mode 100644 src/content/docs/da/enterprise/integrations/azure-repos.mdx create mode 100644 src/content/docs/da/enterprise/integrations/bitbucket.mdx create mode 100644 src/content/docs/da/enterprise/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/da/enterprise/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/da/enterprise/integrations/figma.mdx create mode 100644 src/content/docs/da/enterprise/integrations/github.mdx create mode 100644 src/content/docs/da/enterprise/integrations/gitlab.mdx create mode 100644 src/content/docs/da/enterprise/integrations/google-play.mdx create mode 100644 src/content/docs/da/enterprise/integrations/jira.mdx create mode 100644 src/content/docs/da/enterprise/integrations/overview.mdx create mode 100644 src/content/docs/da/enterprise/integrations/sketch.mdx create mode 100644 src/content/docs/da/enterprise/introduction.mdx create mode 100644 src/content/docs/da/enterprise/localization-resources/glossary.mdx create mode 100644 src/content/docs/da/enterprise/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/da/enterprise/localization-resources/style-guide.mdx create mode 100644 src/content/docs/da/enterprise/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/issues.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/overview.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/screens-translation.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/da/enterprise/online-editor/word-counter.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/clients.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/crowdsourcing.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/groups.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/overview.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/custom-placeholders.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/custom-qa-checks.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/fields.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/general.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/oidc.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/permissions-granularity-mode.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/saml.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/security.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/settings/user-access-tokens.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/vendors.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/app-based-workflow-step.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/custom-code.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/overview.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/source-text-review.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/translation-by-api-vendor.mdx create mode 100644 src/content/docs/da/enterprise/organization-management/workflows/translation-proofreading-by-vendor.mdx create mode 100644 src/content/docs/da/enterprise/project-management/creating-project.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-activity.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/export.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/general.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/import.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/privacy.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/da/enterprise/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/da/enterprise/project-management/screenshots.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/file-management.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/string-management.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/version-management.mdx create mode 100644 src/content/docs/da/enterprise/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/da/enterprise/project-management/translations/bundles.mdx create mode 100644 src/content/docs/da/enterprise/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/da/enterprise/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/da/enterprise/project-management/webhooks.mdx create mode 100644 src/content/docs/da/enterprise/reports/contributor-reports.mdx create mode 100644 src/content/docs/da/enterprise/reports/organization-reports.mdx create mode 100644 src/content/docs/da/enterprise/reports/project-reports.mdx create mode 100644 src/content/docs/da/enterprise/tasks/tasks.mdx create mode 100644 src/content/docs/da/enterprise/tasks/user-tasks.mdx create mode 100644 src/content/docs/da/enterprise/team-management/inviting-people.mdx create mode 100644 src/content/docs/da/enterprise/team-management/organization-members.mdx create mode 100644 src/content/docs/da/enterprise/team-management/project-members.mdx create mode 100644 src/content/docs/da/enterprise/team-management/roles.mdx create mode 100644 src/content/docs/da/enterprise/team-management/teams.mdx create mode 100644 src/content/docs/da/enterprise/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/da/enterprise/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/da/enterprise/translation-process/offline-translation.mdx create mode 100644 src/content/docs/da/enterprise/translation-process/pre-translation.mdx create mode 100644 src/content/docs/da/enterprise/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/da/index.mdx create mode 100644 src/content/docs/de/crowdin/billing/app-subscriptions.mdx create mode 100644 src/content/docs/de/crowdin/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/de/crowdin/billing/crowdin-credits.mdx create mode 100644 src/content/docs/de/crowdin/billing/payments-invoices.mdx create mode 100644 src/content/docs/de/crowdin/billing/settings.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/account/messages.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/account/notifications.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/account/settings.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/for-managers.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/for-translators.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/migrating-to-crowdin.mdx create mode 100644 src/content/docs/de/crowdin/getting-started/supported-formats.mdx create mode 100644 src/content/docs/de/crowdin/integrations/adobe-xd.mdx create mode 100644 src/content/docs/de/crowdin/integrations/azure-repos.mdx create mode 100644 src/content/docs/de/crowdin/integrations/bitbucket.mdx create mode 100644 src/content/docs/de/crowdin/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/de/crowdin/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/de/crowdin/integrations/figma.mdx create mode 100644 src/content/docs/de/crowdin/integrations/github.mdx create mode 100644 src/content/docs/de/crowdin/integrations/gitlab.mdx create mode 100644 src/content/docs/de/crowdin/integrations/google-play.mdx create mode 100644 src/content/docs/de/crowdin/integrations/jira.mdx create mode 100644 src/content/docs/de/crowdin/integrations/overview.mdx create mode 100644 src/content/docs/de/crowdin/integrations/sketch.mdx create mode 100644 src/content/docs/de/crowdin/introduction.mdx create mode 100644 src/content/docs/de/crowdin/localization-resources/glossary.mdx create mode 100644 src/content/docs/de/crowdin/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/de/crowdin/localization-resources/style-guide.mdx create mode 100644 src/content/docs/de/crowdin/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/issues.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/overview.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/screens-translation.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/de/crowdin/online-editor/word-counter.mdx create mode 100644 src/content/docs/de/crowdin/project-management/creating-project.mdx create mode 100644 src/content/docs/de/crowdin/project-management/discussions.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-activity.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/export.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/general.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/import.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/pre-translate.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/privacy-collaboration.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/de/crowdin/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/de/crowdin/project-management/screenshots.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/file-management.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/string-management.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/version-management.mdx create mode 100644 src/content/docs/de/crowdin/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/de/crowdin/project-management/translations/bundles.mdx create mode 100644 src/content/docs/de/crowdin/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/de/crowdin/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/de/crowdin/project-management/webhooks.mdx create mode 100644 src/content/docs/de/crowdin/reports/contributor-reports.mdx create mode 100644 src/content/docs/de/crowdin/reports/project-reports.mdx create mode 100644 src/content/docs/de/crowdin/tasks/blend-integration.mdx create mode 100644 src/content/docs/de/crowdin/tasks/crowdin-language-services.mdx create mode 100644 src/content/docs/de/crowdin/tasks/tasks.mdx create mode 100644 src/content/docs/de/crowdin/tasks/user-tasks.mdx create mode 100644 src/content/docs/de/crowdin/team-management/inviting-people.mdx create mode 100644 src/content/docs/de/crowdin/team-management/manager-permissions.mdx create mode 100644 src/content/docs/de/crowdin/team-management/project-members.mdx create mode 100644 src/content/docs/de/crowdin/team-management/roles.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/offline-translation.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/ordering-professional-translations.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/pre-translation.mdx create mode 100644 src/content/docs/de/crowdin/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/de/developer/api/croql.mdx create mode 100644 src/content/docs/de/developer/api/crowdin-mcp-server.mdx create mode 100644 src/content/docs/de/developer/api/graphql-api.mdx create mode 100644 src/content/docs/de/developer/api/language-codes.mdx create mode 100644 src/content/docs/de/developer/api/overview.mdx create mode 100644 src/content/docs/de/developer/capabilities/editor-themes.mdx create mode 100644 src/content/docs/de/developer/capabilities/in-context.mdx create mode 100644 src/content/docs/de/developer/capabilities/pseudolocalization.mdx create mode 100644 src/content/docs/de/developer/capabilities/webhooks.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/about-crowdin-apps.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/app-descriptor.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/apps-js.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/installation.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/publishing/monetization.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/publishing/promoting.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/publishing/publishing.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/publishing/releasing.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/quick-start.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/security.mdx create mode 100644 src/content/docs/de/developer/crowdin-apps/user-interface.mdx create mode 100644 src/content/docs/de/developer/dev-tools/configuration-file.mdx create mode 100644 src/content/docs/de/developer/dev-tools/overview.mdx create mode 100644 src/content/docs/de/developer/guides/apps-localization.mdx create mode 100644 src/content/docs/de/developer/guides/automated-screenshot-management.mdx create mode 100644 src/content/docs/de/developer/guides/shopify-apps-localization.mdx create mode 100644 src/content/docs/de/developer/modules/ai-modules/ai-prompt-provider.mdx create mode 100644 src/content/docs/de/developer/modules/ai-modules/ai-request-processors.mdx create mode 100644 src/content/docs/de/developer/modules/ai-modules/custom-ai.mdx create mode 100644 src/content/docs/de/developer/modules/ai-modules/overview.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/custom-bundle-generator.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/custom-file-format.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/file-post-export-processing.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/file-post-import-processing.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/file-pre-export-processing.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/file-pre-import-processing.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/overview.mdx create mode 100644 src/content/docs/de/developer/modules/file-processing-modules/translation-alignment.mdx create mode 100644 src/content/docs/de/developer/modules/other/api.mdx create mode 100644 src/content/docs/de/developer/modules/other/auth-guard.mdx create mode 100644 src/content/docs/de/developer/modules/other/custom-spellchecker.mdx create mode 100644 src/content/docs/de/developer/modules/other/external-qa-checks.mdx create mode 100644 src/content/docs/de/developer/modules/other/webhook.mdx create mode 100644 src/content/docs/de/developer/modules/other/workflow-step-type.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/context-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/custom-mt.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/editor-asset-panel.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/editor-right-panel.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/editor-translations-panel.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/integrations.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/modal.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/organization-menu-crowdsource.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/organization-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/organization-settings-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/overview.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/profile-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/profile-settings-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/project-menu-crowdsource.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/project-menu.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/reports.mdx create mode 100644 src/content/docs/de/developer/modules/ui-modules/tools.mdx create mode 100644 src/content/docs/de/developer/security/authorizing-oauth-apps.mdx create mode 100644 src/content/docs/de/developer/security/ip-addresses.mdx create mode 100644 src/content/docs/de/developer/security/understanding-scopes.mdx create mode 100644 src/content/docs/de/docs/company-description.mdx create mode 100644 src/content/docs/de/docs/cookies.mdx create mode 100644 src/content/docs/de/docs/data-residency.mdx create mode 100644 src/content/docs/de/docs/gdpr.mdx create mode 100644 src/content/docs/de/docs/hipaa-disclaimer.mdx create mode 100644 src/content/docs/de/docs/intellectual-rights-for-translations.mdx create mode 100644 src/content/docs/de/docs/privacy-policy.mdx create mode 100644 src/content/docs/de/docs/security-policy.mdx create mode 100644 src/content/docs/de/docs/sub-processors.mdx create mode 100644 src/content/docs/de/docs/terms.mdx create mode 100644 src/content/docs/de/docs/using-logo.mdx create mode 100644 src/content/docs/de/docs/vulnerability-policy.mdx create mode 100644 src/content/docs/de/enterprise/billing/app-subscriptions.mdx create mode 100644 src/content/docs/de/enterprise/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/de/enterprise/billing/crowdin-credits.mdx create mode 100644 src/content/docs/de/enterprise/billing/payments-invoices.mdx create mode 100644 src/content/docs/de/enterprise/billing/settings.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/account/messages.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/account/notifications.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/account/settings.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/comparing-crowdin-and-crowdin-enterprise.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/for-managers.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/for-translators.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/for-vendors.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/keyboard-shortcuts.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/migrating-to-crowdin-enterprise.mdx create mode 100644 src/content/docs/de/enterprise/getting-started/supported-formats.mdx create mode 100644 src/content/docs/de/enterprise/integrations/adobe-xd.mdx create mode 100644 src/content/docs/de/enterprise/integrations/azure-repos.mdx create mode 100644 src/content/docs/de/enterprise/integrations/bitbucket.mdx create mode 100644 src/content/docs/de/enterprise/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/de/enterprise/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/de/enterprise/integrations/figma.mdx create mode 100644 src/content/docs/de/enterprise/integrations/github.mdx create mode 100644 src/content/docs/de/enterprise/integrations/gitlab.mdx create mode 100644 src/content/docs/de/enterprise/integrations/google-play.mdx create mode 100644 src/content/docs/de/enterprise/integrations/jira.mdx create mode 100644 src/content/docs/de/enterprise/integrations/overview.mdx create mode 100644 src/content/docs/de/enterprise/integrations/sketch.mdx create mode 100644 src/content/docs/de/enterprise/introduction.mdx create mode 100644 src/content/docs/de/enterprise/localization-resources/glossary.mdx create mode 100644 src/content/docs/de/enterprise/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/de/enterprise/localization-resources/style-guide.mdx create mode 100644 src/content/docs/de/enterprise/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/issues.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/overview.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/screens-translation.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/de/enterprise/online-editor/word-counter.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/clients.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/crowdsourcing.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/groups.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/overview.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/custom-placeholders.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/custom-qa-checks.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/fields.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/general.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/oidc.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/permissions-granularity-mode.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/saml.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/security.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/settings/user-access-tokens.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/vendors.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/app-based-workflow-step.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/custom-code.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/overview.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/source-text-review.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/translation-by-api-vendor.mdx create mode 100644 src/content/docs/de/enterprise/organization-management/workflows/translation-proofreading-by-vendor.mdx create mode 100644 src/content/docs/de/enterprise/project-management/creating-project.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-activity.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/export.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/general.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/import.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/privacy.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/de/enterprise/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/de/enterprise/project-management/screenshots.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/file-management.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/string-management.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/version-management.mdx create mode 100644 src/content/docs/de/enterprise/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/de/enterprise/project-management/translations/bundles.mdx create mode 100644 src/content/docs/de/enterprise/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/de/enterprise/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/de/enterprise/project-management/webhooks.mdx create mode 100644 src/content/docs/de/enterprise/reports/contributor-reports.mdx create mode 100644 src/content/docs/de/enterprise/reports/organization-reports.mdx create mode 100644 src/content/docs/de/enterprise/reports/project-reports.mdx create mode 100644 src/content/docs/de/enterprise/tasks/tasks.mdx create mode 100644 src/content/docs/de/enterprise/tasks/user-tasks.mdx create mode 100644 src/content/docs/de/enterprise/team-management/inviting-people.mdx create mode 100644 src/content/docs/de/enterprise/team-management/organization-members.mdx create mode 100644 src/content/docs/de/enterprise/team-management/project-members.mdx create mode 100644 src/content/docs/de/enterprise/team-management/roles.mdx create mode 100644 src/content/docs/de/enterprise/team-management/teams.mdx create mode 100644 src/content/docs/de/enterprise/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/de/enterprise/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/de/enterprise/translation-process/offline-translation.mdx create mode 100644 src/content/docs/de/enterprise/translation-process/pre-translation.mdx create mode 100644 src/content/docs/de/enterprise/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/es/crowdin/billing/app-subscriptions.mdx create mode 100644 src/content/docs/es/crowdin/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/es/crowdin/billing/crowdin-credits.mdx create mode 100644 src/content/docs/es/crowdin/billing/payments-invoices.mdx create mode 100644 src/content/docs/es/crowdin/billing/settings.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/account/messages.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/account/notifications.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/account/settings.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/for-managers.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/for-translators.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/migrating-to-crowdin.mdx create mode 100644 src/content/docs/es/crowdin/getting-started/supported-formats.mdx create mode 100644 src/content/docs/es/crowdin/integrations/adobe-xd.mdx create mode 100644 src/content/docs/es/crowdin/integrations/azure-repos.mdx create mode 100644 src/content/docs/es/crowdin/integrations/bitbucket.mdx create mode 100644 src/content/docs/es/crowdin/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/es/crowdin/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/es/crowdin/integrations/figma.mdx create mode 100644 src/content/docs/es/crowdin/integrations/github.mdx create mode 100644 src/content/docs/es/crowdin/integrations/gitlab.mdx create mode 100644 src/content/docs/es/crowdin/integrations/google-play.mdx create mode 100644 src/content/docs/es/crowdin/integrations/jira.mdx create mode 100644 src/content/docs/es/crowdin/integrations/overview.mdx create mode 100644 src/content/docs/es/crowdin/integrations/sketch.mdx create mode 100644 src/content/docs/es/crowdin/introduction.mdx create mode 100644 src/content/docs/es/crowdin/localization-resources/glossary.mdx create mode 100644 src/content/docs/es/crowdin/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/es/crowdin/localization-resources/style-guide.mdx create mode 100644 src/content/docs/es/crowdin/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/issues.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/overview.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/screens-translation.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/es/crowdin/online-editor/word-counter.mdx create mode 100644 src/content/docs/es/crowdin/project-management/creating-project.mdx create mode 100644 src/content/docs/es/crowdin/project-management/discussions.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-activity.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/export.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/general.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/import.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/pre-translate.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/privacy-collaboration.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/es/crowdin/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/es/crowdin/project-management/screenshots.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/file-management.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/string-management.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/version-management.mdx create mode 100644 src/content/docs/es/crowdin/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/es/crowdin/project-management/translations/bundles.mdx create mode 100644 src/content/docs/es/crowdin/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/es/crowdin/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/es/crowdin/project-management/webhooks.mdx create mode 100644 src/content/docs/es/crowdin/reports/contributor-reports.mdx create mode 100644 src/content/docs/es/crowdin/reports/project-reports.mdx create mode 100644 src/content/docs/es/crowdin/tasks/blend-integration.mdx create mode 100644 src/content/docs/es/crowdin/tasks/crowdin-language-services.mdx create mode 100644 src/content/docs/es/crowdin/tasks/tasks.mdx create mode 100644 src/content/docs/es/crowdin/tasks/user-tasks.mdx create mode 100644 src/content/docs/es/crowdin/team-management/inviting-people.mdx create mode 100644 src/content/docs/es/crowdin/team-management/manager-permissions.mdx create mode 100644 src/content/docs/es/crowdin/team-management/project-members.mdx create mode 100644 src/content/docs/es/crowdin/team-management/roles.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/offline-translation.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/ordering-professional-translations.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/pre-translation.mdx create mode 100644 src/content/docs/es/crowdin/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/es/developer/api/croql.mdx create mode 100644 src/content/docs/es/developer/api/crowdin-mcp-server.mdx create mode 100644 src/content/docs/es/developer/api/graphql-api.mdx create mode 100644 src/content/docs/es/developer/api/language-codes.mdx create mode 100644 src/content/docs/es/developer/api/overview.mdx create mode 100644 src/content/docs/es/developer/capabilities/editor-themes.mdx create mode 100644 src/content/docs/es/developer/capabilities/in-context.mdx create mode 100644 src/content/docs/es/developer/capabilities/pseudolocalization.mdx create mode 100644 src/content/docs/es/developer/capabilities/webhooks.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/about-crowdin-apps.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/app-descriptor.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/apps-js.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/installation.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/publishing/monetization.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/publishing/promoting.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/publishing/publishing.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/publishing/releasing.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/quick-start.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/security.mdx create mode 100644 src/content/docs/es/developer/crowdin-apps/user-interface.mdx create mode 100644 src/content/docs/es/developer/dev-tools/configuration-file.mdx create mode 100644 src/content/docs/es/developer/dev-tools/overview.mdx create mode 100644 src/content/docs/es/developer/guides/apps-localization.mdx create mode 100644 src/content/docs/es/developer/guides/automated-screenshot-management.mdx create mode 100644 src/content/docs/es/developer/guides/shopify-apps-localization.mdx create mode 100644 src/content/docs/es/developer/modules/ai-modules/ai-prompt-provider.mdx create mode 100644 src/content/docs/es/developer/modules/ai-modules/ai-request-processors.mdx create mode 100644 src/content/docs/es/developer/modules/ai-modules/custom-ai.mdx create mode 100644 src/content/docs/es/developer/modules/ai-modules/overview.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/custom-bundle-generator.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/custom-file-format.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/file-post-export-processing.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/file-post-import-processing.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/file-pre-export-processing.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/file-pre-import-processing.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/overview.mdx create mode 100644 src/content/docs/es/developer/modules/file-processing-modules/translation-alignment.mdx create mode 100644 src/content/docs/es/developer/modules/other/api.mdx create mode 100644 src/content/docs/es/developer/modules/other/auth-guard.mdx create mode 100644 src/content/docs/es/developer/modules/other/custom-spellchecker.mdx create mode 100644 src/content/docs/es/developer/modules/other/external-qa-checks.mdx create mode 100644 src/content/docs/es/developer/modules/other/webhook.mdx create mode 100644 src/content/docs/es/developer/modules/other/workflow-step-type.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/context-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/custom-mt.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/editor-asset-panel.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/editor-right-panel.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/editor-translations-panel.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/integrations.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/modal.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/organization-menu-crowdsource.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/organization-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/organization-settings-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/overview.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/profile-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/profile-settings-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/project-menu-crowdsource.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/project-menu.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/reports.mdx create mode 100644 src/content/docs/es/developer/modules/ui-modules/tools.mdx create mode 100644 src/content/docs/es/developer/security/authorizing-oauth-apps.mdx create mode 100644 src/content/docs/es/developer/security/ip-addresses.mdx create mode 100644 src/content/docs/es/developer/security/understanding-scopes.mdx create mode 100644 src/content/docs/es/docs/company-description.mdx create mode 100644 src/content/docs/es/docs/cookies.mdx create mode 100644 src/content/docs/es/docs/data-residency.mdx create mode 100644 src/content/docs/es/docs/gdpr.mdx create mode 100644 src/content/docs/es/docs/hipaa-disclaimer.mdx create mode 100644 src/content/docs/es/docs/intellectual-rights-for-translations.mdx create mode 100644 src/content/docs/es/docs/privacy-policy.mdx create mode 100644 src/content/docs/es/docs/security-policy.mdx create mode 100644 src/content/docs/es/docs/sub-processors.mdx create mode 100644 src/content/docs/es/docs/terms.mdx create mode 100644 src/content/docs/es/docs/using-logo.mdx create mode 100644 src/content/docs/es/docs/vulnerability-policy.mdx create mode 100644 src/content/docs/es/enterprise/billing/app-subscriptions.mdx create mode 100644 src/content/docs/es/enterprise/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/es/enterprise/billing/crowdin-credits.mdx create mode 100644 src/content/docs/es/enterprise/billing/payments-invoices.mdx create mode 100644 src/content/docs/es/enterprise/billing/settings.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/account/messages.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/account/notifications.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/account/settings.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/comparing-crowdin-and-crowdin-enterprise.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/for-managers.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/for-translators.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/for-vendors.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/keyboard-shortcuts.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/migrating-to-crowdin-enterprise.mdx create mode 100644 src/content/docs/es/enterprise/getting-started/supported-formats.mdx create mode 100644 src/content/docs/es/enterprise/integrations/adobe-xd.mdx create mode 100644 src/content/docs/es/enterprise/integrations/azure-repos.mdx create mode 100644 src/content/docs/es/enterprise/integrations/bitbucket.mdx create mode 100644 src/content/docs/es/enterprise/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/es/enterprise/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/es/enterprise/integrations/figma.mdx create mode 100644 src/content/docs/es/enterprise/integrations/github.mdx create mode 100644 src/content/docs/es/enterprise/integrations/gitlab.mdx create mode 100644 src/content/docs/es/enterprise/integrations/google-play.mdx create mode 100644 src/content/docs/es/enterprise/integrations/jira.mdx create mode 100644 src/content/docs/es/enterprise/integrations/overview.mdx create mode 100644 src/content/docs/es/enterprise/integrations/sketch.mdx create mode 100644 src/content/docs/es/enterprise/introduction.mdx create mode 100644 src/content/docs/es/enterprise/localization-resources/glossary.mdx create mode 100644 src/content/docs/es/enterprise/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/es/enterprise/localization-resources/style-guide.mdx create mode 100644 src/content/docs/es/enterprise/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/issues.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/overview.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/screens-translation.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/es/enterprise/online-editor/word-counter.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/clients.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/crowdsourcing.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/groups.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/overview.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/custom-placeholders.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/custom-qa-checks.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/fields.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/general.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/oidc.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/permissions-granularity-mode.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/saml.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/security.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/settings/user-access-tokens.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/vendors.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/app-based-workflow-step.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/custom-code.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/overview.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/source-text-review.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/translation-by-api-vendor.mdx create mode 100644 src/content/docs/es/enterprise/organization-management/workflows/translation-proofreading-by-vendor.mdx create mode 100644 src/content/docs/es/enterprise/project-management/creating-project.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-activity.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/export.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/general.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/import.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/privacy.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/es/enterprise/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/es/enterprise/project-management/screenshots.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/file-management.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/string-management.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/version-management.mdx create mode 100644 src/content/docs/es/enterprise/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/es/enterprise/project-management/translations/bundles.mdx create mode 100644 src/content/docs/es/enterprise/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/es/enterprise/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/es/enterprise/project-management/webhooks.mdx create mode 100644 src/content/docs/es/enterprise/reports/contributor-reports.mdx create mode 100644 src/content/docs/es/enterprise/reports/organization-reports.mdx create mode 100644 src/content/docs/es/enterprise/reports/project-reports.mdx create mode 100644 src/content/docs/es/enterprise/tasks/tasks.mdx create mode 100644 src/content/docs/es/enterprise/tasks/user-tasks.mdx create mode 100644 src/content/docs/es/enterprise/team-management/inviting-people.mdx create mode 100644 src/content/docs/es/enterprise/team-management/organization-members.mdx create mode 100644 src/content/docs/es/enterprise/team-management/project-members.mdx create mode 100644 src/content/docs/es/enterprise/team-management/roles.mdx create mode 100644 src/content/docs/es/enterprise/team-management/teams.mdx create mode 100644 src/content/docs/es/enterprise/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/es/enterprise/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/es/enterprise/translation-process/offline-translation.mdx create mode 100644 src/content/docs/es/enterprise/translation-process/pre-translation.mdx create mode 100644 src/content/docs/es/enterprise/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/es/index.mdx create mode 100644 src/content/docs/fr/crowdin/billing/app-subscriptions.mdx create mode 100644 src/content/docs/fr/crowdin/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/fr/crowdin/billing/crowdin-credits.mdx create mode 100644 src/content/docs/fr/crowdin/billing/payments-invoices.mdx create mode 100644 src/content/docs/fr/crowdin/billing/settings.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/account/messages.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/account/notifications.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/account/settings.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/for-managers.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/for-translators.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/migrating-to-crowdin.mdx create mode 100644 src/content/docs/fr/crowdin/getting-started/supported-formats.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/adobe-xd.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/azure-repos.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/bitbucket.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/figma.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/github.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/gitlab.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/google-play.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/jira.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/overview.mdx create mode 100644 src/content/docs/fr/crowdin/integrations/sketch.mdx create mode 100644 src/content/docs/fr/crowdin/introduction.mdx create mode 100644 src/content/docs/fr/crowdin/localization-resources/glossary.mdx create mode 100644 src/content/docs/fr/crowdin/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/fr/crowdin/localization-resources/style-guide.mdx create mode 100644 src/content/docs/fr/crowdin/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/issues.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/overview.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/screens-translation.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/fr/crowdin/online-editor/word-counter.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/creating-project.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/discussions.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-activity.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/export.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/general.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/import.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/pre-translate.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/privacy-collaboration.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/screenshots.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/file-management.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/string-management.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/version-management.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/translations/bundles.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/fr/crowdin/project-management/webhooks.mdx create mode 100644 src/content/docs/fr/crowdin/reports/contributor-reports.mdx create mode 100644 src/content/docs/fr/crowdin/reports/project-reports.mdx create mode 100644 src/content/docs/fr/crowdin/tasks/blend-integration.mdx create mode 100644 src/content/docs/fr/crowdin/tasks/crowdin-language-services.mdx create mode 100644 src/content/docs/fr/crowdin/tasks/tasks.mdx create mode 100644 src/content/docs/fr/crowdin/tasks/user-tasks.mdx create mode 100644 src/content/docs/fr/crowdin/team-management/inviting-people.mdx create mode 100644 src/content/docs/fr/crowdin/team-management/manager-permissions.mdx create mode 100644 src/content/docs/fr/crowdin/team-management/project-members.mdx create mode 100644 src/content/docs/fr/crowdin/team-management/roles.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/offline-translation.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/ordering-professional-translations.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/pre-translation.mdx create mode 100644 src/content/docs/fr/crowdin/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/fr/developer/api/croql.mdx create mode 100644 src/content/docs/fr/developer/api/crowdin-mcp-server.mdx create mode 100644 src/content/docs/fr/developer/api/graphql-api.mdx create mode 100644 src/content/docs/fr/developer/api/language-codes.mdx create mode 100644 src/content/docs/fr/developer/api/overview.mdx create mode 100644 src/content/docs/fr/developer/capabilities/editor-themes.mdx create mode 100644 src/content/docs/fr/developer/capabilities/in-context.mdx create mode 100644 src/content/docs/fr/developer/capabilities/pseudolocalization.mdx create mode 100644 src/content/docs/fr/developer/capabilities/webhooks.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/about-crowdin-apps.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/app-descriptor.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/apps-js.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/installation.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/publishing/monetization.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/publishing/promoting.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/publishing/publishing.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/publishing/releasing.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/quick-start.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/security.mdx create mode 100644 src/content/docs/fr/developer/crowdin-apps/user-interface.mdx create mode 100644 src/content/docs/fr/developer/dev-tools/configuration-file.mdx create mode 100644 src/content/docs/fr/developer/dev-tools/overview.mdx create mode 100644 src/content/docs/fr/developer/guides/apps-localization.mdx create mode 100644 src/content/docs/fr/developer/guides/automated-screenshot-management.mdx create mode 100644 src/content/docs/fr/developer/guides/shopify-apps-localization.mdx create mode 100644 src/content/docs/fr/developer/modules/ai-modules/ai-prompt-provider.mdx create mode 100644 src/content/docs/fr/developer/modules/ai-modules/ai-request-processors.mdx create mode 100644 src/content/docs/fr/developer/modules/ai-modules/custom-ai.mdx create mode 100644 src/content/docs/fr/developer/modules/ai-modules/overview.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/custom-bundle-generator.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/custom-file-format.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/file-post-export-processing.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/file-post-import-processing.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/file-pre-export-processing.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/file-pre-import-processing.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/overview.mdx create mode 100644 src/content/docs/fr/developer/modules/file-processing-modules/translation-alignment.mdx create mode 100644 src/content/docs/fr/developer/modules/other/api.mdx create mode 100644 src/content/docs/fr/developer/modules/other/auth-guard.mdx create mode 100644 src/content/docs/fr/developer/modules/other/custom-spellchecker.mdx create mode 100644 src/content/docs/fr/developer/modules/other/external-qa-checks.mdx create mode 100644 src/content/docs/fr/developer/modules/other/webhook.mdx create mode 100644 src/content/docs/fr/developer/modules/other/workflow-step-type.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/context-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/custom-mt.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/editor-asset-panel.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/editor-right-panel.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/editor-translations-panel.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/integrations.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/modal.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/organization-menu-crowdsource.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/organization-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/organization-settings-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/overview.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/profile-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/profile-settings-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/project-menu-crowdsource.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/project-menu.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/reports.mdx create mode 100644 src/content/docs/fr/developer/modules/ui-modules/tools.mdx create mode 100644 src/content/docs/fr/developer/security/authorizing-oauth-apps.mdx create mode 100644 src/content/docs/fr/developer/security/ip-addresses.mdx create mode 100644 src/content/docs/fr/developer/security/understanding-scopes.mdx create mode 100644 src/content/docs/fr/docs/company-description.mdx create mode 100644 src/content/docs/fr/docs/cookies.mdx create mode 100644 src/content/docs/fr/docs/data-residency.mdx create mode 100644 src/content/docs/fr/docs/gdpr.mdx create mode 100644 src/content/docs/fr/docs/hipaa-disclaimer.mdx create mode 100644 src/content/docs/fr/docs/intellectual-rights-for-translations.mdx create mode 100644 src/content/docs/fr/docs/privacy-policy.mdx create mode 100644 src/content/docs/fr/docs/security-policy.mdx create mode 100644 src/content/docs/fr/docs/sub-processors.mdx create mode 100644 src/content/docs/fr/docs/terms.mdx create mode 100644 src/content/docs/fr/docs/using-logo.mdx create mode 100644 src/content/docs/fr/docs/vulnerability-policy.mdx create mode 100644 src/content/docs/fr/enterprise/billing/app-subscriptions.mdx create mode 100644 src/content/docs/fr/enterprise/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/fr/enterprise/billing/crowdin-credits.mdx create mode 100644 src/content/docs/fr/enterprise/billing/payments-invoices.mdx create mode 100644 src/content/docs/fr/enterprise/billing/settings.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/account/messages.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/account/notifications.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/account/settings.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/comparing-crowdin-and-crowdin-enterprise.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/for-managers.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/for-translators.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/for-vendors.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/keyboard-shortcuts.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/migrating-to-crowdin-enterprise.mdx create mode 100644 src/content/docs/fr/enterprise/getting-started/supported-formats.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/adobe-xd.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/azure-repos.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/bitbucket.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/figma.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/github.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/gitlab.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/google-play.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/jira.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/overview.mdx create mode 100644 src/content/docs/fr/enterprise/integrations/sketch.mdx create mode 100644 src/content/docs/fr/enterprise/introduction.mdx create mode 100644 src/content/docs/fr/enterprise/localization-resources/glossary.mdx create mode 100644 src/content/docs/fr/enterprise/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/fr/enterprise/localization-resources/style-guide.mdx create mode 100644 src/content/docs/fr/enterprise/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/issues.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/overview.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/screens-translation.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/fr/enterprise/online-editor/word-counter.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/clients.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/crowdsourcing.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/groups.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/overview.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/custom-placeholders.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/custom-qa-checks.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/fields.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/general.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/oidc.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/permissions-granularity-mode.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/saml.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/security.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/settings/user-access-tokens.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/vendors.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/app-based-workflow-step.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/custom-code.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/overview.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/source-text-review.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/translation-by-api-vendor.mdx create mode 100644 src/content/docs/fr/enterprise/organization-management/workflows/translation-proofreading-by-vendor.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/creating-project.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-activity.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/export.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/general.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/import.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/privacy.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/screenshots.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/file-management.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/string-management.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/version-management.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/translations/bundles.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/fr/enterprise/project-management/webhooks.mdx create mode 100644 src/content/docs/fr/enterprise/reports/contributor-reports.mdx create mode 100644 src/content/docs/fr/enterprise/reports/organization-reports.mdx create mode 100644 src/content/docs/fr/enterprise/reports/project-reports.mdx create mode 100644 src/content/docs/fr/enterprise/tasks/tasks.mdx create mode 100644 src/content/docs/fr/enterprise/tasks/user-tasks.mdx create mode 100644 src/content/docs/fr/enterprise/team-management/inviting-people.mdx create mode 100644 src/content/docs/fr/enterprise/team-management/organization-members.mdx create mode 100644 src/content/docs/fr/enterprise/team-management/project-members.mdx create mode 100644 src/content/docs/fr/enterprise/team-management/roles.mdx create mode 100644 src/content/docs/fr/enterprise/team-management/teams.mdx create mode 100644 src/content/docs/fr/enterprise/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/fr/enterprise/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/fr/enterprise/translation-process/offline-translation.mdx create mode 100644 src/content/docs/fr/enterprise/translation-process/pre-translation.mdx create mode 100644 src/content/docs/fr/enterprise/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/fr/index.mdx create mode 100644 src/content/docs/pt/crowdin/billing/app-subscriptions.mdx create mode 100644 src/content/docs/pt/crowdin/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/pt/crowdin/billing/crowdin-credits.mdx create mode 100644 src/content/docs/pt/crowdin/billing/payments-invoices.mdx create mode 100644 src/content/docs/pt/crowdin/billing/settings.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/account/messages.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/account/notifications.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/account/settings.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/for-managers.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/for-translators.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/migrating-to-crowdin.mdx create mode 100644 src/content/docs/pt/crowdin/getting-started/supported-formats.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/adobe-xd.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/azure-repos.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/bitbucket.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/figma.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/github.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/gitlab.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/google-play.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/jira.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/overview.mdx create mode 100644 src/content/docs/pt/crowdin/integrations/sketch.mdx create mode 100644 src/content/docs/pt/crowdin/introduction.mdx create mode 100644 src/content/docs/pt/crowdin/localization-resources/glossary.mdx create mode 100644 src/content/docs/pt/crowdin/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/pt/crowdin/localization-resources/style-guide.mdx create mode 100644 src/content/docs/pt/crowdin/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/issues.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/overview.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/screens-translation.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/pt/crowdin/online-editor/word-counter.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/creating-project.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/discussions.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-activity.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/export.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/general.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/import.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/pre-translate.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/privacy-collaboration.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/screenshots.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/file-management.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/string-management.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/version-management.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/translations/bundles.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/pt/crowdin/project-management/webhooks.mdx create mode 100644 src/content/docs/pt/crowdin/reports/contributor-reports.mdx create mode 100644 src/content/docs/pt/crowdin/reports/project-reports.mdx create mode 100644 src/content/docs/pt/crowdin/tasks/blend-integration.mdx create mode 100644 src/content/docs/pt/crowdin/tasks/crowdin-language-services.mdx create mode 100644 src/content/docs/pt/crowdin/tasks/tasks.mdx create mode 100644 src/content/docs/pt/crowdin/tasks/user-tasks.mdx create mode 100644 src/content/docs/pt/crowdin/team-management/inviting-people.mdx create mode 100644 src/content/docs/pt/crowdin/team-management/manager-permissions.mdx create mode 100644 src/content/docs/pt/crowdin/team-management/project-members.mdx create mode 100644 src/content/docs/pt/crowdin/team-management/roles.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/offline-translation.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/ordering-professional-translations.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/pre-translation.mdx create mode 100644 src/content/docs/pt/crowdin/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/pt/developer/api/croql.mdx create mode 100644 src/content/docs/pt/developer/api/crowdin-mcp-server.mdx create mode 100644 src/content/docs/pt/developer/api/graphql-api.mdx create mode 100644 src/content/docs/pt/developer/api/language-codes.mdx create mode 100644 src/content/docs/pt/developer/api/overview.mdx create mode 100644 src/content/docs/pt/developer/capabilities/editor-themes.mdx create mode 100644 src/content/docs/pt/developer/capabilities/in-context.mdx create mode 100644 src/content/docs/pt/developer/capabilities/pseudolocalization.mdx create mode 100644 src/content/docs/pt/developer/capabilities/webhooks.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/about-crowdin-apps.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/app-descriptor.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/apps-js.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/installation.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/publishing/monetization.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/publishing/promoting.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/publishing/publishing.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/publishing/releasing.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/quick-start.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/security.mdx create mode 100644 src/content/docs/pt/developer/crowdin-apps/user-interface.mdx create mode 100644 src/content/docs/pt/developer/dev-tools/configuration-file.mdx create mode 100644 src/content/docs/pt/developer/dev-tools/overview.mdx create mode 100644 src/content/docs/pt/developer/guides/apps-localization.mdx create mode 100644 src/content/docs/pt/developer/guides/automated-screenshot-management.mdx create mode 100644 src/content/docs/pt/developer/guides/shopify-apps-localization.mdx create mode 100644 src/content/docs/pt/developer/modules/ai-modules/ai-prompt-provider.mdx create mode 100644 src/content/docs/pt/developer/modules/ai-modules/ai-request-processors.mdx create mode 100644 src/content/docs/pt/developer/modules/ai-modules/custom-ai.mdx create mode 100644 src/content/docs/pt/developer/modules/ai-modules/overview.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/custom-bundle-generator.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/custom-file-format.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/file-post-export-processing.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/file-post-import-processing.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/file-pre-export-processing.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/file-pre-import-processing.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/overview.mdx create mode 100644 src/content/docs/pt/developer/modules/file-processing-modules/translation-alignment.mdx create mode 100644 src/content/docs/pt/developer/modules/other/api.mdx create mode 100644 src/content/docs/pt/developer/modules/other/auth-guard.mdx create mode 100644 src/content/docs/pt/developer/modules/other/custom-spellchecker.mdx create mode 100644 src/content/docs/pt/developer/modules/other/external-qa-checks.mdx create mode 100644 src/content/docs/pt/developer/modules/other/webhook.mdx create mode 100644 src/content/docs/pt/developer/modules/other/workflow-step-type.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/context-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/custom-mt.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/editor-asset-panel.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/editor-right-panel.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/editor-translations-panel.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/integrations.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/modal.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/organization-menu-crowdsource.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/organization-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/organization-settings-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/overview.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/profile-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/profile-settings-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/project-menu-crowdsource.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/project-menu.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/reports.mdx create mode 100644 src/content/docs/pt/developer/modules/ui-modules/tools.mdx create mode 100644 src/content/docs/pt/developer/security/authorizing-oauth-apps.mdx create mode 100644 src/content/docs/pt/developer/security/ip-addresses.mdx create mode 100644 src/content/docs/pt/developer/security/understanding-scopes.mdx create mode 100644 src/content/docs/pt/docs/company-description.mdx create mode 100644 src/content/docs/pt/docs/cookies.mdx create mode 100644 src/content/docs/pt/docs/data-residency.mdx create mode 100644 src/content/docs/pt/docs/gdpr.mdx create mode 100644 src/content/docs/pt/docs/hipaa-disclaimer.mdx create mode 100644 src/content/docs/pt/docs/intellectual-rights-for-translations.mdx create mode 100644 src/content/docs/pt/docs/privacy-policy.mdx create mode 100644 src/content/docs/pt/docs/security-policy.mdx create mode 100644 src/content/docs/pt/docs/sub-processors.mdx create mode 100644 src/content/docs/pt/docs/terms.mdx create mode 100644 src/content/docs/pt/docs/using-logo.mdx create mode 100644 src/content/docs/pt/docs/vulnerability-policy.mdx create mode 100644 src/content/docs/pt/enterprise/billing/app-subscriptions.mdx create mode 100644 src/content/docs/pt/enterprise/billing/changing-subscription-plan.mdx create mode 100644 src/content/docs/pt/enterprise/billing/crowdin-credits.mdx create mode 100644 src/content/docs/pt/enterprise/billing/payments-invoices.mdx create mode 100644 src/content/docs/pt/enterprise/billing/settings.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/account/messages.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/account/notifications.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/account/settings.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/additional-support-services.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/comparing-crowdin-and-crowdin-enterprise.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/for-managers.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/for-translators.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/for-vendors.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/keyboard-shortcuts.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/migrating-to-crowdin-enterprise.mdx create mode 100644 src/content/docs/pt/enterprise/getting-started/supported-formats.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/adobe-xd.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/azure-repos.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/bitbucket.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/cdn-distributions.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/configuring-vcs-online.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/figma.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/github.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/gitlab.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/google-play.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/jira.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/overview.mdx create mode 100644 src/content/docs/pt/enterprise/integrations/sketch.mdx create mode 100644 src/content/docs/pt/enterprise/introduction.mdx create mode 100644 src/content/docs/pt/enterprise/localization-resources/glossary.mdx create mode 100644 src/content/docs/pt/enterprise/localization-resources/machine-translation.mdx create mode 100644 src/content/docs/pt/enterprise/localization-resources/style-guide.mdx create mode 100644 src/content/docs/pt/enterprise/localization-resources/translation-memory.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/expression-syntax-elements.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/icu-message-syntax.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/issues.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/overview.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/screens-translation.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/translation-consistency.mdx create mode 100644 src/content/docs/pt/enterprise/online-editor/word-counter.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/clients.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/crowdsourcing.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/groups.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/overview.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/custom-placeholders.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/custom-qa-checks.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/fields.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/general.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/oidc.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/permissions-granularity-mode.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/saml.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/security.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/settings/user-access-tokens.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/vendors.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/app-based-workflow-step.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/custom-code.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/overview.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/source-text-review.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/translation-by-api-vendor.mdx create mode 100644 src/content/docs/pt/enterprise/organization-management/workflows/translation-proofreading-by-vendor.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/creating-project.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-activity.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/ai.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/customize-tabs.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/export.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/file-processors.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/general.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/glossaries.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/import.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/labels.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/languages.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/machine-translation.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/parser-configuration.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/privacy.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/qa-checks.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/style-guides.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/project-settings/translation-memories.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/screenshots.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/asset-localization.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/csv-xlsx-configuration.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/custom-segmentation.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/file-management.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/string-management.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/uploading-files.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/version-management.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/sources/xml-configuration.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/translations/bundles.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/translations/downloading-translations.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/translations/uploading-translations.mdx create mode 100644 src/content/docs/pt/enterprise/project-management/webhooks.mdx create mode 100644 src/content/docs/pt/enterprise/reports/contributor-reports.mdx create mode 100644 src/content/docs/pt/enterprise/reports/organization-reports.mdx create mode 100644 src/content/docs/pt/enterprise/reports/project-reports.mdx create mode 100644 src/content/docs/pt/enterprise/tasks/tasks.mdx create mode 100644 src/content/docs/pt/enterprise/tasks/user-tasks.mdx create mode 100644 src/content/docs/pt/enterprise/team-management/inviting-people.mdx create mode 100644 src/content/docs/pt/enterprise/team-management/organization-members.mdx create mode 100644 src/content/docs/pt/enterprise/team-management/project-members.mdx create mode 100644 src/content/docs/pt/enterprise/team-management/roles.mdx create mode 100644 src/content/docs/pt/enterprise/team-management/teams.mdx create mode 100644 src/content/docs/pt/enterprise/translation-process/ai-fine-tuning.mdx create mode 100644 src/content/docs/pt/enterprise/translation-process/crowdin-ai.mdx create mode 100644 src/content/docs/pt/enterprise/translation-process/offline-translation.mdx create mode 100644 src/content/docs/pt/enterprise/translation-process/pre-translation.mdx create mode 100644 src/content/docs/pt/enterprise/translation-process/translation-strategies.mdx create mode 100644 src/content/docs/pt/index.mdx create mode 100644 src/content/includes/da/contribution-raw-data-report-columns.mdx create mode 100644 src/content/includes/da/editable-formats-list.mdx create mode 100644 src/content/includes/da/expression-syntax-elements.mdx create mode 100644 src/content/includes/da/notification-types-crowdin.mdx create mode 100644 src/content/includes/da/notification-types-enterprise.mdx create mode 100644 src/content/includes/da/parser-configuration-parameters.mdx create mode 100644 src/content/includes/da/placeholders.mdx create mode 100644 src/content/includes/da/sb-file-formats.mdx create mode 100644 src/content/includes/da/skip-untranslated-strings-formats.mdx create mode 100644 src/content/includes/da/spellcheck-supported-languages.mdx create mode 100644 src/content/includes/da/srx-file-example.mdx create mode 100644 src/content/includes/da/tm-non-translatable-elements.mdx create mode 100644 src/content/includes/da/translatable-html-attributes.mdx create mode 100644 src/content/includes/da/word-counter.mdx create mode 100644 src/content/includes/de/contribution-raw-data-report-columns.mdx create mode 100644 src/content/includes/de/editable-formats-list.mdx create mode 100644 src/content/includes/de/expression-syntax-elements.mdx create mode 100644 src/content/includes/de/notification-types-crowdin.mdx create mode 100644 src/content/includes/de/notification-types-enterprise.mdx create mode 100644 src/content/includes/de/parser-configuration-parameters.mdx create mode 100644 src/content/includes/de/placeholders.mdx create mode 100644 src/content/includes/de/sb-file-formats.mdx create mode 100644 src/content/includes/de/skip-untranslated-strings-formats.mdx create mode 100644 src/content/includes/de/spellcheck-supported-languages.mdx create mode 100644 src/content/includes/de/srx-file-example.mdx create mode 100644 src/content/includes/de/tm-non-translatable-elements.mdx create mode 100644 src/content/includes/de/translatable-html-attributes.mdx create mode 100644 src/content/includes/de/word-counter.mdx create mode 100644 src/content/includes/es/contribution-raw-data-report-columns.mdx create mode 100644 src/content/includes/es/editable-formats-list.mdx create mode 100644 src/content/includes/es/expression-syntax-elements.mdx create mode 100644 src/content/includes/es/notification-types-crowdin.mdx create mode 100644 src/content/includes/es/notification-types-enterprise.mdx create mode 100644 src/content/includes/es/parser-configuration-parameters.mdx create mode 100644 src/content/includes/es/placeholders.mdx create mode 100644 src/content/includes/es/sb-file-formats.mdx create mode 100644 src/content/includes/es/skip-untranslated-strings-formats.mdx create mode 100644 src/content/includes/es/spellcheck-supported-languages.mdx create mode 100644 src/content/includes/es/srx-file-example.mdx create mode 100644 src/content/includes/es/tm-non-translatable-elements.mdx create mode 100644 src/content/includes/es/translatable-html-attributes.mdx create mode 100644 src/content/includes/es/word-counter.mdx create mode 100644 src/content/includes/fr/contribution-raw-data-report-columns.mdx create mode 100644 src/content/includes/fr/editable-formats-list.mdx create mode 100644 src/content/includes/fr/expression-syntax-elements.mdx create mode 100644 src/content/includes/fr/notification-types-crowdin.mdx create mode 100644 src/content/includes/fr/notification-types-enterprise.mdx create mode 100644 src/content/includes/fr/parser-configuration-parameters.mdx create mode 100644 src/content/includes/fr/placeholders.mdx create mode 100644 src/content/includes/fr/sb-file-formats.mdx create mode 100644 src/content/includes/fr/skip-untranslated-strings-formats.mdx create mode 100644 src/content/includes/fr/spellcheck-supported-languages.mdx create mode 100644 src/content/includes/fr/srx-file-example.mdx create mode 100644 src/content/includes/fr/tm-non-translatable-elements.mdx create mode 100644 src/content/includes/fr/translatable-html-attributes.mdx create mode 100644 src/content/includes/fr/word-counter.mdx create mode 100644 src/content/includes/pt/contribution-raw-data-report-columns.mdx create mode 100644 src/content/includes/pt/editable-formats-list.mdx create mode 100644 src/content/includes/pt/expression-syntax-elements.mdx create mode 100644 src/content/includes/pt/notification-types-crowdin.mdx create mode 100644 src/content/includes/pt/notification-types-enterprise.mdx create mode 100644 src/content/includes/pt/parser-configuration-parameters.mdx create mode 100644 src/content/includes/pt/placeholders.mdx create mode 100644 src/content/includes/pt/sb-file-formats.mdx create mode 100644 src/content/includes/pt/skip-untranslated-strings-formats.mdx create mode 100644 src/content/includes/pt/spellcheck-supported-languages.mdx create mode 100644 src/content/includes/pt/srx-file-example.mdx create mode 100644 src/content/includes/pt/tm-non-translatable-elements.mdx create mode 100644 src/content/includes/pt/translatable-html-attributes.mdx create mode 100644 src/content/includes/pt/word-counter.mdx diff --git a/src/content/docs/da/crowdin/billing/app-subscriptions.mdx b/src/content/docs/da/crowdin/billing/app-subscriptions.mdx new file mode 100644 index 00000000..57dbc156 --- /dev/null +++ b/src/content/docs/da/crowdin/billing/app-subscriptions.mdx @@ -0,0 +1,65 @@ +--- +title: App-abonnementer +description: Learn how to subscribe to paid apps on the Crowdin Store +slug: app-subscriptions +sidebar: + order: 4 +--- + +import { Steps, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import subscription from '!/crowdin/billing/app_subscription.png'; + +Crowdin Store offers various apps you can install to extend Crowdin functionality, synchronize your content stored on a CMS, and more. + + + +Nogle af de pågældende apps er gratis at benytte, mens andre er betalte. Det er nemt at skelne de betalte apps, da de alle viser den angivne abonnementspris. + +Efter installation af den betalte app, aktiveres en gratis 14-dages prøveperiode. After the free trial, you will be asked to [subscribe](#subscribing-to-paid-app). + +Afhængigt af den dato, det betalte app-abonnement aktiveres ift. det primære Crowdin-abonnement, kan første betalingsbeløb afvige fra standard app-abonnementsbeløbet. I næste faktureringscyklus indregnes app-abonnementet fuldt ud i det primære Crowdin-abonnementet. Oplysninger om alle aktive betalte app-abonnementer påføres de relevante fakturaer. + +App-abonnement + +## Abonnerer på betalt app + +Når den 14-dages prøveperiode er slut, anmodes om at abonnere for fortsat brug af den betalte app. Følg disse trin for at abonnere på den betalte app: + + + 1. Åbn den app, til hvilken der ønskes køb af et abonnement. Depending on the app type, it might be located in the Crowdin UI in the project's Integrations tab, Editor, etc. + 2. Click **Subscribe**. + 3. Der omdirigeres dernæst til betalingssiden. + 4. Udfyld alle de obligatoriske felter. + 5. Click **Proceed to payment** to complete the purchase. + + +## How App Subscriptions Work + +### Monthly Crowdin Subscription + +Er der tilmeldt et månedligt abonnement, vil betalingen for hver ny faktureringscyklus (hver måned) omfatte det primære Crowdin-abonnement og alle de betalte app-abonnementer. Er det primære Crowdin-abonnement f.eks. et Teamabonnement ($179/måned) og der abonnereres på en betalt app til $ 139/måned, vil den samlede månedlige udgift udgøre $ 318/måned. + +### Annual Crowdin Subscription + +Er der tilmeldt et årligt abonnement, debiteres de betalte app-abonnementer på den aktuelle kontosaldo sammen med de primære pseudogebyrer for Crowdin-abonnementer. Udgør det primære Crowdin-abonnement f.eks. en Team-abonnementstype ($5.400 faktureret årligt og debiteret på Crowdin-kontosaldoen som et pseudogebyr på $150/måned), og der abonnereres på en betalt app til $139/måned, vil der samlet blive debiteret $289 på kontosaldoen hver måned. + +## Håndtering af Betalte app-abonnementer + +Det er altid muligt at se aktuelt aktive betalte app-abonnementer, og, hvis ønsket, suspendere ethvert af dem. + +Følg disse trin for at suspendere abonnementet på en betalt app: + + + 1. Go to **Account Settings > Billing**. + 2. Click **Suspend** toward the app name. + + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/billing/changing-subscription-plan.mdx b/src/content/docs/da/crowdin/billing/changing-subscription-plan.mdx new file mode 100644 index 00000000..73ae9891 --- /dev/null +++ b/src/content/docs/da/crowdin/billing/changing-subscription-plan.mdx @@ -0,0 +1,83 @@ +--- +title: Abonnementsskifte +description: Upgrade or downgrade your subscription plan in Crowdin +slug: changing-subscription-plan +sidebar: + order: 2 +--- + +import { Steps, CardGrid, LinkCard, LinkButton } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import planUpgrade from '!/crowdin/billing/plan_upgrade.png'; +import notAvailableFeature from '!/crowdin/billing/not_available_feature.png'; + +Du kan til enhver tid op- eller nedgradere din abonnementstype. Visit the [Pricing page](https://crowdin.com/pricing) to compare available plans and choose the most suitable one. + +Der findes to typer opgraderinger: + +* I selve abonnementstypen – tilpasningen ved at tilføje ledere og hostede ord i en abonnementstype. +* Abonnementstyperne imellem – skift til en anden abonnementstype. + +Et lignende princip gør sig også gældende for nedgraderinger. + +Plan Upgrade + +## Enabling Advanced Features + +Afhængigt af den aktuelle abonnementstype, er visse funktioner muligvis utilgængelige. In such cases, you might notice the respective message in Crowdin UI informing you that to be able to use the feature, it's necessary to upgrade to a higher plan. + +View Pricing + +For example, if your current subscription plan is Pro, features like Advanced reports and Custom domain name will become available once you upgrade to the Team subscription plan or higher. + +Not Available Feature + +## What Happens if You Exceed Your Plan Quota + +Når den hostede ordkvote er opbrugt, sendes en e-mail fra os med en anmodning om at opgradere. Efter opbrug af abonnementskvoten resterer yderligere 10 dage til at opgradere abonnementet. Ellers suspenderes projektet for oversættere. However, you will still be able to access your account and project settings. Derudover bibeholdes alle data uændrede indtil abonnementet er opdateret. + +Det anbefales at opgradere abonnementet på forhånd, såfremt flere hostede strenge forventes uploadet snarligt. + +## Opgradering af abonnementet + +If your current subscription plan is Pro and you'd like to upgrade it by adding more hosted words, follow these steps: + + + 1. Go to the [Pricing page](https://crowdin.com/pricing). + 2. Tilpas abonnementstypen jf. aktuelle behov. + 3. Click **Upgrade**. + + +To upgrade to the Team subscription plan, follow these steps: + + + 1. Go to the [Pricing page](https://crowdin.com/pricing). + 2. Click **Upgrade** on the Team plan. + + +## Changing the Subscription from Monthly to Annual + +If you decide to switch from monthly billing to annual billing, follow these steps: + + + 1. Go to the [Pricing page](https://crowdin.com/pricing). + 2. Switch the plan type to **Annual**. + 3. Select a suitable plan. + 4. Click **Subscribe**. + + +As a result, your previous monthly subscription will be automatically cancelled, and the expiration date will be updated, considering your monthly subscription's remainder. For example, if you switched to the annual subscription in the middle of the billing cycle, the 15 days that remained will be added to your current annual subscription. + + + Read more about [Annual subscription plans](/payments-invoices/#annual-plans). + + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/billing/crowdin-credits.mdx b/src/content/docs/da/crowdin/billing/crowdin-credits.mdx new file mode 100644 index 00000000..01af2f0f --- /dev/null +++ b/src/content/docs/da/crowdin/billing/crowdin-credits.mdx @@ -0,0 +1,100 @@ +--- +title: Crowdin Credits +description: Learn how to use Crowdin Credits +slug: crowdin-credits +sidebar: + order: 3 +--- + +import { Steps, CardGrid, LinkCard, Card, Aside } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import usageStats from '!/crowdin/billing/usage_statistics.png'; +import balanceManagement from '!/crowdin/billing/balance_management.png'; + +Crowdin offers a range of additional services that can significantly improve your localization workflow while simplifying payment and service management. These services are managed directly through your Crowdin account using a dedicated balance separate from your primary subscription. This means you don't need to register additional accounts to access AI models or translation vendors, such as Crowdin Language Services. By consolidating payments in one place, you gain greater control over your localization resources and expenses, ensuring seamless workflow integration. + +## Available Services + +Crowdin can manage the following paid services without the need to register separate accounts. + + + + Improve localization workflow by using OpenAI, Google Gemini, and other providers. + + + + Order professional translation and proofreading services with Crowdin Language Services. + + + + +## Using Crowdin Credits + +Crowdin Credits simplifies the use of paid tools like AI models and translation vendors by handling payments through a dedicated balance within your Crowdin account. This centralizes balance management and provides a clear overview of your spending. + +In the **Crowdin Credits** section, you can: + +* **Manage Balance**: Add funds to your dedicated balance for the paid services you use. +* **Set Balance Warnings**: Receive notifications when your balance is low. +* **Track Usage**: View spending with detailed usage statistics. + +To start using Crowdin Credits, [add funds to your account balance](#adding-funds-to-account-balance) and activate the **managed by Crowdin** option for the services you want to use in your projects. + +## Managing Your Dedicated Balance + +You can manage your Crowdin Credits balance by adding funds and setting up notifications about low balance. + +Balance Management + +### Adding Funds to Account Balance + +To add funds to your balance, follow these steps: + + + 1. Open your **Account Settings** and go to the **Billing** tab. + 2. Locate the **Crowdin Credits** section. + 3. Enter the desired amount in the **Add Funds to Balance** field. + 4. Click **Continue to Payment** to proceed to the checkout page, where you can complete the payment. + + + + +### Setting Balance Warning Threshold + +To ensure uninterrupted operation of paid services, you can set the preferred amount in the **Balance warning threshold** field so that when your balance reaches this point, you'll automatically receive a notification. + +To set up low-balance notifications, follow these steps: + + + 1. Open your **Account Settings** and go to the **Billing** tab. + 2. Locate the **Crowdin Credits** section. + 3. Enter your desired threshold amount in the **Balance warning threshold, $** field. + 4. Click **Save** to confirm your settings. + + +## Usage Statistics + +The **Usage Statistics** section provides a comprehensive visual analysis of your usage costs through an interactive graph, allowing you to review detailed statistics and track spending on each service based on your selected time period. In addition to the graph, the **Used during the selected time period** field shows the total amount spent during the chosen period. + +The graph displays usage costs for each service from the [available categories](#available-services). Hover over any bar to see a breakdown of the expenses per service for that day, month, or year. + +Depending on the selected date range, each stacked bar represents: + +* **One day** for ranges up to **2 months**. +* **One month** for ranges up to **24 months**. +* **One year** for ranges over **24 months**. + +You can also focus on specific services by hovering over the service titles under the graph. To hide certain services from the graph, click on their names. + +Usage Statistics + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/billing/payments-invoices.mdx b/src/content/docs/da/crowdin/billing/payments-invoices.mdx new file mode 100644 index 00000000..66fde8f9 --- /dev/null +++ b/src/content/docs/da/crowdin/billing/payments-invoices.mdx @@ -0,0 +1,79 @@ +--- +title: Betalinger og Fakturaer +description: Learn how payments work in Crowdin and how to download invoices +slug: payments-invoices +sidebar: + order: 1 +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import downloadInvoice from '!/crowdin/billing/download_invoice.png'; +import downloadedInvoice from '!/crowdin/billing/downloaded_invoice.png'; + +How you will be charged for Crowdin services depends on the subscription type you choose. There are two options available: Monthly and Annual. + +### Monthly Plans + +Monthly subscriptions use a recurring payment model. Once you subscribe to a monthly plan, your account limits are set according to the selected plan, and you’ll be instantly charged for the first billing cycle (one month). You will then be automatically charged again at the beginning of each following billing cycle. + +If you upgrade or downgrade in the middle of the monthly billing cycle, your account limits update instantly. Starting with the next billing cycle, you'll be automatically charged the rate of the new plan. + +### Annual Plans + +Annual subscriptions are paid upfront for the entire year. This payment is applied to your Crowdin account as a balance. Each month, Crowdin deducts the corresponding amount from this balance. + +#### Changing Your Annual Subscription Plan + +As your project needs change, you can upgrade or downgrade at any time. When you change your plan, the remaining balance from your previous subscription is prorated and applied to the new subscription cost at the start of the next billing cycle. + +F.eks.: + +* If you purchased an annual Team plan and later downgrade to Pro, your balance will last longer than one year. +* Conversely, if you upgrade from Pro to Team, your balance may be depleted sooner. + +#### Renewal of Annual Subscriptions + +The renewal process depends on your chosen payment method: + +* **Subscriptions purchased via FastSpring (card payments)** automatically renew each year. Crowdin sends email reminders two months and one month before your renewal date. FastSpring also sends a notification one day before your card is automatically charged for the renewal. + +* **Subscriptions purchased via other payment methods (e.g., invoice)** do **not** renew automatically. Crowdin sends email reminders two months and one month before your subscription ends, prompting you to manually purchase a new subscription to continue using Crowdin. + +## Faktura-download + +Invoices represent completed transactions and can be downloaded directly from Crowdin. + +Følg disse trin for at downloade fakturaer i Crowdin: + + + 1. Go to **Account Settings > Billing**. + 2. Choose the needed invoice from the list and click **Download**. + + +Download faktura + + + +Der kan også downloades fakturaer via betalingshåndteringspartneren FastSpring. + + + 1. Go to the [FastSpring Account Management page](https://crowdin.onfastspring.com/account). + 2. For at logge ind, angiv e-mailadressen brugt ifm. købet af Crowdins-abonnementet. + 3. Click **Continue**. + + +If you have active Crowdin app subscriptions, they'll appear in the downloaded invoice next to your primary Crowdin subscription. + +Downloadet faktura + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/billing/settings.mdx b/src/content/docs/da/crowdin/billing/settings.mdx new file mode 100644 index 00000000..4689a781 --- /dev/null +++ b/src/content/docs/da/crowdin/billing/settings.mdx @@ -0,0 +1,56 @@ +--- +title: Faktureringsindstillinger +description: Update your billing information and payment method +slug: billing-settings +sidebar: + order: 5 +--- + +import { Steps, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import billingSettings from '!/crowdin/billing/billing_settings.png'; + +Crowdin benytter FastSpring-tjenesten til betalingsbehandling. Via FastSpring-kontohåndteringssiden kan indstillinger, såsom betalingsmetoder, faktureringsmail mv., håndteres. Der kan også ses abonnementer, faktureringsdatoer og tidligere fakturaer. + +## Opdatering af betalingsoplysninger + +Følg disse trin for at opdatere aktuelle betalingsoplysninger: + + + 1. Go to the [FastSpring Account Management page](https://crowdin.onfastspring.com/account). + 2. For at logge ind, angiv e-mailadressen brugt ifm. købet af Crowdins-abonnementet. + 3. Click **Continue**. + 4. Click **Edit**. + 5. Ret felterne med dine faktureringsoplysninger. + 6. Gem ændringer. + + +De opdaterede faktureringsoplysninger anvendes herefter ved fremtidige betalinger. + +Faktureringsindstillinger + +## Opdatering af betalingsmetode + +Betalingsmetoden anvendt til Crowdin-abonnementet kan ændres. + +Følg disse trin for at opdatere betalingsmetoden: + + + 1. Go to the [FastSpring Account Management page](https://crowdin.onfastspring.com/account). + 2. For at logge ind, angiv e-mailadressen brugt ifm. købet af Crowdins-abonnementet. + 3. Click **Continue**. + 4. Click **Add Payment Method**. + 5. Angiv de nye betalingskortoplysninger. + 6. Gem ændringer. + + +Sæt den nye betalingsmetode som standard for at sikre, at den bruges ved fremtidige debiteringer. + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/getting-started/account/messages.mdx b/src/content/docs/da/crowdin/getting-started/account/messages.mdx new file mode 100644 index 00000000..da8ae530 --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/account/messages.mdx @@ -0,0 +1,71 @@ +--- +title: Beskeder +description: Communicate with translation project members +slug: messages +sidebar: + order: 1 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import all from '!/crowdin/getting-started/account/messages_all.png'; +import createNewSearch from '!/crowdin/getting-started/account/messages_create_new_search.png'; +import dialogOptions from '!/crowdin/getting-started/account/messages_dialog_options.png'; +import messageOptions from '!/crowdin/getting-started/account/messages_message_options.png'; + +Use **Conversations** to communicate with other project members. Create one-to-one or group conversations, each with a subject to help you easily navigate between chats. + +All conversations + +## Creating a New Conversation + +Følg disse trin for at oprette en ny samtale: + + + 1. Open **Conversations**. + 2. Click **Create Conversation**. + 3. Filtrér brugere efter: + * projekt, rolle, sprog + * recent contacts – users you already have conversations with + 4. Select the users you want to message. + 5. Click **Go**. + + +Create new conversation + +## Managing Conversations + +To manage a conversation, click and choose one of the following options: + +* *Change Subject* – displayed to all participants to help organize conversations. +* *Mute Conversation* – stop receiving notifications about new messages. +* *Add Users* – participants from common projects. A new conversation will be created with the new user set. + +Dialog options + + + +## Beskeder + +To manage a message, hover over it, click and select the needed option. The following actions are available: + +* *Share* – forward the message: + * i den samme samtale + * to another conversation + * to a user you’ve previously messaged +* *Mark Unread* – mark the message as unread to return to it later. +* *Edit* – available for your own messages. +* *Delete* – available for your own messages. +* *Report Spam* – available for messages from others. + +Message options + +## Ulæste beskeder + +Unread messages are indicated by a counter displayed: + +* next to each conversation’s subject, showing the number of unread messages in that conversation +* at the top of the page next to the *Messages* icon, showing the total number of unread messages across all conversations diff --git a/src/content/docs/da/crowdin/getting-started/account/notifications.mdx b/src/content/docs/da/crowdin/getting-started/account/notifications.mdx new file mode 100644 index 00000000..5d4e40d4 --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/account/notifications.mdx @@ -0,0 +1,310 @@ +--- +title: Notifikationer +description: Get notified about the new events that happen in Crowdin +slug: account-notifications +sidebar: + order: 0 +tableOfContents: + minHeadingLevel: 2 + maxHeadingLevel: 3 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import { Icon } from 'astro-icon/components'; +import slackAuthorize from '!/crowdin/getting-started/account/slack_authorize.png'; +import slackConnect from '!/crowdin/getting-started/account/slack_connect.png'; +import slackCrowdinNotifications from '!/crowdin/getting-started/account/slack_crowdin_notifications.png'; +import customNotificationsSetUp from '!/crowdin/getting-started/account/custom_notifications_set_up.png'; +import customNotificationsPayload from '!/crowdin/getting-started/account/custom_notifications_custom_payload.png'; +import customNotificationsEditDelete from '!/crowdin/getting-started/account/custom_notifications_edit_delete.png'; + +Crowdin offers several types of notifications to meet the different needs of users, such as the following: + +* *Project Updates*: Notify users of changes to the project, such as new content to translate or updates to existing content. +* *Translation Activity*: Notify users of new translations, approvals, or comments on translations. +* *Task Management*: These notifications inform users about new tasks, deadlines and task completions. +* *Team Communication*: These alerts notify users of messages and discussions within the project. + +To see the notifications, click on the bell icon in the top right corner of the page. + + + +## Slack-integration + +With updates sent directly to Slack, you'll instantly know what's happening in the Crowdin projects you manage or contribute to. After integrating your Crowdin account with Slack, select the notifications you'd like to receive, and the Crowdin bot will send them as direct messages. + + + +To receive Crowdin notifications via Slack, follow these steps: + + + 1. Click on your profile picture in the upper-right corner and select **Settings**. + 2. Switch to the **Notifications** tab and click **Connect Slack**. Connect Slack + 3. Godkend forbindelsen med Crowdin fra Slack. Authorize Slack + 4. Go back to Crowdin and select the notifications you want to receive in Slack. + + + + Read More about [Global Notification Settings](/account-settings/#notifications). + + +You will receive the selected types of notifications as direct messages from the Crowdin bot. + +Crowdin Notifications in Slack + +Man kan når som helst deaktivere notifikationer og afbryde Slack fra Crowdin. + +## Tilpassede notifikationer + +Custom Notifications allow you to receive information about the new events that happen in Crowdin. Når tilpassede notifikationer opsættes for kontoen, begynder Crowdin at sende POST-anmodninger med data til den tilpassede notifikations-URL via HTTP. + +### Brugsstudier + +Tilpassede notifikationer kan opsættes for at opbygge integrationer med tjenesterne eller med en backend. F.eks.: + +* Opsæt tilpassede notifikationer for at sende notifikationer til det anvendte system. +* Pass information to the third-party services with the specific request requirements (e.g., content type, headers, payload). +* Opret tilpassede integrationer med Crowdin. + +### Configuring + +Følg disse trin for at opsætte tilpassede notifikationer i Crowdin: + + + 1. Open your **Account Settings** and go to the **Notifications** tab. + 2. In the **Notifications Custom Channel** section, click **Set Up Notifications Custom Channel** to start configuring your custom notifications. + + +Flg. oplysninger skal angives for at opsætte tilpassede notifikationer: + +* URL'en, hvortil callback skal sendes. +* The content type for the POST request method (`multipart/form-data`, `application/json`, or `application/x-www-form-urlencoded`). + +Alternativt kan der føjes særlige headers til tilpassede notifikationer. De kan bruges til ekstra sikkerhed som en godkendelsesmetode og meget mere. Tilføjes f.eks. headers, kan det tilpassede notifikationsendepunkt bekræfte dem og sikre, at oplysninger kommer fra Crowdin. + +When configuring custom notifications, click **Test notification** to see how your application will react to that call. Once finished with the configuration, click **Save**. + +Opsætning af tilpassede notifikationer + +Depending on your approach to custom notification management, you might need to add dedicated Crowdin IP addresses to your firewall to allow Crowdin to open the pre-configured custom notification URLs. + + + Read more about [IP Addresses](/developer/ip-addresses/). + + +### Tilpassede payloads + +You can modify the custom notification payload to add and organize the elements as your system requires. To get informative and user-friendly notifications, make sure to include the `{{notification-message}}` placeholder in your payload. + +Tilpasset payload + +### Begivenhedstyper + +Once you've configured custom notifications, you can select the event types you’d like to receive the notifications about in the **Custom** column. + +You can configure custom notifications for the following event types: + + + +### Manage Custom Notifications + +You can edit or delete custom notifications in the **Notifications Custom Channel** section of the **Notifications** tab. + +Manage Custom Notifications + +### Configuring for Discord {#discord} + +To set up Custom Notifications from Crowdin in Discord, follow the steps below. + +#### Creating Discord Account + +If you don't have a Discord account already, you will need to [create one](https://discord.com/register). + + + +Download and install the [Discord desktop app](https://discord.com/download). Alternatively, you may use the Discord web interface for further configurations. + +#### Creating Discord Webhook + +To receive notifications in Discord, you need to create a webhook. Once finished, copy the webhook URL. You'll need it for configurations on the Crowdin side. + + + Read more about [creating a Discord webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). + + +#### Configuring Custom Notifications Channel {#custom-channel-discord} + + + 1. Open your **Account Settings > Notifications**. + 2. Click **Set Up Notifications Custom Channel**. + 3. In the appeared dialog, paste the Discord webhook URL in the **URL** field. + 4. Select **application/json** for the **Content type**. + 5. Paste the following payload in the **Payload** field: + ```json + { + "content": "{{notification-message}}" + } + ``` + 6. Click **Test notification** to receive a test message from Crowdin to your Discord channel. + 7. Once finished with the configuration, click **Save**. + + +### Configuring for Google Chat {#google-chat} + +To set up Custom Notifications from Crowdin in Google Chat, follow the steps below. + +#### Creating Google Account + +If you already have a Google account, it gives you access to many Google products, including Google Chat. If you don't have a Google account, you will need to [create one](https://accounts.google.com/signup). + +Download and install the [Google Chat desktop app](https://chat.google.com/download/). Alternatively, you may use the Google Chat web interface for further configurations. + +#### Creating Google Chat Webhook + +To receive notifications in Google Chat, you need to create a webhook. Once finished, copy the webhook URL. You'll need it for configurations on the Crowdin side. + + + Read more about [creating a Google Chat webhook](https://developers.google.com/chat/how-tos/webhooks#step_1_register_the_incoming_webhook). + + +#### Configuring Custom Notifications Channel {#custom-channel-google-chat} + + + 1. Open your **Account Settings** and go to the **Notifications** tab. + 2. Click **Set Up Notifications Custom Channel**. + 3. In the appeared dialog, paste the Google Chat webhook URL in the **URL** field. + 4. Select **application/json** for the **Content type**. + 5. Paste the following payload in the **Payload** field: + ```json + { + "text": "{{notification-message}}" + } + ``` + 6. Click **Test notification** to receive a test message from Crowdin to your Google Chat channel. + 7. Once finished with the configuration, click **Save**. + + +### Configuring for Microsoft Teams {#microsoft-teams} + +To set up Custom Notifications from Crowdin in Microsoft Teams, follow the steps below. + +#### Creating Microsoft Teams Account + +If you don't have a Microsoft Teams account already, you will need to [create one](https://go.microsoft.com/fwlink/p/?linkid=2123761\&lm=deeplink\&lmsrc=NeutralHomePageWeb\&cmpid=FreemiumSignUpHero). + +Download and install the [Microsoft Teams desktop app](https://www.microsoft.com/en-us/microsoft-teams/download-app). Alternatively, you may use the Microsoft Teams web interface for further configurations. + +#### Creating Microsoft Teams Webhook + +To receive notifications in Microsoft Teams, you need to create a webhook. Once finished, copy the webhook URL. You'll need it for configurations on the Crowdin side. + + + Read more about [creating a Microsoft Teams webhook](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook). + + +#### Configuring Custom Notifications Channel {#custom-channel-microsoft-teams} + + + 1. Open your **Account Settings** and go to the **Notifications** tab. + 2. Click **Set Up Notifications Custom Channel**. + 3. In the appeared dialog, paste the Microsoft Teams webhook URL in the **URL** field. + 4. Select **application/json** for the **Content type**. + 5. Paste the following payload in the **Payload** field: + ```json + { + "text": "{{notification-message}}" + } + ``` + 6. Click **Test notification** to receive a test message from Crowdin to your Microsoft Teams channel. + 7. Once finished with the configuration, click **Save**. + + +#### Per-project notifications with the Microsoft Teams App + +Custom notifications allow you to receive your account-specific notifications from Crowdin. If you'd like to receive notifications related to some specific project you manage in Crowdin, feel free to use our [Microsoft Teams app](https://store.crowdin.com/teams). + +### Configuring for Telegram {#telegram} + +To set up Custom Notifications from Crowdin in Telegram, follow the steps below. + +#### Oprettelse af en Telegram-konto + +Haves en Telegram-konto ikke, vil en sådan skulle oprettes via en mobil. Telegram bruger telefonnummeret som primær legitimationsoplysninger, også ifm. kontologin. + +So firstly, download and install the Telegram app using [Android](https://telegram.org/dl/android) or [iOS](https://telegram.org/dl/ios). +Once signed up, you may use the [Telegram web interface](https://telegram.org/dl/webogram) with a PC or Mac to simplify further configurations, but this part is up to you. + +#### Oprettelse af en Telegram-bot + +For at modtage notifikationer i Telegram, skal en bot først oprettes. Efter oprettelse, forsynes man med en bots API-token. Husk at gemme dette, da det skal bruges senere. + + + Read more about [creating a Telegram bot](https://core.telegram.org/bots#creating-a-new-bot). + + +#### Opsætning af Telegram-kanal + +The next step is to create a public Telegram channel which will be used to get notifications from Crowdin. Later you'll be able to change the channel's privacy if needed. + +Følg disse trin for at oprette en Telegram-kanal: + + + 1. Åbn Telegram på enheden. + 2. Click on the pen icon and select **New Channel**. + 3. Name your channel in the **Channel name** field. + 4. *(Optional)* Specify a channel description. + 5. *(Optional)* Click on the camera icon to set a display picture for your channel. + 6. Click **Next** in the top-right corner. + 7. Select **Public** channel type. + 8. Angiv et permanent link til kanalen. Dette link vil folk kunne bruge til at søge efter og tilmelde sig kanalen. + 9. Click **Next** in the top-right corner. + 10. *(Optional)* In this step, Telegram will ask you to add subscribers to your Telegram channel. Vælg de kontakter, som ønskes tilføjet, herunder den nyoprettede bot (sørg for at bot'en har Admin-tilladelser). Man kan vælge ikke at tilføje medlemmer pt., da dette kan gøres senere. + 11. Click **Next** in the top-right corner to continue and create your channel on Telegram. + + +#### Configuring Custom Notifications Channel {#custom-channel-telegram} + + + 1. Open your **Account Settings** and go to the **Notifications** tab. + 2. Click **Set Up Notifications Custom Channel**. + 3. In the appeared dialog, specify the **URL** in the following format: `https://api.telegram.org/bot{bot_API_token}/sendMessage`. + 4. Select **application/json** for the **Content type**. + 5. Paste the following payload in the **Payload** field: + ```json + { + "chat_id": "{public_chat_id}", + "text": "{{notification-message}}" + } + ``` + where `{public_chat_id}` – Your public chat id you specified for your channel link during the Telegram channel configuration. + 6. Click **Test notification** to receive a test message from Crowdin to your Telegram channel. + 7. Once finished with the configuration, click **Save**. + + +#### Skift af Telegram-kanaltype + +If you'd like to make your Telegram channel private and keep receiving notifications from Crowdin, follow these steps: + + + 1. First of all you need to acquire your Telegram channel's original chat id by visiting: `https://api.telegram.org/bot{bot_API_token}/sendMessage?chat_id={public_chat_id}&text=Test` + 2. Man får et svar i et JSON-format indeholdende ens Telegram-kanals oprindelige chat-id. + 3. In Crowdin, open your **Account Settings** and go to the **Notifications** tab. + 4. Click **Set Up Notifications Custom Channel**. + 5. In the appeared dialog, modify the **URL** by replacing the chat id with the one received in the JSON response above. + 6. Click **Save**. + 7. Åbn kanalen i Telegram. + 8. Click on your channel name and click **Edit**. + 9. Click **Channel Type**. + 10. Select **Private** and click **Done**. + + + diff --git a/src/content/docs/da/crowdin/getting-started/account/settings.mdx b/src/content/docs/da/crowdin/getting-started/account/settings.mdx new file mode 100644 index 00000000..abdc8cad --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/account/settings.mdx @@ -0,0 +1,520 @@ +--- +title: Kontoindstillinger +description: View and manage settings for your Crowdin account +slug: account-settings +sidebar: + label: Indstillinger + order: 3 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import { Icon } from 'astro-icon/components'; +import introAccountSettings from '!/crowdin/getting-started/account/intro_account_settings.png'; +import languageRegion from '!/crowdin/getting-started/account/account_settings_language_region.png'; +import theme from '!/crowdin/getting-started/account/account_settings_theme.png'; +import privateProfile from '!/crowdin/getting-started/account/account_settings_private_profile.png'; +import disableNotifications from '!/crowdin/getting-started/account/account_settings_disable_notifications.png'; +import projectNotifications from '!/crowdin/getting-started/account/account_settings_project_notifications.png'; +import twoFactorAuthenticationQRCode from '!/crowdin/getting-started/account/account_settings_2fa_qr_code.png'; +import twoFactorAuthenticationRecoveryCodes from '!/crowdin/getting-started/account/account_settings_2fa_recovery_codes.png'; +import sessions from '!/crowdin/getting-started/account/account_settings_sessions.png'; +import tokens from '!/crowdin/getting-started/account/account_settings_tokens.png'; +import sudoModeConfirmingCredentials from '!/crowdin/getting-started/account/sudo_mode_confirming_credentials.png'; +import oauthAppsNewApp from '!/crowdin/getting-started/account/oauth_apps_new_app.png'; +import ratesSettings from '!/crowdin/getting-started/account/account_settings_rates.png'; +import vendors from '!/crowdin/translation-process/vendors_connect.png'; + +Manage your Crowdin account settings, including profile details, notification preferences, security settings, and more using the **Account Settings** page. To access it, click on your profile picture in the upper-right corner and select **Settings**. + +## Profil + +In the **Profile** tab, you can manage your personal details, language preferences, appearance settings, and privacy options. + +Profil + +### Profile Picture + +Upload a profile picture by dragging a file to the designated area or selecting a file from your device. You can remove the picture anytime. + +### General Information + +Update your full name, username, email address, company, job title, pronouns, and a brief description about yourself. + +Your email address is not publicly visible and is used for account-related notifications like password resets, project updates, and invitations. You can also set up [additional login methods](#auth-providers) for easier access to your account. + +### Language & Region + +Set your preferred Crowdin interface language, timezone, and time format (12-hour or 24-hour). Additionally, specify preferred languages for displaying project target languages, giving them priority in the target languages list. + +Language & Region + +### Appearance + +Choose how Crowdin appears on your device. You can select a Light or Dark theme or sync it with your system settings to switch automatically between day and night modes. + +Farvetema + +### Fortrolighed + +Enable **Private Profile** to hide the **Projects** and **Activity** tabs from other users visiting your profile page. When enabled, visitors will see a *This profile is private* message instead of your project list and recent actions. + +Denne profil er fortrolig + +Følg disse trin for at gøre profilen fortrolig: + + + 1. Open your **Account Settings** and go to the **Profile** tab. + 2. Scroll down to the **Privacy** section. + 3. Select **Private Profile**. + + +### Migrering til Enterprise + +You can migrate your Crowdin account data, including projects, Translation Memories, and Glossaries, to a new or existing Crowdin Enterprise organization. + + + Read more about [Migration to Crowdin Enterprise](/enterprise/migrating-to-crowdin-enterprise/). + + +### Delete Account + +Af sikkerhedshensyn kan vi ikke slette en konto på vegne af brugeren. Brugeren skal have adgang til Crowdin-kontoen, for at kunne slette den. + +Følg disse trin for at slette en konto: + + + 1. Open your **Account Settings** and go to the **Profile** tab. + 2. Scroll down to the **Remove Account** section. + 3. Click **Remove Account**. + + + + +Once your account is deleted, your translations, comments, terms, and votes will remain in the system but will appear as added by a **Removed User**. + +## Account + +In the **Account** tab, you can manage your password, enhance account security with security keys and passkeys, set up two-factor authentication, manage linked authentication providers, and review active sessions. You can also verify new devices and enable sudo mode for additional security during sensitive actions. + +### Password + +In the **Password** section, you can change your current password by clicking **Change Password** and following the instructions. If your account was created through an authentication provider like Google or Facebook, you can create a new password to log in without using these providers. + +##### Password Strength + +To ensure the highest level of account security, Crowdin uses an [entropy score](https://en.wikipedia.org/wiki/Password_strength#Entropy_as_a_measure_of_password_strength) to evaluate how difficult it would be for a computer to guess your password. We do not rely on simple rules like *must contain one number*. Instead, we calculate complexity based on length and character unpredictability. + +As you type, a colored bar below the password field fills up and changes color to indicate the password's strength. + +**Password Acceptance Policy:** + +Crowdin prohibits the use of passwords categorized as **Very weak** and **Weak**. + +If you attempt to save a password with one of these ratings, the system will automatically clear the password field and display the error message: **Please choose a more secure password.** + +Refer to the table below to understand the security levels and visual indicators: + +| Strength | Visual Indicator | Status | Beskriveslse | +| :------------ | :--------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------- | +| **Very weak** | Red bar | **Rejected** | **Risky.** Typically a common dictionary word that can be guessed instantly. | +| **Weak** | Orange bar | **Rejected** | **Vulnerable.** Often a common word with a simple modification. Vulnerable to standard guessing attacks. | +| **Medium** | Yellow-Green bar | **Accepted** | **Moderate.** Provides basic protection against unthrottled online attacks. | +| **Strong** | Light Green bar | **Accepted** | **High.** Difficult to guess. Offers solid protection against most attacks and standard cracking attempts. | +| **Secure** | Green bar | **Accepted** | **Highest.** Mathematically complex and very unpredictable. Provides the best protection against sophisticated attacks. | + + + +### Security Keys and Passkey + +In the **Security Keys and Passkey** section, you can register a physical security key or passkey to add an extra layer of protection to your account. This key works alongside your password to verify your identity during login. + +### Authenticator app + +In the **Authenticator app** section, you can enable two-factor authentication (2FA) to add an additional layer of security to your account. Use an authenticator app on your mobile device or computer to generate one-time verification codes. + +To enable two-factor authentication, follow these steps: + + + 1. Open your **Account Settings** and go to the **Account** tab. + 2. Click **Enable** in the **Authenticator app** section. + 3. Using the **Google Authenticator** app on your mobile device, scan the QR code on the screen. + 4. Enter the 6-digit verification code generated by your authenticator app, then click **Next**. Authenticator app + 5. Download genopretningskoder, så disse kan benyttes, såfremt mobilenheden er utilgængelig. Recovery codes + + +### Resetting Two-Factor Authentication + +If you've lost access to your authenticator app and your recovery codes, you can request a 2FA reset to regain access to your account. + +To request a 2FA reset, follow these steps: + + + 1. On the Crowdin login page, enter your email (or username) and password. + 2. On the **Two-Factor Authentication** screen, click **Request two-factor authentication reset**. + 3. You will be redirected to the **Reset 2FA methods** page. To verify your identity, provide as many verification factors as possible: + * **Device verification:** This step is automatic. Crowdin checks if you have previously used this browser to log into your account. + * **Verify email address:** Click **Send code**, check your email for a verification code, and enter it. + * **Verify personal access token:** If you have a Personal Access Token (PAT) saved from your account, paste it into the field. + 4. Once you have provided the available verification factors, click **Submit**. + + +Your reset request will be sent to the Crowdin support team for review. You will receive an email confirming that your request has been received. + + + + + +### New Device Verification + +Enable **New Device Verification** to add an extra security step when logging in from a new device. Crowdin will send a verification code to your registered email address to confirm your identity before allowing access from the new device. Once you successfully log in, the device will be added to the list of trusted devices. + + + +After enabling this feature, you will see a list of trusted devices. You can remove any device from the list by clicking the **Remove** button. Alternatively, you can remove all trusted devices by clicking **Remove all devices**. + +### Auth Providers + +In the **Auth Providers** section, you can manage the accounts linked to your Crowdin account. These connections allow you to log in with a single click using providers like Google, Facebook, GitHub, X, GitLab, and Crowdin Enterprise. + +### Sessioner + +In the **Sessions** section, you can view the list of devices that have accessed your Crowdin account, including details like location, last activity date, IP address, and device type. Revoke individual sessions that you don't recognize, or revoke all except your current session by clicking **Revoke All**. + +Sessioner + +### Sudo-tilstand + +Crowdin asks you to confirm your password before performing sensitive actions, such as changing your password, managing email or authentication settings, and deleting your account. Once confirmed, you can perform these actions without re-authenticating for the next five minutes. + +Bekræftelse af legitimationsoplysninger + +## Notifikationer + +In the **Notifications** tab, you can customize which notifications you receive and how they are delivered. This includes setting preferences for different notification channels and configuring rules for specific projects. + +### Channels & Events + +Crowdin provides several channels for notifications: + +* I-app (Crowdin) +* E-mail +* Slack +* Tilpasset + +To activate a channel, select the checkbox next to its name. You can then customize notifications for each channel by selecting the events you want to be notified about. + +Available notification events include: + + + +### Slack-notifikationer + +To use Slack for notifications, click **Connect Slack** and authorize Crowdin to integrate with Slack. After completing the setup, you can choose which notifications to receive in Slack. + + + Read more about [Slack Integration](/account-notifications/#slack-integration). + + +### Product Updates + +Subscribe to the [Crowdin blog](https://crowdin.com/blog) to receive key product updates and localization best practices directly in your inbox. Stay informed about the latest features and improvements. + +### Tilpassede notifikationer + +To use a custom channel for notifications, click **Set Up Notifications Custom Channel** and follow the setup instructions to configure it. After setup, you can select which notifications to send to your custom channel. + + + Read more about [Custom Notifications](/account-notifications/#custom-notifications). + + +### Standardnotifikationer + +By default, Crowdin sends updates on new events via email and in-app notifications. You can adjust these settings as needed. + +### Deaktivering af notifikationer + +For at deaktivere notifikationer, ryd afkrydsningsfeltet ved siden af notifikationstypen. You can also clear the checkbox on the channel name to disable all notification types. Once all the boxes below are cleared, you won't receive any notifications from that channel. + +Deaktivering af notifikationer + +### Projektnotifikationsregler + +Notifikationspræferencer kan også opsætte på projektniveau: + +* **Global**: Notifications selected for global settings. +* **Mentions only**: Only when @mentioned. +* **Mute project**: Turn off notifications. + +Project Notifications + +## Fakturering + +The **Billing** tab in your **Account Settings** becomes available as soon as you subscribe to one of Crowdin's plans. Within this tab, you can manage your subscription plan, view payment history, handle app subscriptions, manage the Crowdin Credits balance for paid services, and set the daily balance warning threshold for CDN Distributions. + +### Current Plan + +Review your current subscription plan, which includes details such as the plan name, the date of the last plan change, and your current usage limits (e.g., managers, projects, words). Additionally, you can view the next charge amount and the expiration date of your plan. + + + Read more about [Changing Subscription Plan](/changing-subscription-plan/). + + +### App-abonnement + +Crowdin Store offers various apps that you can install to extend the functionality of Crowdin, synchronize your content stored in a CMS, and more. Nogle af de pågældende apps er gratis at benytte, mens andre er betalte. + + + Read more about [App Subscriptions](/app-subscriptions/). + + +### Crowdin Credits + +Top up your Crowdin Credits balance for paid services (AI models and Crowdin Language Services), set a balance warning threshold, and view usage statistics for each service. + + + Read more about [Crowdin Credits](/crowdin-credits/). + + +### CDN Distributions + +Set a daily balance warning threshold for CDN Distributions and view the usage statistics. + + + Read more about [CDN Distributions](/cdn-distributions/). + + +### Payments + +Access payment history and download invoices. + + + Read more about [Payments and Invoices](/payments-invoices/) and [Billing Settings](/billing-settings/). + + +## API + +In the **API** tab, you can create personal access tokens for authorization when working with the Crowdin API and view your account's API call history. + +### Personlige Adgangstegn + +Personal access tokens serve as an alternative to passwords for authorizing third-party applications and scripts in Crowdin. The token list displays each token's **Name**, a partially masked **Token**, the **Created** date, information on its **Last Usage**, and when it **Expires**. If a token has an expiration date, it becomes inactive once the date is reached, but remains in your list for reference. + +Personlige Adgangstegn + + + +### Brugsstudier + +You’ll need a personal access token for authorization in the following cases: + +* Automating localization workflows via the [Crowdin API](/developer/api/). +* Managing and syncing localization resources with the [Crowdin CLI](https://crowdin.github.io/crowdin-cli/). +* Pushing design content for translation from design tools (i.e., Figma, Sketch, Adobe XD). +* Uploading and downloading content using IDE plugins (i.e., Visual Studio Code, Android Studio). +* And other integrations or tools that require secure access to your Crowdin account. + +### Oprettelse af et Personligt adgangstoken + +When creating a new personal access token, you can give it a name as a reminder of what it's used for, set an expiration date, select [specific scopes](/developer/understanding-scopes/), and, if needed, limit the visibility of resources for the selected scopes using the **Granular access** option. For example, you can create a token that should only interact with a specific project and have no access to others. As a result, only that selected project will be returned when an API request is made to retrieve a list of all projects. + +Følg disse trin for at oprette et nyt personligt adgangs-token: + + + 1. Open your **Account Settings** and go to the **API** tab. + 2. Click **New Token**. + 3. In the appeared dialog, enter a name to help you identify the token later. + 4. Set an expiration date for the token. By default, **Expires** is set to **Never**. + 5. Select the required scopes. + 6. *(Optional)* To limit access to specific resources, click **Granular access** and select the required scopes and related resources. + 7. Klik på **Opret**. + + +After creating a new token, be sure to copy and save it immediately. For security reasons, it will not be shown again. You can create as many personal access tokens as needed. + + + +### Ophævelse af et Personligt adgangstoken + +Revoke a personal access token if it’s no longer needed or you suspect it was compromised. + +Følg disse trin for at ophæve et personligt adgangstoken: + + + 1. Open your **Account Settings** and go to the **API** tab. + 2. Find the token in the list and click **Revoke** next to it to remove its access. + + +### Kaldhistorik + +In the **Calls History** section, you can view a list of API calls associated with your Crowdin account. Use the filter to view all, successful, or unsuccessful calls, and select specific action groups or individual actions within them. The **Application Name** field allows you to search for calls related to a particular application. + +## Apps + +In the **Apps** tab, manage the Crowdin Apps installed in your Crowdin account. You can view and manage currently installed apps, search for specific ones, and use the **Edit** or **Uninstall** options on each app. + +By default, installed apps are sorted by installation date, with the most recently installed apps shown first. You can also sort apps using the available table column sort options. + +Click **Install from store** to add apps developed by Crowdin and other developers from the Crowdin [Store](https://store.crowdin.com/). Alternatively, click **Install Private App** to manually install custom apps of your own development. + + + Read more about [Installing Crowdin Apps](/developer/crowdin-apps-installation/#installation-in-crowdin). + + +## Bots + +Manage bots for custom applications that interact with Crowdin. Bots allow applications to perform specific actions on your behalf within the platform. You can add Bots from the [Crowdin Store](https://store.crowdin.com/tags/agent) and manage their permissions to projects and resources as needed. + +## Sikkerhedslog + +The **Security Log** tab lets you track important events (including event type, used device, IP address, and date) that happen with your Crowdin account. + +Sikkerhedsloggen omfatter begivenheder såsom logins, adgangskode- og brugernavnsskift mv. + +## Webhooks + +In the **Webhooks** tab, you can configure account webhooks to receive notifications about key events that happen in your Crowdin account. Once set up, Crowdin will send POST or GET requests with data to the specified webhook URL via HTTP when these events occur. + +You can create account webhooks for the following event types: + +* Projekt oprettet +* Projekt slettet + + + Read more about [Webhooks](/webhooks/). + + + + +## OAuth + +In the **OAuth** tab, you can create an OAuth Application that could be used to make authorized requests to Crowdin API or as a Single Sign-On service and manage connected OAuth apps you've authorized to use your account. + +Some of the most common uses for this feature include: + +* OAuth apps allow you to make authorized requests to the [Crowdin API](/developer/api/). +* OAuth apps are often used as a single sign-on service. You can allow users to sign in to your service with their Crowdin accounts. + + + See the [Authorizing OAuth Apps](/developer/authorizing-oauth-apps/) to learn how to authorize OAuth apps to access your Crowdin account. + + +### Tilføjelse af en Ny app + +To add a new application, follow these steps: + + + 1. In the upper-right corner, click on your profile picture and select **Settings**. + 2. Switch to the **OAuth** tab and click **New Application**. + 3. In the appeared dialog, specify the following information: + * **Name** and **Description** – (optional) will be displayed to users when they authorize the app to access their Crowdin accounts. + * **Authorization callback URLs** – the URLs to which users will be sent after they authorize with Crowdin. You can add multiple URLs separated by commas (no need to use quotes). + * Select the access your app needs from the list of available [Scopes](/developer/understanding-scopes/). + 4. Klik på **Opret**. Create OAuth App + + + + +### Ændring af en OAuth-app + +After you create an OAuth application, you can make changes to it. Go to your account's **Settings > OAuth Applications** to see the list of OAuth apps created under your account, the dates the apps were created, and how many users are using each app. + +To find a specific application, type its name or Client ID in the search field at the top of the list. + +Click in the *Actions* column on the necessary app to open the context menu. + +Using the available options, you can do the following: + +* **Edit** – update the application name, description, URLs, and scopes. Tilgå Klient-ID og Klient Hemmelighed for den oprettede app. +* **Reset secret** – Reset the Client Secret for the app. +* **Revoke tokens** – Revoke all user tokens. +* **Delete** – Delete the application. + +### Managing Connected OAuth Applications + +In the **Connected OAuth Applications** section, you can view connected OAuth apps you've authorized to use your account and revoke access as needed. + +## My Rates + +In the **My Rates** tab, you can create and manage personal templates for report settings. These templates are visible only in your profile and are available for use in reports. + +Each template can include: + +* **Base rates** – Set rates for full translation and proofreading. Applied to all languages by default. +* **Net rate schemes** – Set percentage rates for TM, MT, AI, and other match types, based on the full translation rate. +* **Custom rates** – Add language-specific (and in some cases, user-specific) rate configurations. +* **Additional options** – Include or exclude pre-translated strings, adjust how repetitive translations are categorized, and calculate internal fuzzy matches. + +Saved templates help standardize your rate setup and make it easy to reuse configurations across reports. To use a saved template, click **Templates** when configuring your report and select the one you'd like to apply. + +To create a new rate template, follow these steps: + + + 1. Go to **Account Settings > My Rates**. + 2. Click **Create new**. + 3. Enter a template name and select metrics configuration. + 4. Define base rates and *(optional)* add custom rates. + 5. Configure net rate schemes for match categories. + 6. *(Optional)* Configure additional options for pre-translated strings and internal fuzzy matches. + 7. Click **Save**. + + +My Rates + +To manage existing templates, use **Edit** or **Delete** in the **Actions** column. + +## Udbyder + +In the **Vendors** tab, you can manage the accounts and settings for the vendors you use for professional translations. This includes managing payment options for Crowdin Language Services, as well as connecting and disconnecting accounts for vendors like BLEND and Gengo. + +**Crowdin Language Services** + +You can configure the payment method for Crowdin Language Services using one of the following options: + +* **Request credit card input when creating task (task creation via API - unavailable)** +* **Post-payment, pay by invoice later** +* **Use managed balance for payments** + +Use the **How to top up** link to add funds to your managed balance. + +When tasks are created via API, Terms of Service and Privacy Policies are accepted automatically. + + + Read more about [Payment Options for Crowdin Language Services](/crowdin-language-services/#payment-options-for-crowdin-language-services). + + +**BLEND and Gengo** + +For BLEND and Gengo, you can **Connect Account**, **Switch Account** to change the connected account, or **Disconnect Account** to remove the integration. Once your account is connected, you can also track your current balance on the vendor's side directly from this tab. + + + Read more about [Connecting BLEND and Gengo with Crowdin](/ordering-professional-translations/#connecting-blend-and-gengo-with-crowdin). + + +To browse the full list of available vendors, go to **Store > Vendors** on your profile home page. + +Account Settings Vendors + +## Betafunktioner + +In the **Beta Features** tab, you can select the **Enable beta features** option to test new experimental features. diff --git a/src/content/docs/da/crowdin/getting-started/additional-support-services.mdx b/src/content/docs/da/crowdin/getting-started/additional-support-services.mdx new file mode 100644 index 00000000..37b9e27b --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/additional-support-services.mdx @@ -0,0 +1,50 @@ +--- +title: Tillægsstøttetjenester +description: Learn about the additional support services Crowdin offers +slug: additional-support-services +--- + +import { Aside, LinkButton } from '@astrojs/starlight/components'; + +Sammen med tjenester såsom Crowdin Kundeforum, Crowdin Dokumentation, E-mail Support og Chat Support kan kunder kan også tilkøbe yderligere, separate supporttjenester til den primære abonnementstype. Nedenfor ses de tilgængelige ekstra supporttjenester. + + + +## On-demand tutorials og Onboarding-sessioner + +* Kundeteamuddannelse +* Onboarding-sessioner efter abonnementskøb + +## Tekniske opkald og fejlfinding + +* Integrationsopsætning +* Effektivisering af lokaliseringsarbejdsgangen +* Teknisk fejlfinding +* Crowdin-ingeniører kan om nødvendigt inddrages + +## Dedikerede kontostyring + +Dedikeret kontostyring omfatter alle fordele fra Premium Support plus flg.: + +* Tildelt personlig kontoadministrator – Personlig kontoadministrator besvarer teame-mails med høj prioritet. Teamet forsynes med et dedikeret link til et opkald med en ansvarlig. +* Ubegrænset supportopkald – Der kan bestilles et ubegrænset antal on-demand tutorials, onboarding-sessioner, tekniske opkald og fejlfindingssessioner. +* Styr på vigtige funktionsudgivelser – Den personlig kontoansvarlige holder styr på og informere om nyligt udgivne funktioner af vigtighed for teamet. +* Styr på abonnement – Den personlig kontoansvarlige holder styr på og informerer teamet om abonnementsrelaterede spørgsmål. + +Tilgængelig for flg. abonnementstyper: Pro, Team, Team+, Business. + +Contact Sales +View Pricing + +## Kundeudvikling + +Kundeudvikling omfatter flg. tjenester: + +* Udvikling af tilpassede processorer og apps +* Tilpasset variabelopsætning +* API-relaterede anmodninger +* Funktionalitetsudvidelse vha. Crowdin-apps udvikling mv. + +Tilgængelig for flg. abonnementstyper: Pro, Team, Team+, Business. + +Pris: Forhandles afhængigt af anmodningkompleksitet. diff --git a/src/content/docs/da/crowdin/getting-started/for-managers.mdx b/src/content/docs/da/crowdin/getting-started/for-managers.mdx new file mode 100644 index 00000000..d38e3504 --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/for-managers.mdx @@ -0,0 +1,184 @@ +--- +title: Til Administratorer +description: A guide to managing localization projects in Crowdin +slug: for-managers +--- + +import { Image } from 'astro:assets'; +import { Steps, CardGrid, LinkCard, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import createProject from '!/crowdin/project-management/create_project.png'; +import uploadFiles from '!/crowdin/project-management/sources/upload_files.png'; +import screenshotsListInProjectSettings from '!/crowdin/project-management/screenshots_list_in_project_settings.png'; +import inviteDialog from '!/crowdin/team-management/invite_dialog.png'; +import preTranslation from '!/crowdin/getting-started/pre_translation.png'; +import reportsGeneral from '!/crowdin/getting-started/reports_general.png'; + +> Crowdin is a localization management platform that helps companies, teams, and individuals stay agile when translating products like mobile, desktop & web apps, websites, games, help documentation, and more. + +In this article, we'll walk you through a typical localization workflow for managers in Crowdin. We'll cover creating a project, uploading content, inviting project members, pre-translating your project, generating reports, and downloading translations. + +## Oprettelse af et projekt + +Create a project to be able to upload your content for localization. When creating a project, you can select the preferred *project visibility*, *project type*, and select the source and target languages. + +Projektoprettelse + + + Read more about [Creating a Project](/creating-project/). + + +Når projektet er oprettet, kan der tilføjes indhold til oversættelse. Hvert projekt har sit eget kildeindhold, ressourcer, målsprog, integrationer, medlemmer mv. + + + +## Upload Content + +Once you've created the project, upload localizable files and resources, such as screenshots, translation memory, and glossary. + +### Upload af kildefiler til lokalisering + +You can upload localizable files in a way that works best for you: + +* Manuelt via web-UI'en. +* Integrate Crowdin with the tools you already use: + * Repo *(GitHub, GitLab, etc.)* + * Marketing tools *(Contentful, Webflow, WPML, Hubspot, Marketo, etc.)* + * Help center *(Help Scout, Zendesk, Intercom, etc.)* + * Development tools *(VS Code, Android Studio, Google Play, etc.)* + * Email automation *(MailChimp, SendPulse, ActiveCampaign, Mandrill, Moosend, etc.)* + * Design tools *(Figma, Sketch, Adobe XD)*. +* Use API or console client. + +Upload af filer + + + Read more about [Uploading Source Files](/uploading-files/). + + +To automatically sync files between your Crowdin project and the tools of your choice, add and set up the respective integration. Once you add the integration, you can proceed to the setup. + + + +### Upload af eksisterende oversættelser + +If you already have some translations done outside Crowdin, you can upload them to your Crowdin project to keep everything in one place and continue working on translations. + + + Read more about [Uploading Existing Translations](/uploading-translations/). + + +### Upload af lokaliseringsressourcer + +In most cases, you might have localization resources like [Translation Memory](/translation-memory/), [Glossary](/glossary/), and [Style Guide](/style-guide/). It is a good idea to upload them to your Crowdin project since these localization resources help your translators during the translation process and ensure high translation quality. + +### Upload af skærmfotos + +Screenshots are another great way to provide additional context so translators can understand better how they should translate the source strings. To upload screenshots, open your project and go to the **Screenshots** tab. Tag the source strings on the screenshots. This way, screenshots with tagged strings will appear under each string in the Editor's Context and Translations section. + +Screenshots list in project settings + + + Read more about [Screenshots](/screenshots/). + + + + + + + + +## Pre-translate Your Project + +To save time, you can pre-translate your Crowdin project using [AI](/crowdin-ai/), [Translation Memory](/translation-memory/) (TM), or [Machine Translation](/machine-translation/) (MT). Pre-translating your content means some strings will already be translated before translators begin their work. + +You can apply pre-translation manually or set up automatic pre-translation, so each time new content is added, it's translated automatically based on your settings. + +Pre-translation via TM + + + Read more about [Pre-translation](/pre-translation/). + + +## Invite People + +Decide who will translate and manage your content. You can collaborate with professional translation agencies (i.e., vendors) integrated with Crowdin or invite your own team. + +If you decide to work with agencies, go to **Store > Vendors** to select a translation vendor that meets your requirements. + + + Read more about [Ordering Professional Translations](/ordering-professional-translations/). + + +If you decide to invite your own team, open your project and go to the **Members** tab to add people by Crowdin username, email, or invitation link. Based on what each person will do in the project, you can assign the following roles: Manager, Developer / Translation Requestor, Language Coordinator, Proofreader, and Translator. + +Invite project members + + + Read more about [Inviting People](/inviting-people/). + + +Once added to the project, team members can start working in the [Editor](/online-editor/) or access other project areas depending on their role. + +## Managing Language Requests + +Project members can request new target languages for a project directly from project's **Dashboard** tab by clicking **Request New Language**. As a project manager, you will receive these requests as notifications, which you can then review and add a new language if needed. + +To manage these requests effectively, you first need to ensure your notifications are correctly configured. + +### Enabling Notifications for Requests + +To receive alerts when a user requests a language, you must have the appropriate notifications enabled in your **Account Settings**. + + + 1. Go to **Account Settings > Notifications**. + 2. Select **Language Requests** for your preferred notification channels (e.g., In-app, Email, Slack). + + + + +### Reviewing a Language Request + +Once a user requests a new language, you will be notified. + + + 1. Click the bell icon in the upper-right corner to see new notifications in a dropdown list. + 2. For a complete list of all notifications, click **See all**. + 3. On the **Notifications** page, find the request. The notification will show the project, the requested language, the user who sent the request, and any comments they provided. + 4. Click **Language Settings** to go directly to the project’s **Settings > Languages** page to add the requested language to the project. + + +## Generate Reports + +Crowdin provides project-level reports to help you track progress, evaluate translation accuracy, estimate and count costs, and measure contributor activity. To access them, open your project and go to the **Reports** tab. + +Available reports include: + +* Oversigt +* Udgiftsestimering +* Oversættelsesomkostning +* Pre-translation Accuracy +* Translator Accuracy +* Topmedlemmer +* Arkiv + +Projektrapporter + + + Read more about [Reports](/project-reports/). + + +## Download oversættelser + +You can download translations manually using the web interface (UI) or set up automated delivery using integrations (e.g., GitHub or other connected tools), the Crowdin API, the console client (CLI), or CDN Distributions. + +Translations are downloaded according to the export settings configured in the project's **Settings** tab. + + + Read more about [Downloading Translations](/downloading-translations/). + diff --git a/src/content/docs/da/crowdin/getting-started/for-translators.mdx b/src/content/docs/da/crowdin/getting-started/for-translators.mdx new file mode 100644 index 00000000..2e0b7b67 --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/for-translators.mdx @@ -0,0 +1,203 @@ +--- +title: Til oversættere +description: Learn how to contribute to localization projects as a translator +slug: for-translators +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import profileFull from '!/crowdin/getting-started/profile_full.png'; +import showcases from '!/crowdin/getting-started/showcases.png'; +import projectDashboard from '!/crowdin/getting-started/project_dashboard.png'; +import sbsEditor from '!/crowdin/online-editor/sbs_editor.png'; +import vote from '!/crowdin/online-editor/vote.png'; +import volunteerEditorMenu from '!/crowdin/getting-started/volunteer_editor_menu.png'; + +> Crowdin is a localization management platform that helps companies translate their software. In this article, you will find information on how you can contribute to localization projects as a translator. + +In this article, you will learn about the typical workflow of a translator or volunteer translator on Crowdin. You will also learn how to find projects to contribute to, explore your workspace, and work in the editor. + +## Opret en konto + +If you are not registered in Crowdin, you can [create an account](https://accounts.crowdin.com/register) using your email or sign up with the help of social media profiles (Google, Facebook, Twitter), GitHub, or GitLab profiles. + +Click the profile picture in the upper-right corner and select *Settings* to access your Account Settings where you can view and manage your personal information, profile security, notifications, define preferred languages, etc. + + + +## Profilside + +En profilside er et placering, hvor du begynder at arbejde på Crowdin-projekter. By default, your profile features a pinned left sidebar containing your main navigation sections, such as **Projects**, **Activity**, **My Tasks**, etc. + +In the **Projects** section, you can see all the projects you have joined. If you’ve requested to join a project that requires manager approval, it will appear under *Pending* until your request is reviewed. You can also quickly access your active projects using the **My Projects** list at the bottom of the left sidebar. + +You can customize your workspace view by clicking **Pin/Unpin menu** at the top right of the sidebar. Unpinning the sidebar will move the main navigation items to the top of the page. + +Profil + +## Udforskning af projekter + +Find a Crowdin project you would like to contribute to using the search field in the header or the direct URL provided by the project manager. However, not all projects can be found with the help of the search field. This is because they are private and only accessible via invitation links. + +Visit our [Showcases](https://crowdin.com/projects#showcases) page, where you can find some popular public projects grouped by category. Use the *Advanced Search* if you want to apply specific filter options (e.g., target languages, platform) to find a public project. + +Showcases + + + +## Udforsk dit arbejdsområde + +Once you find and open the needed project, you can access the following tabs: + +* **Dashboard** – the page with a list of project languages, the main project details, and the list of project managers. + + Click on the needed language to access files for translations. You can also use the **Translate All** button to access all project strings at once. + + + +* **Tasks** – the page that contains the list of tasks assigned to you (if any). + +* **Reports** – the page where you can see the project status and view the project’s top members. + + Crowdsourcing projects don’t usually have financial rewards for translations. So you can use the [My Contribution](/contributor-reports/) report to see the overall amount of the strings you translated and proofread without setting the rates. + +* **Activity** – the page where all the [Project Activity](/project-activity/) is shown. For example, comments, newly joined users, translated, and proofread strings. + +* **Discussions** – the page with the project-related conversations. You can participate in already existing discussions or create a new topic if necessary. + +Projektforside + +### Requesting a New Language + +If a language you'd like to translate is not currently listed in the project, you can request its addition. This feature is available in all public projects in Crowdin. + +To request a language, follow these steps: + + + 1. Open the project and go to the **Dashboard** tab. + 2. Click **Request new language** in the **Details** section. + 3. In the appeared modal, select the preferred language. + 4. *(Optional)* Add a message to the project managers to be included with your request. + 5. Click **Send**. + + +The project managers will review your request and determine whether the language can be added. + +If another user has already submitted a request for the same language, you will receive a notification about the existing request. This notification will also appear if you submit multiple requests for the same language while the first request is still under review by the managers. + +### Kontakte en Projektadministrator + +If you have questions about the project's content, need clarification on a specific task, or would like to be promoted to a proofreader role, you can contact the project manager. You might also reach out if you need additional resources, have feedback on translations, want to discuss project timelines, etc. + +To contact the project manager, open the project and click **Contact** next to their name. + +You will be redirected to the **Create Conversation** page with the project manager pre-selected as the recipient. If needed, you can also add other users to the conversation. Click **Go**, and the conversation will be created, allowing you to begin communicating. You will be notified when the manager replies, and the discussion will continue in the same thread. + +### Intellectual Property Rights + +Before contributing translations to a project, it’s important to understand the intellectual property terms. Projects may define how your translations will be used, shared, or licensed. + +If you're contributing to open-source or community-driven projects, check if the project provides additional legal or licensing terms. When in doubt, contact the project manager for clarification. + + + Read more about [Intellectual Property Rights](/intellectual-rights-for-translations/). + + +### Reporting a Project + +If you come across a project in Crowdin that contains inappropriate or unsafe content, you can report it. Reports are reviewed to ensure the project complies with [Crowdin’s Terms and Conditions](/terms/). + +To report a project, follow these steps: + + + 1. Open the project and go to the **Dashboard** tab. + 2. In the **Details** section, click **Report**. + 3. In the appeared modal, select the type of issue you’re reporting. + 4. *(Optional)* Add additional details in the text field. + 5. Click **Submit**. + + +After submitting the report, you’ll see a confirmation message. The Crowdin team will review your report and take action if necessary. + +## Arbejde i Redigeringsværktøjet + +The Editor is where translators and proofreaders work on translations online. The String List section displays strings from the selected file or all project strings, with the active string highlighted. String context and details for the selected string appear in the String Details section. + + + +### Oversættelse + +Collaborate with other project members, discuss any issues or questions in the Comments section, vote for the best translation variants, and take advantage of the project [Glossary](/glossary/) and [Translation Memory](/translation-memory/). Use the machine translations as a basis for your own suggestions. + +Side-by-side Editor mode + +#### String List + +The **String List** is your primary workspace for managing translations. + +##### Layout and Status + +* Source Text: On the left. +* Translations: On the right. +* Status icons indicate whether strings are untranslated, translated, or approved. Comments or issues are highlighted. + +##### Searching and Filtering + +* Use the *Search in file* field to locate strings. +* Apply Simple or Advanced Filters to sort and filter strings. + +##### QA-tjek + +Pop-up messages may appear to alert you to potential issues, such as inconsistent punctuation, mismatched spaces, or missing variables. These checks help maintain translation quality. + +#### AI in the Editor + +AI in the Editor helps you work faster and more accurately with context-aware translation suggestions. + +To use AI suggestions, open the **Context & Translations** section in the right sidebar of the Editor. + +For chat-based assistance, ask your project owner to install and configure the [Crowdin Copilot app](https://store.crowdin.com/crowdin-copilot) from the Crowdin Store. + + + +#### Context and Translations + +Denne sektion indeholder de ressourcer, som kan være nyttige: + +* Context, labels, screenshots, and additional information to guide the work. +* Oversættelser fra andre projektmedlemmer +* Forslag fra Oversættelseshukommelsen (TM) +* Maskinoversættelseforslag (MT) +* Oversættelser til andre sprog + +If you see that there is already a correct suggestion, vote for it by clicking the *plus* sign if you like the translation, or the *minus* sign if you don't think the translation is correct. Oversættelser, som modtager flest positive stemmer, vil have en højere vurdering og vises øverst på alle tilgængelige oversættelser for strengen. + +Stemmeafgivelse + +#### Kommentarer + +In the *Comments* section, you can discuss the meaning of the source string or other related questions with other project members. Use "@" and a username to mention the specific person or [create an issue](/issues/#for-translators) related to the string. + +### Main Menu + +Using the main menu at the top of the Editor (**File**, **Edit**, **View**, **Language**, **Project**, **Help**), you can select content for translation, download or upload translations, perform various string actions, change the Editor's layout, switch target languages, access project pages and switch projects, access help materials, and more. + +Main Menu + +### Tastaturgenveje + +Click in the upper-right corner to see the list of available keyboard shortcuts. De kan markant effektivisere og accelerere arbejdet i Editor. + +Most shortcuts can be customized. Click on the needed key combination and modify it using your keyboard. + +## Offline-oversættelse + +As an alternative to translating online in the Editor, you can download project files for [offline translation](/offline-translation/) if the project manager has enabled public downloads. Use the XLIFF file format for offline translation, which is supported by most desktop localization tools. diff --git a/src/content/docs/da/crowdin/getting-started/migrating-to-crowdin.mdx b/src/content/docs/da/crowdin/getting-started/migrating-to-crowdin.mdx new file mode 100644 index 00000000..614e46ed --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/migrating-to-crowdin.mdx @@ -0,0 +1,74 @@ +--- +title: Migrering til Crowdin +description: Migrate your localization projects to Crowdin +slug: migrating-to-crowdin +--- + +import {Steps, Aside, LinkCard, CardGrid} from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +Crowdin tilbyder teamsamarbejdsfunktioner (f.eks. invitation til at deltage i projekt, tilladelsesniveaudefinitioner, opgaver, beskeder mv.), arbejdsgangsautomatisering og -tilpasning, integrationer og plugins samt yderligere funktioner til brug for effektiv projektlokalisering. + +For at starte migrationen, kan flg. trin-for-trin vejledning følges. + +## I det tidligere oversættelsesværktøj + +For at starte migrationen, kan flg. trin-for-trin vejledning følges. + + + 1. **Download source files**.
+ In most cases, you’ll have them on your machine/server, so this step is optional. + + 2. **Download translations**.
+ Download all the latest translations you have at the moment of transition. + + 3. **Download TM and Glossary**.
+ Download the translation memory and glossary so your translators can reuse them in your Crowdin projects. +
+ +## I Crowdin + +#### Sign up and create your localization project + +Sign up or log in if you already have your Crowdin account and [create a project](/creating-project/) to which you’ll migrate your data. + +#### Upload source files + +There are a couple of ways you can upload your source files to the Crowdin project. Brug en af flg. muligheder: + +* via UI. +* via direct integration with external services (e.g., GitHub, GitLab, etc.) Explore available integrations on the [Crowdin Store](https://store.crowdin.com/). +* via Console Client (CLI). +* via API. + + + + + Read more about [Uploading Source Files](/uploading-files/). + + +#### Upload af eksisterende oversættelser + +Upload your existing translations to ensure that your previous work won’t be lost and that you continue from where you performed the transition. If you plan to use integrations with GitHub, GitLab, or other services, your existing translations could be uploaded in an automated way. + + + Read more about [Uploading Existing Translations](/uploading-translations/). + + +#### Upload TM and Glossary + +If you have [Translation Memory](/translation-memory/) (TM) and [Glossary](/glossary/) from your previous translation tool, feel free to upload them to your Crowdin project. Disse lokaliseringsressourcer kan i høj grad hjælpe oversættere under oversættelsesprocessen og sikre højkvalitetsoversættelser. + +## Assistance fra Crowdins team + +Ved behov for assistance under migrationsprocessen står supportteamet klar til at hjælpe med ethvert trin. For any guidance, feel free to [contact us](https://crowdin.com/contacts). + +## Se også + + + + + + diff --git a/src/content/docs/da/crowdin/getting-started/supported-formats.mdx b/src/content/docs/da/crowdin/getting-started/supported-formats.mdx new file mode 100644 index 00000000..c91a6f7a --- /dev/null +++ b/src/content/docs/da/crowdin/getting-started/supported-formats.mdx @@ -0,0 +1,74 @@ +--- +title: Understøttede formater +description: Explore the list of localization formats supported by Crowdin +slug: supported-formats +--- + +import { Steps } from '@astrojs/starlight/components'; +import FormatsBanner from '~/components/FormatsBanner.astro'; +import { Image } from 'astro:assets'; +import assetsWorkflow from '!/crowdin/getting-started/assets-workflow.png'; + +Crowdin supports a wide range of localization formats, including but not limited to files for mobile, software, documents, subtitles, and graphic assets. + +## Lokaliseringsformater og -dokumenter + +* Mobil-apps-formater +* Web- og computersoftwareformater +* Dokumentation og videoundertekster + + + +## Grafik og aktiver + +Lokalisér produktbilleder, for at forbedre produktets brugeroplevelse. + + + 1. Upload grafik til Crowdin. + 2. Tilføj alle nødvendige referencer så oversætterne forstår, hvordan denne grafik skal håndteres. + 3. Afvent, at oversættere uploader lokaliserede filer. + 4. Download den lokaliserede grafik og anvend den til produktion. + + +Assets Workflow + +## Konverterede filformater + +Under import konverteres visse filformater automatisk til andre formater for yderligere fortolkning og behandling. I tabellen nedenfor ses en listen over de oprindelige filformater, og dem de konverteres til. + +| Oprindeligt filformat | Konverteret filformat | +| --------------------- | --------------------- | +| DOC | DOCX | +| PPT | PPTX | +| RTF | DOCX | +| PDF | DOCX | + +## Tilpassede tjenester + +:::note +Custom services are available in selected subscription plans or as separately paid add-ons. See all [pricing options](https://crowdin.com/pricing) available to choose the most suitable. +::: + +## Tilpassede filformater + +File formats that are not officially supported will be recognized as plain text files (if they contain text) or as graphic assets. + +Our team can add special code to support your original file formats and ensure that translators see only translatable text rather than the entire file content. This approach allows you to manage custom file formats more effectively. + +[Contact](https://crowdin.com/contacts) our support team to start working with custom file formats in your project. + +Alternatively, you can implement support for a custom format yourself by developing a [Crowdin app](/developer/crowdin-apps-about/) incorporating the [Custom File Format](/developer/crowdin-apps-module-custom-file-format/) module. + +## Tilpasset fileksport + +Som standard eksporteres oversættelserne i samme format som kildefilerne. For example, if you upload an XML file to Crowdin, you'll have the XML file exported. + +Our developers can create a special processor if you want to configure custom settings for your file export. For example, you upload a key-value file that doesn't support [string editing](/string-management/#string-editing) by default and want to modify it directly in Crowdin. Filen kan midlertidigt konvertere til CSV-filformatet for at muliggøre tilføjelse af strenge online. The exported file will remain in the original format. + +[Contact](https://crowdin.com/contacts) our support team, and we'll gladly help you set custom export options based on your needs. + +## Tilpassede variabler + +Crowdin supports all the placeholders typical for the supported file formats. They are all automatically highlighted in the Editor, so translators know that they shouldn’t be translated. Even if the translator tries to save the translation with some modified or missing placeholder, enabled QA checks will notify the translator about the mistake. + +As various file formats allow the creation of custom placeholders, we can also add support for the custom ones you use in your project. To request the support of your custom placeholders, [contact](https://crowdin.com/contacts) our support team. diff --git a/src/content/docs/da/crowdin/integrations/adobe-xd.mdx b/src/content/docs/da/crowdin/integrations/adobe-xd.mdx new file mode 100644 index 00000000..46d38c55 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/adobe-xd.mdx @@ -0,0 +1,258 @@ +--- +title: Adobe XD Plugin +description: Start localizing at the design stage +slug: adobe-xd-plugin +sidebar: + order: 10 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import addStrings from '!/crowdin/integrations/adobe_xd_plugin_add_strings.png'; +import connect from '!/crowdin/integrations/adobe_xd_plugin_connect.png'; +import dropdown from '!/crowdin/integrations/adobe_xd_plugin_dropdown.png'; +import getTranslations from '!/crowdin/integrations/adobe_xd_plugin_get_translations.png'; +import previewKeys from '!/crowdin/integrations/adobe_xd_plugin_preview_keys.gif'; +import previewStrings from '!/crowdin/integrations/adobe_xd_plugin_preview_strings.gif'; +import selectBranch from '!/crowdin/integrations/adobe_xd_plugin_select_branch.png'; +import sendTextsToCrowdin from '!/crowdin/integrations/adobe_xd_plugin_send_texts_to_crowdin.png'; +import uploadedTranslations from '!/crowdin/integrations/adobe_xd_plugin_uploaded_translations.png'; +import useString from '!/crowdin/integrations/adobe_xd_plugin_use_string.gif'; + +Med Crowdin til Adobe XD-plugin'et kan der bruges tekster fra Crowdin Enterprise i egne designs for at spare tid for både designere og udviklere. Disse kan omfatte originale eller oversatte tekster. Om ønsket kan nye tilføjes (f.eks. dialogtitler, knapetiketter) og indsendes til Crowdin-oversættere. + +## Brugsstudier + +* Generér hurtigt flersprogede, kreative aktiver. +* Oversæt modelscenarier og test dem på forskellige sprog, før programmering påbegyndes. +* Stop med at bruge 'Lorem Ipsum', føj i stedet reelle tekster fra Crowdin til prototyperne. +* Opret og upload kildestrenge fra designs til Crowdin-projektet. På denne måde kan uploadede strenge bruges af udviklere, hvilket reducerer tid brugt på udvikling. +* Upload taggede skærmfotos til Crowdin-projektet. + +## Installation + + + 1. Log ind på Adobe XD. + 2. Navigate to **Plugins > Browse plugins…**. + 3. Click **Browse**. + 4. Use the *Search all plugins* field to find **Crowdin for Adobe XD** plugin. + 5. Click **Install**. + + +## Configuration + + + +### Setting up Credentials + +Følg disse trin for at angive Crowdin-legitimationsoplysningerne i Adobe XD: + + + 1. On the left panel, click **Plugins > Crowdin for Adobe XD**. + 2. Click . + 3. Angiv det relevante Personlige adgangstoken. + 4. Click **Save**. Adobe XD Plugin Connect to Crowdin + + +Følg disse trin for at generere et nyt token i Crowdin: + + + 1. Go to **Account Settings > API**, *Personal Access Tokens* section, and click **New Token**. + 2. Specify *Token Name* and click **Create**. + + +### Selecting a Project + +To select the Crowdin project you'd like to work with, click the drop-down menu, and select a project from the list. Om ønsket, kan der senere skiftes til et andet projekt via samme rullemenu. + +Adobe XD Plugin valg af Crowdin-project + +Vælg den bestemte gren, hvortil relevant indhold skal uploades. If your Crowdin project doesn't have branches, leave it empty. + +Adobe XD Plugin valg af gren + +## UI-lokalisering + +Use the *Strings* section when localizing UI and working on dynamic pages with your development and marketing teams. I dette afsnit kan kildestrenge fra Crowdin føjes til designs i Adobe XD med ét klik. Når teksterne er anvendt i designs, kan taggede skærmfotos automatisk uploades tilbage i Crowdin som oversætterreferencer. + +### Brug af kildestrenge fra Crowdin i Adobe XD + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. In the *Strings* section, use the *Search* field to find the specific copy. Strenge kan søges efter kildetekst, strengidentifikator eller kontekst. + 3. Vælg det tekstlag, der skal føjes tekst til, og klik på den relevante streng. + + +Adobe XD Plugin - brug af kildestrenge fra Crowdin i Adobe XD + +After using the source strings from Crowdin in your designs, they become linked with the text fields, and you can [preview translations](#previewing-strings) for these strings in Adobe XD and [upload screenshots](#uploading-tagged-screenshots-to-crowdin) for them to your Crowdin project. + +Én enkelt Crowdin-streng kan tilknyttes ét eller flere tekstfelter i Adobe XD. Et tekstfelt kan dog kun knyttes til én enkelt Crowdin-streng. Tilknyttes et tekstfelt en eksisterende forbindelse til en ny Crowdin-streng, afsluttes den tidligere forbindelse, og en ny etableres. Skal tilknytningen for en Crowdin-streng fjernes fra alle tidligere tilknyttede tekstfelter, højreklik på linkikonet ved siden af den relevante streng. + +### Tilføjelse af kildestrenge fra Adobe XD til Crowdin + +Der kan tilføjes strenge, som allerede anvendes i designene eller oprettes og tilføjes helt nye. + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. For at tilføje de i designene anvendte strenge, vælg hele tegnebrættet, flere tegnebrætter eller ønskede strenge på tegnebrætterne. Alternativt, overspring dette trin, hvis en ny streng ønskes tilføjet. + 3. In the *Strings* section, click . + 4. Udfyld de obligatoriske felter i den viste dialog. + 5. *(Optional)* To add labels to the strings, alternately select them from the **Label** drop-down menu and click **Save**. + + +Adobe XD Plugin Add Source Strings + +To add the same strings into multiple files in Crowdin, alternately select the needed files from the **File** drop-down menu. + +Clear the **Push hidden elements** option if some artboards contain hidden elements that should not be added to Crowdin. + +When adding multiple strings, you may want to select **Link new duplicate texts to a single Crowdin string**. Dette er nyttigt i flg. tilfælde: + +* When adding multiple text fields with the same text, the plugin will add only one string to your Crowdin project and link all duplicate text fields to it. +* If your Crowdin project already contains a string with the same text you're adding from designs, the plugin will only link the text fields to the existing string and won't create a new one. + +Added strings will be transferred to your Crowdin project and also displayed in the **Strings** section's list. Strenge fra samme liste kan til enhver tid redigeres/slettes. De respektive ændringer anvendes også på strengene i det relevante Crowdin-projekt. + +### Opsætning af ICU-kildestrengspladsholdere + +Ved brug af ICU-strenge i design kan der opsættes pladsholderværdier, og efter tilføjelse af sådanne strenge til designs, vil de fremgå i en formateret visning med de prædefinerede værdier. + +Once you [use](#using-source-strings-from-crowdin-in-adobe-xd) the needed ICU string from Crowdin in your design, you can configure its placeholders' values. + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. In the *Strings* tab, use the *Search* field to find the specific copy. Strenge kan søges efter kildetekst, strengidentifikator eller kontekst. + 3. Click on the needed ICU string. + 4. Click **Set placeholders**. + 5. Angiv de relevante værdier for ICU-strengpladsholderne. + 6. Click **Submit** to save the entered placeholders. + 7. Click **Edit String** to update the source string text in designs. + + +When [previewing translations](#previewing-strings) for ICU strings in Adobe XD, they will also be displayed in a formatted view if the values were preconfigured beforehand. + +### Indstillinger for Nøglenavngivningsmønster + +For at forenkle tilføjelsen af strenge fra Adobe XD til Crowdin-projektetet, kan det ønskede nøglenavngivningsmønster opsættes for kildestrengsidentifikatorerne i plugin-indstillingerne. Baseret på det valgte mønster foreslår Crowdin-plugin'et til Adobe XD strengidentifikatorer til nye strenge. Under tilføjelse nye kildestrenge, kan den foreslåede identifikator altid redigeres til det foretrukne udseende. + +Følg disse trin for at vælge nøglenavngivningsmønsteret: + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. Open the plugin **Settings**. + 3. In the *Key naming pattern* section, select the preferred option from the drop-down menu. + + +Udover de eksisterende mønstre, kan egne mønster opsættes. To use a custom pattern, select the **Custom key naming pattern** option from the drop-down list and specify your pattern in the **Custom Key Naming Pattern** field. + +### Upload af taggede skærmfotos til Crowdin + +When [adding source strings used in the designs](#adding-source-strings-from-adobe-xd-to-crowdin), make sure to keep **Send screenshots** selected. Som følge heraf vil Crowdin-plugin'et til Adobe XD uploade skærmfotos sammen med kildestrengene. + +Also, you can update screenshots with an **Update screenshots** option while editing a Crowdin string that is linked to the text fields in designs. + +Additionally, you can mass upload screenshots to Crowdin for strings linked with text fields in designs. + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. Vælg et eller flere tegnebrætter med de tilknyttede strenge. + 3. In the *Strings* section, click to upload screenshots for selected artboards. + + + + Read more about [Screenshots](/screenshots/). + + +### Prævisning af strenge + +Prævis oversættelser fra Crowdin for de strenge, som anvendes i designene i Adobe XD. Oversættelser kan prævises i enten nye eller de originale tegenebrætter. Ved oversættelsesprævisinger i de nye tegnebrætter, kan disse udfyldes med de aktuelle oversættelser eller strengnøgler til yderligere brug for udviklere. + +Følg disse trin for at prævise strenge udfyldt med oversættelser: + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. In the *Strings* > *Preview Strings* section, select *Preview in duplicated artboards* or *Preview in the current artboards*. + 3. Select *Create with language*. + 4. Vælg målsproget, for hvilket oversættelser skal prævises. You can also choose *All languages*. + 5. Vælg det indhold, der skal prævises i Adobe XD. Select *All Artboards* or *Selected Artboards*. Adobe XD Plugin Preview Strings + + +Følg disse trin for at prævise strenge udfyldt med nøglenavne: + + + 1. Åbn Crowdin-plugin'et til Adobe XD. + 2. In the *Strings* > *Preview Strings* section, select *Preview in duplicated artboards*. + 3. Select *Create with key names*. + 4. Vælg det indhold, der skal prævises i Adobe XD. Select *All Artboards* or *Selected Artboards*. Adobe XD Plugin Preview Keys + + +## Marketingvisualiseringslokalisering + +Use the *Translation* section to localize static pages, like brochures and banners. I dette afsnit kan der indsendes tekster med kontekst til oversættere til Crowdin og uploades oversatte kopier retur til Adobe XD. + +### Indsendelse af tekster til oversættelse til Crowdin + +Der kan indsendes tekst til oversættelse enten fra valgte eller alle tegnebrættet fra en Adobe XD-fil. Oversættere arbejder så med disse tekster i listevisningen og bruger designs som en ekstra kontekst til endnu højere oversættelseskvalitet. + +In Crowdin, a root folder *Adobe XD plugin* will be created. Den vil indeholde en undermappe navngivet efter XD-filen indeholdende HTML-filer for hvert tegnebræt. This folder can also contain a *free-text.html* file with texts not included in any of the artboards. If needed, you can disable content segmentation in the plugin **Settings** so long texts will not be split into sentences. + +Følg disse trin for at indsende Adobe XD-designs til oversættelse: + + + 1. Åbn den relevante Adobe XD-fil. + 2. Go to **Plugins > Crowdin for Adobe XD**. + 3. In the *Translation* > *Send texts to Crowdin* section, select the content you’d like to translate. Select *All Artboards* or *Selected Artboards*. Adobe XD Plugin Send Texts for Translation to Crowdin + + +Efter upload af kildefiler til Crowdin-projektet kan folk inviteres til at bidrage med at oversætte og korrekturlæse dem. + + + Read more about [translation strategies](/translation-strategies/). + + +### Upload af oversættelser fra Crowdin til Adobe XD + +Tekster kan synkroniseres mellem Adobe XD og Crowdin-projekter, når som helst man ønsker at teste den oversatte kopi i Adobe XD eller generere flersprogede aktiver. + +Følg disse trin for at uploade oversatte kopier til Adobe XD: + + + 1. Åbn den relevante Adobe XD-fil. + 2. Go to **Plugins > Crowdin for Adobe XD**. + 3. In the *Translation* > *Get translations from Crowdin* section, select the target language you want to upload translations for. You can also select *All languages*. + 4. Vælg det indhold, der ønskes prævist i Adobe XD. Select *All Artboards* or *Selected Artboards*. + + +Adobe XD Plugin Get Translations from Crowdin + +Efter upload af oversættelser til Adobe XD vil den ændrede fil indeholde et separat tegnebræt med oversættelser for hvert målsprog. De nyligt uploadede oversatte versioner vil ikke tilsidesætte versioner uploadet tidligere. Oversatte kopier, som ikke længere behøves, kan altid slettes. + +Adobe XD Plugin - Uploadede oversættelser + +If you'd like the newly uploaded translated versions to override the previously uploaded ones, open the plugin **Settings** and select **Override existing translations**. + +### Pseudolokalisering + +Selv før oversættelserne er færdige kan det testes, om det relevante program er klar til at blive lokaliseret vha. pseudolokalisering. Denne funktion muliggør at simulere, hvordan programmets UI vil se ud med forskellige sprog for at tjekke, om kildestrengene skal ændres, før projektlokalisering startes. + +Once you send your texts for translation, you can start pseudo-localization. + + + 1. Åbn den relevante Adobe XD-fil. + 2. Go to **Plugins > Crowdin for Adobe XD**. + 3. In the *Pseudo-localization* section, select the content you’d like to test with pseudo-localization. Select *All Artboards* or *Selected Artboards*. + 4. In the dialog box that appears, you can choose from predefined presets (French, Cyrillic, Chinese, Arabic) and configure the settings according to your preferences: + * *Length Correction* – allows you to make strings longer or shorter to see whether your product's UI properly handles other languages. As translations in some languages can be longer or shorter than the source texts in your project. + * *Prefix/Suffix* – allows you to add special characters at the beginning and end of each string. + * *Character Transformation* – replaces English characters with easily identifiable accented versions, random Arabic symbols, or Chinese ideographs to make it obvious if there are some hard-coded strings in your application. + 5. Click **Pseudo-localize**. + + + + Read more about [Pseudo-localization](/developer/pseudolocalization/). + diff --git a/src/content/docs/da/crowdin/integrations/azure-repos.mdx b/src/content/docs/da/crowdin/integrations/azure-repos.mdx new file mode 100644 index 00000000..98823ae4 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/azure-repos.mdx @@ -0,0 +1,236 @@ +--- +title: Azure Repos-integration +description: Synchronize files between your Azure Repos repository and Crowdin +slug: azure-repos-integration +sidebar: + order: 4 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard, Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import setUpIntegrationDropdown from '!/crowdin/integrations/set_up_integration_dropdown.png'; +import authorizationAzureRepos from '!/crowdin/integrations/azure_repos_integration_authorization.png'; +import unconfigured from '!/crowdin/integrations/integration_unconfigured.png'; +import unconfiguredSb from '!/crowdin/integrations/integration_unconfigured_sb.png'; +import syncNow from '!/crowdin/integrations/integration_sync_now.png'; +import uploadTranslations from '!/crowdin/integrations/integration_sync_translations_to_crowdin.png'; + +Azure Repos-integrationen muliggør filsynk mellem Azure Repos-repo'et og Crowdin-projektet. + + + +Der er i filbaserede projekter to mulige Azure Repos-integrationstilstande at vælge imellem: + +* **Source and translation files mode** – synchronize source and translation files between your Azure Repos repository and Crowdin project. +* **Målfil-pakketilstand** – generér og skub oversættelsesfiler i det valgte format til Azure Repos-repo'et fra Crowdin-projektet. I denne tilstand pusher integration oversættelsesfiler og synker ikke kilder fra repo'et. I tilfælde, hvor der udføres en kildetekstrevision i Crowdin-projektet, og kildeteksten ønskes opdateret i repo'et, kan der tilføjes et kildesprog som målsprog, hvilket så pushes til repo'et sammen med oversættelserne. + +I strengbaserede projekter opererer Azure Repos-integration udelukkende i tilstanden \*\*Målfil-pakker \*\*. + + + Read more about [project types](/creating-project/#project-types). + + +All translated and approved files (or target file bundles) are automatically merged into the `l10n` branch of the Azure Repos repository. + +## Forbindelse til Azure Repos-konto + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Klik på **Azure Repos** på integrationslisten. + 3. Click **Set Up Integration** and select **Source and translation files mode** or **Target file bundles mode** from the drop-down list to integrate via your Azure Repos account. Connecting Azure Repos + + 4. Then authorize the connection with Crowdin on the Azure Repos side: Azure Repos Integration Authorization + + +Er det krævede repo privat, og er der begrænset eller ingen adgang hertil, bed repo-ejeren levere et adgangstoken. Klik bagefter på **Brug personligt adgangstoken**, indsæt tokenet i feltet *Token* og klik på **Opsæt Integration**. + + + +### Vælg depot + +Vælg i den viste dialog det relevante repo og grene, som skal oversættes. + + + + Azure Repos Integration - ikke-opsat + + It's recommended to switch Duplicate Strings to **Show within a version branch**, so identical strings will be hidden between branches. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + + + Azure Repos Integration - ikke-opsat + + + + + + + + +When working with Azure Repos integration in the **Target File Bundles Mode**, the integration will send the completed translations from your Crowdin project without pulling sources from your repo. Når der vælges et repo og grene til oversættelss, angives ligeledes, hvor integrationen skal placere (put) de genererede pakker med oversættelser. + + + Read more about [configuring target file bundles for VCS integration](/bundles/#bundles-in-vcs-integrations). + + +When you work with private integrations (e.g., integrations with self-hosted VCS), you need to add dedicated Crowdin IP addresses to the allowlist to ensure that it operates properly while staying secure. + + + Read more about [IP Addresses](/developer/ip-addresses/#integrations-and-applications). + + +### Tjenestegrene + +When translations are finished and your languages are ready to go live, Crowdin sends the pull request with translations to your version control system. For every branch that is under localization, Crowdin creates an additional service branch with translations. We don't commit directly to the master branch so that you can verify translations first. + +By default, `l10n_` is added to the created service branch name. If necessary, you can easily change it. + + + +### Synkindstillinger + +Configure the synchronization settings according to your needs and preferences. + + + +#### Import Existing Translations + +For at importere eksisterende oversættelser fra det relevante repo, vælg én af flg. muligheder: + +* **One-time translation import after the branch is connected** +* **Always import new translations from the repository** + +Som standard er den første indstilling sat til kun at importere oversættelser én gang. Ryd alternativt begge indstillinger, hvis ingen oversættelsesimport ønskes fra det relevante repo. + + + +Click **Upload translations options** to access the following additional options: + +* **Allow target translation to match source** +* **Approve added translations** + +#### Push Sources + +By default, sources are not pushed to the repo with translations. Although, if you perform a source text review in your Crowdin project and would like to push the changes made to your source files on Crowdin back to your repo, click **Edit**, select *Push Sources* in the integration settings, and click **Save**. + +#### Sync Schedule + +The synchronization is processed every hour automatically. If necessary, you can change the update interval in the integration settings. For at opsætte synktidsplanen – klik på **Redigér**, rul ned til *Synktidsplan*, angiv det ønskede interval og klik på **Gem**. + +There are cases when it's necessary to disable translations from being pushed to the repo temporarily. I så tilfælde, så klik på **Redigér**, ryd *Synktidsplan* i integrationsindstillingerne og klik på **Gem**. Når alt er klar til synk af oversættelser med repo'et, vælg *Synktidsplan* og klik på **Gem**. + +Uafhængigt af synkindstillingerne, synkes kildefilændringer i repo'et stadig med Crowdin kontinuerligt. + +### Grene at auto-synke + +When you set up the integration, you select existing repository branches to be added to the Crowdin project. For automatisk at tilføje fremtidige grene fra Azure Repos til Crowdin, opret et mønster for grennavnene i integrationsindstillingerne. + +F.eks. kan mønstret \**feature* tilføjes i Azure Repos-integrationsindstillingerne. In this case, the future branches that contain this word at the end of the title will be added to the project. + +To add a pattern for branch names, follow these steps: + + + 1. Klik på **Redigér** i afsnittet Azure Repos-integration. + 2. Rul i den viste dialog ned til *Grene til automatisk synk*. + 3. In the *Branches to Sync Automatically* field, use wildcard selectors such as `*`, `?`, `[set]`, `\` and others to identify the necessary branches. + 4. Click **Save**. + + +### Default Configuration File Name + +\`crowdin.yml er standardfilnavnet brugt til automatisk synkede grene. For at ændre standardindstillingerne, klik på *Redigér*, angiv det ønskede navn i feltet *Standardopsætningsfilnavn* i integrationsindstillingerne og klik på **Gem**. + +Angives ikke et tilpasset opsætningsfilnavn til automatisk synkede grene, og finder integrationen ikke en opsætningsfil med standardnavnet 'crowdin.yml\` i roden af grenen, markeres disse grene i integrationsindstillingerne med et rødt ikon med et udråbstegn, der indikerer "Ikke klar. Tjek opsætningen". + +## Valg af indhold til synkning + +To make integration work, you need to specify which source files should be translated and how Crowdin should structure translated files in your repository. + + + +Der er to måder at angive indhold til synkning på: + +* Onlineopsætning +* Manuel opsætning ved oprettelse af en opsætningsfil + +### Onlineopsætning + +This procedure is the same for all integrations with version control systems (VCS). + + + Check [Configuring VCS Integrations Online](/configuring-vcs-integrations-online/) to get to know how to select content for synchronization online. + + +### Oprettelse af opsætningsfil + +The configuration file `crowdin.yml` should be stored in the Azure Repos repository along with each separate branch that you want to translate, so Crowdin knows what files exactly should be sent for translations. + +Filen skal have samme struktur som krævet til CLI, dog bør projektlegitimationsoplysningerne af sikkerhedshensyn ikke gemmes i fil-headeren. + + + Read more about [creating a configuration file](/developer/configuration-file/). + + +## Brug af flere repo'er i ét projekt + +Arbejdes med et multiplatformsprodukt med versioner til forskellige operativsystemer, kan flere repo'er, indeholdende kildefiler til hvert operativsystem, forbindes. In this case, localization resources (e.g., TMs, Glossaries) and translations could be used more efficiently, reducing the time needed for project localization. + +To add another repository, follow these steps: + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Klik på **Azure Repos** på integrationslisten. + 3. Klik **Tilføj repo**. + 4. Configure the integration with the new repository according to your needs and preferences. + + +## Kontrol af Synkroniseringsstatus + +Once the integration is set up, all related information is stored in **Integrations > Azure Repos**. + +Når integrationen er forbundet, kan indstillingerne kun opdateres af projektmedlemmet, der har opsat den. Alle projektlederer, undtagen personen, der opsatte integrationen, vil se knappen **Redigér** deaktiveret med flg. meddelelse, når markøren svæver over den: `Integration opsat af {Full Name} ({username})`. + +Som standard behandles synk automatisk hvert 60. minut. Ved behov for at synke straks, klik på **Synk nu**. + +Integration Sync Now + +Alternatively, if you need to sync only one branch separately, click on the needed branch and select **Sync branch**. + +## Upload af oversættelser fra repo + +Som standard uploades de i repo'et gemte oversættelser kun til Crowdin under den første synkning. To upload translations to Crowdin manually, click on the drop-down toggle on the **Sync Now** button, and click **Sync Translations to Crowdin**. Integrationen vil uploade eksisterende oversættelser til Crowdin-projektet. + +Integration Upload Translations + + + +## Q&A + + + Since VCS integrations in Crowdin use API to commit files but not Git, each file is committed separately. + + Her er et par anbefalinger, som kan hjælpe med at løse lign. situationer: + + * Brug muligheden export_languages til at overspringe commits fra sprog, som endnu ikke er relevante. Read more about the [Export languages parameter](/developer/configuration-file/#export-languages). + * Use the `[ci skip]` tag in the commit messages to skip unnecessary builds. Read more about the [Commit Message parameter](/developer/configuration-file/#commit-message). + * Opsæt det foretrukne synkinterval via [Synktidsplan](#synchronization-settings) (f.eks. én hver 24. time). + * Squash commits, når en lokaliseringsgren flettes for at holde master-grenhistorikken ren og ryddelig. + diff --git a/src/content/docs/da/crowdin/integrations/bitbucket.mdx b/src/content/docs/da/crowdin/integrations/bitbucket.mdx new file mode 100644 index 00000000..9c219062 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/bitbucket.mdx @@ -0,0 +1,230 @@ +--- +title: Bitbucket-integration +description: Synchronize files between your Bitbucket repository and Crowdin +slug: bitbucket-integration +sidebar: + order: 3 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard, Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import setUpIntegrationDropdown from '!/crowdin/integrations/set_up_integration_dropdown.png'; +import authorization from '!/crowdin/integrations/bitbucket_integration_authorization.png'; +import unconfigured from '!/crowdin/integrations/integration_unconfigured.png'; +import unconfiguredSb from '!/crowdin/integrations/integration_unconfigured_sb.png'; +import syncNow from '!/crowdin/integrations/integration_sync_now.png'; +import uploadTranslations from '!/crowdin/integrations/integration_sync_translations_to_crowdin.png'; + +The Bitbucket integration allows you to synchronize files between your Bitbucket repo and Crowdin project. + + + +In file-based projects, there are two possible Bitbucket integration modes you can choose from: + +* **Source and translation files mode** – synchronize source and translation files between your Bitbucket repository and Crowdin project. +* **Målfil-pakketilstand** – generér og push oversættelsesfiler i det valgte format til Bitbucket-repo'et fra Crowdin-projektet. I denne tilstand pusher integration oversættelsesfiler og synker ikke kilder fra repo'et. I tilfælde, hvor der udføres en kildetekstrevision i Crowdin-projektet, og kildeteksten ønskes opdateret i repo'et, kan der tilføjes et kildesprog som målsprog, hvilket så pushes til repo'et sammen med oversættelserne. + +I strengbaserede projekter opererer Bitbucket-integration udelukkende i tilstanden **Målfil-pakker**. + + + Read more about [project types](/creating-project/#project-types). + + +All translated and approved files (or target file bundles) are automatically merged into the `l10n` branch of the Bitbucket repository. + +## Forbinde med GitHub-konto + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Klik på **Bitbucket** på integrationslisten. + 3. Click **Set Up Integration** and select **Source and translation files mode** or **Target file bundles mode** from the drop-down list to integrate via your Bitbucket account. Connecting Bitbucket + + 4. Then authorize the connection with Crowdin on the Bitbucket side: Authorization + + +### Vælg depot + +Vælg i den viste dialog det relevante repo og grene, som skal oversættes. + + + + Bitbucket Integration Unconfigured + + It's recommended to switch Duplicate Strings to **Show within a version branch**, so identical strings will be hidden between branches. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + + + Bitbucket Integration Unconfigured + + + + + + + + +When working with Bitbucket integration in the **Target File Bundles Mode**, the integration will send the completed translations from your Crowdin project without pulling sources from your repo. Når der vælges et repo og grene til oversættelss, angives ligeledes, hvor integrationen skal placere (put) de genererede pakker med oversættelser. + + + Read more about [configuring target file bundles for VCS integration](/bundles/#bundles-in-vcs-integrations). + + +When you work with private integrations (e.g., integrations with self-hosted VCS), you need to add dedicated Crowdin IP addresses to the allowlist to ensure that it operates properly while staying secure. + + + Read more about [IP Addresses](/developer/ip-addresses/#integrations-and-applications). + + +### Tjenestegrene + +When translations are finished and your languages are ready to go live, Crowdin sends the pull request with translations to your version control system. For every branch that is under localization, Crowdin creates an additional service branch with translations. We don't commit directly to the master branch so that you can verify translations first. + +By default, `l10n_` is added to the created service branch name. If necessary, you can easily change it. + + + +### Synkindstillinger + +Configure the synchronization settings according to your needs and preferences. + + + +#### Import Existing Translations + +For at importere eksisterende oversættelser fra det relevante repo, vælg én af flg. muligheder: + +* **One-time translation import after the branch is connected** +* **Always import new translations from the repository** + +Som standard er den første indstilling sat til kun at importere oversættelser én gang. Ryd alternativt begge indstillinger, hvis ingen oversættelsesimport ønskes fra det relevante repo. + + + +Click **Upload translations options** to access the following additional options: + +* **Allow target translation to match source** +* **Approve added translations** + +#### Push Sources + +By default, sources are not pushed to the repo with translations. Although, if you perform a source text review in your Crowdin project and would like to push the changes made to your source files on Crowdin back to your repo, click **Edit**, select *Push Sources* in the integration settings, and click **Save**. + +#### Sync Schedule + +The synchronization is processed every hour automatically. If necessary, you can change the update interval in the integration settings. For at opsætte synktidsplanen – klik på **Redigér**, rul ned til *Synktidsplan*, angiv det ønskede interval og klik på **Gem**. + +There are cases when it's necessary to disable translations from being pushed to the repo temporarily. I så tilfælde, så klik på **Redigér**, ryd *Synktidsplan* i integrationsindstillingerne og klik på **Gem**. Når alt er klar til synk af oversættelser med repo'et, vælg *Synktidsplan* og klik på **Gem**. + +Uafhængigt af synkindstillingerne, synkes kildefilændringer i repo'et stadig med Crowdin kontinuerligt. + +### Grene at auto-synke + +When you set up the integration, you select existing repository branches to be added to the Crowdin project. To add future branches from Bitbucket to Crowdin automatically, create a pattern for the branch names in the integration settings. + +F.eks. kan en **mønsterfunktion** tilføjes i Bitbucket-integrationsindstillingerne. In this case, the future branches that contain this word at the end of the title will be added to the project. + +To add a pattern for branch names, follow these steps: + + + 1. Klik på **Redigér** i afsnittet Bitbucket-integration. + 2. Rul i den viste dialog ned til *Grene til automatisk synk*. + 3. In the *Branches to Sync Automatically* field, use wildcard selectors such as `*`, `?`, `[set]`, `\` and others to identify the necessary branches. + 4. Click **Save**. + + +### Default Configuration File Name + +\`crowdin.yml er standardfilnavnet brugt til automatisk synkede grene. For at ændre standardindstillingerne, klik på *Redigér*, angiv det ønskede navn i feltet *Standardopsætningsfilnavn* i integrationsindstillingerne og klik på **Gem**. + +Angives ikke et tilpasset opsætningsfilnavn til automatisk synkede grene, og finder integrationen ikke en opsætningsfil med standardnavnet 'crowdin.yml\` i roden af grenen, markeres disse grene i integrationsindstillingerne med et rødt ikon med et udråbstegn, der indikerer "Ikke klar. Tjek opsætningen". + +## Valg af indhold til synkning + +To make integration work, you need to specify which source files should be translated and how Crowdin should structure translated files in your repository. For at få integrationen til at fungere i tilstanden Målfil-pakker, vælg de pakker, som skal pushes til det relevante repo. + + + +Der er to måder at angive indhold til synkning på: + +* Onlineopsætning +* Manuel opsætning ved oprettelse af en opsætningsfil + +### Onlineopsætning + +This procedure is the same for all integrations with version control systems (VCS). + + + Check [Configuring VCS Integrations Online](/configuring-vcs-integrations-online/) to get to know how to select content for synchronization online. + + +### Oprettelse af opsætningsfil + +Opsætningsfilen `crowdin.yml` skal gemmes i Bitbucket-repo'et sammen med hver separate gren, der skal oversættes, så Crowdin ved, præcist hvilke filer, som skal sendes til oversættelser. + +Filen skal have samme struktur som krævet til CLI, dog bør projektlegitimationsoplysningerne af sikkerhedshensyn ikke gemmes i fil-headeren. + + + Read more about [creating a configuration file](/developer/configuration-file/). + + +## Brug af flere repo'er i ét projekt + +Arbejdes med et multiplatformsprodukt med versioner til forskellige operativsystemer, kan flere repo'er, indeholdende kildefiler til hvert operativsystem, forbindes. In this case, localization resources (e.g., TMs, Glossaries) and translations could be used more efficiently, reducing the time needed for project localization. + +To add another repository, follow these steps: + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Klik på **Bitbucket** på integrationslisten. + 3. Klik **Tilføj repo**. + 4. Configure the integration with the new repository according to your needs and preferences. + + +## Kontrol af Synkroniseringsstatus + +Once the integration is set up, all related information is stored in **Integrations > Bitbucket**. + +Når integrationen er forbundet, kan indstillingerne kun opdateres af projektmedlemmet, der har opsat den. Alle projektlederer, undtagen personen, der opsatte integrationen, vil se knappen **Redigér** deaktiveret med flg. meddelelse, når markøren svæver over den: `Integration opsat af {Full Name} ({username})`. + +Som standard behandles synk automatisk hvert 60. minut. Ved behov for at synke straks, klik på **Synk nu**. + +Bitbucket Sync Now + +Alternatively, if you need to sync only one branch separately, click on the needed branch and select **Sync branch**. + +## Upload af oversættelser fra repo + +Som standard uploades de i repo'et gemte oversættelser kun til Crowdin under den første synkning. To upload translations to Crowdin manually, click on the drop-down toggle on the **Sync Now** button, and click **Sync Translations to Crowdin**. Integrationen vil uploade eksisterende oversættelser til Crowdin-projektet. + +Bitbucket Upload Translations + + + +## Q&A + + + Since VCS integrations in Crowdin use API to commit files but not Git, each file is committed separately. + + Her er et par anbefalinger, som kan hjælpe med at løse lign. situationer: + + * Brug muligheden export_languages til at overspringe commits fra sprog, som endnu ikke er relevante. Read more about the [Export languages parameter](/developer/configuration-file/#export-languages). + * Use the `[ci skip]` tag in the commit messages to skip unnecessary builds. Read more about the [Commit Message parameter](/developer/configuration-file/#commit-message). + * Opsæt det foretrukne synkinterval via [Synktidsplan](#synchronization-settings) (f.eks. én hver 24. time). + * Squash commits, når en lokaliseringsgren flettes for at holde master-grenhistorikken ren og ryddelig. + diff --git a/src/content/docs/da/crowdin/integrations/cdn-distributions.mdx b/src/content/docs/da/crowdin/integrations/cdn-distributions.mdx new file mode 100644 index 00000000..d68f29b2 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/cdn-distributions.mdx @@ -0,0 +1,191 @@ +--- +title: CDN Distributions +description: Deliver translated content to your app instantly via CDN +slug: cdn-distributions +sidebar: + order: 6 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, Tabs, TabItem, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import webFlow from '!/crowdin/integrations/cdn_distributions_web.png'; +import mobileFlow from '!/crowdin/integrations/cdn_distributions_mobile_server_desktop.png'; +import addDistribution from '!/crowdin/integrations/cdn_distributions_add_distribution.png'; +import releaseDistribution from '!/crowdin/integrations/cdn_distributions_release_distribution.png'; +import usagePrice from '!/crowdin/integrations/cdn_distributions_usage_price.png'; +import usageStats from '!/crowdin/integrations/cdn_distributions_usage_statistics.png'; + +CDN Distributions allow you to instantly update sources and translations in your mobile, server, desktop, or web apps with a single click without preparing a new release. + +## How It Works + +The following illustrations provide a visual representation of how source and translation content delivery works for different types of applications. + + + + CDN Distributions Flow for Mobile Apps + + + CDN Distributions Flow for Web Apps + + + +## Distribution Setup + +A distribution is a CDN vault that mirrors your project's translated content and is required for integration with your apps. Distributions work by using [Bundles](/bundles/) to package and serve your files. + +To configure a distribution, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Expand the **CDN Distributions** section. + 3. Click **Add**. + 4. In the **Add distribution** dialog, enter the preferred name for your distribution. + 5. Select the bundles you want to include in this distribution or click **Add bundle** to create one from scratch. You can use the **Search bundles** field to quickly find specific bundles by name. + 6. Klik på **Opret**. + 7. Copy the **Distribution Hash** and **Distribution Manifest**. The manifest is a JSON file containing key distribution details (e.g., files, languages, paths) that can be used in your integration. + + + + + 1. Open your project and go to the **Download** tab. + 2. Expand the **CDN Distributions** section. + 3. Click **Add**. + 4. In the **Add distribution** dialog, enter the preferred name for your distribution. + 5. Select the bundles you want to include in this distribution or click **Add bundle** to create one from scratch. You can use the **Search bundles** field to quickly find specific bundles by name. + 6. Klik på **Opret**. + 7. Copy the **Distribution Hash** and **Distribution Manifest**. The manifest is a JSON file containing key distribution details (e.g., files, languages, paths) that can be used in your integration. + + + + +CDN Distribution with Bundles + + + +## For Mobile Applications + +To send the translated content to your mobile apps via CDN Distributions, use the Crowdin SDKs. + + + + + + + + +## For Web Applications + +To send the translated content to your web apps via CDN Distributions, use the Crowdin OTA JavaScript client. + + + Read more about the [Crowdin OTA JavaScript client](https://crowdin.github.io/ota-client-js/). + + +To manage the translated content delivery to your web apps manually, you can either: + +* Use the **Distribution Manifest URL**, which displays a JSON file containing distribution details (files, languages, etc.), or +* Form each file URL with the **distribution hash**, as shown below. + +Form the URL to the translation file as follows: + +```shell +https://distributions.crowdin.net/{distribution_hash}/content/{path_to_file} +``` + +`{path_to_file}` will match the path used in your regular translation build. If your files don’t have export patterns including language code placeholders (e.g., `%locale%`, `%two_letters_code%`, etc.), Crowdin automatically adds the Crowdin language code at the beginning of the path. + +To see all available files and languages for your distribution, copy the Distribution Manifest URL (provided in the Crowdin UI) and open it in your browser. + +You’ll see a JSON structure like: + +```json +{ + "files": ["/crowdin_sample_android.xml"], + "languages": ["fr","de","uk"], + "language_mapping": [], + "custom_languages": [], + "timestamp": 1234567890, + "content": { + "fr": ["/content/fr/crowdin_sample_android.xml"], + "de": ["/content/de/crowdin_sample_android.xml"], + "uk": ["/content/uk/crowdin_sample_android.xml"] + }, + "mapping": ["/mapping/en/crowdin_sample_android.xml"] +} +``` + +This JSON includes the exact paths to use with the distribution. + +## Pricing + +| **Pricing Component** | **Free Quota** | **Price** | +| --------------------- | -------------- | ---------- | +| Request Count | 1M/month | $3.00/1M | +| Data Transfer | 10GB/month | $2.00/10GB | + +A request is considered any single query to a CDN (e.g., a request to a distribution manifest, a request to a distribution file, etc.). + +Data transfer is the amount of data transferred over the network (including headers). The system delivers your language packages via CDN, containing all the existing translations. + +If the distribution contains content divided into multiple files, a request to download each file is counted as a separate request. Additionally, the volume of files is also counted as a data transfer. + +For example, if a distribution contains 20 files, each of which is 5MB, the download is counted as 20 requests and 100MB of data transfer. + +To reduce requests to the CDN, you can put all the necessary content into one file (using Bundles), and when it is downloaded, the system counts one request instead of 20 separate ones. Additionally, caching configuration can be made on the app's side. + +In our statistics, we use data provided by AWS. If 1,000,001 (1 million and 1) requests are made in a month, the price for requests will be $6. If 10GB and 1 byte are transferred in a month, the price for data transfer will be $4. The combined total will be $10 per month for requests and data transfer. + +## Managing Your CDN Usage + +You can manage your CDN usage price and set up notifications for daily usage limits in the **Account Settings > Billing > CDN Distributions**. + +### CDN Usage Price + +In the **CDN Distributions** usage section, you can see the total amount spent during the current billing cycle (one month). This includes a detailed breakdown of requests and data transfer with their respective prices. Payment for CDN usage will be included in your Crowdin subscription on the next billing cycle. Crowdin Credits does not cover CDN usage. + +CDN Usage Price + +### Setting Daily Balance Warning Threshold + +You can set a daily CDN usage limit, and when this threshold is exceeded, you'll receive a notification. By default, the limit is set to $30 per day. This feature helps you stay informed of your usage and avoid unexpected overages. You can update the limit anytime. Additionally, if your free quota (1M requests and 10GB of data transfer) is exceeded, a one-time notification will be sent. + +To set up usage notifications, follow these steps: + + + 1. Open your **Account Settings** and go to the **Billing** tab. + 2. Locate the **CDN Distributions** section. + 3. Enter your desired threshold amount in the **Daily balance warning threshold, $** field. + 4. Click **Save** to confirm your settings. + + +### Usage Statistics + +The **Usage Statistics** section provides a visual analysis of your CDN usage via an interactive graph, showing detailed statistics for the month. You can view data for all distributions or focus on specific ones. + +The graph displays three lines simultaneously: request quantity, transfer costs, and data transferred. Hover over the data points to see daily totals for each category. + +You can also focus on a specific category by hovering over its title under the graph. To hide a certain category from the graph, click on its title. + +Usage Statistics + +### Project Statistics + +The **Project Statistics** section, located below the graph, provides a detailed breakdown of your CDN usage grouped by project. This table helps you track which projects are consuming the most resources during the selected period. + +Each row in the table represents a single project and includes the following information: + +* **Project**: The name of the project. +* **Requests**: The total number of requests made by the project. +* **Data Transferred (GB)**: The total data transferred by the project. +* **Price**: The approximate cost for the project's usage. + + diff --git a/src/content/docs/da/crowdin/integrations/configuring-vcs-online.mdx b/src/content/docs/da/crowdin/integrations/configuring-vcs-online.mdx new file mode 100644 index 00000000..da5b7d45 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/configuring-vcs-online.mdx @@ -0,0 +1,166 @@ +--- +title: Opsæt VCS-integrationer Online +description: Learn how to configure a DVCS integration online in Crowdin +slug: configuring-vcs-integrations-online +sidebar: + order: 5 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import configuringSpreadsheets from '!/crowdin/integrations/vcs_configuring_spreadsheets.png'; +import configuringXml from '!/crowdin/integrations/vcs_configuring_xml.png'; +import editIntegrationEditBranchBtn from '!/crowdin/integrations/vcs_edit_integration_edit_branch_btn.png'; +import filesList from '!/crowdin/integrations/vcs_files_list.png'; +import filesListFilter from '!/crowdin/integrations/vcs_files_list_filter.png'; +import ignoreFiles from '!/crowdin/integrations/vcs_ignore_files.png'; +import languageMapping from '!/crowdin/integrations/vcs_language_mapping.png'; +import languageMapping2 from '!/crowdin/integrations/vcs_language_mapping2.png'; +import loadConfiguration from '!/crowdin/integrations/vcs_load_configuration.png'; + +To configure a version control system integration, specify the source files you'd like to translate and how Crowdin should structure the translated files in your repository. + +## Grenopsætning + +Once you've selected your repository and branch for translation, the next step is to configure the selected branch. Click to open the **Branch Configuration** dialog and start the configuration. In the **Branch Configuration** dialog, you can either load the existing configuration file stored in your repository or create a new configuration from scratch. + +Edit Integration + +If you want your VCS integration to work in the **Target File Bundles Mode**, you need to configure target file bundles for each branch you have selected for translation. + + + Read more about [configuring target file bundles for VCS integration](/bundles/#bundles-in-vcs-integrations). + + +## Indlæsning af en Opsætning + +To load the existing configuration file stored in your repository, follow these steps: + + + 1. Click and select **Load configuration**. + 2. Specify the name of the configuration file in your repository. + 3. Click **Continue**. Load Configuration + + +The configuration will be displayed in the **Branch Configuration** dialog. You can use it as is or modify it if necessary. + +## Oprettelse af en Opsætning + +To create a new configuration file to be used by the integration, specify the preferred name and click **Continue** in the **Branch Configuration** dialog. + +Then specify the source and translated file paths using the patterns and placeholders listed below. Via højre panel kan strukturen af de kildefiler, som uploades til oversættelse og strukturen af de oversatte filer baseret på de angivne stier, prævises. + +Once you've finished setting up the configuration for the selected branch and saved the changes, the configuration file will be saved in the root of the translation branch in your repository. + +### Mønstre + +You can use wildcard (`*`, `**`, `?`, `[set]`, `\`) patterns to specify which files should be uploaded for translation. + + + Read more about [wildcard patterns](/developer/configuration-file/#general-configuration). + + +### Pladsholdere + +Use placeholders to specify where translated files will be placed and how they will be named: + + + +## Avancerede Indstillinger + +The advanced settings provide more control over the integration's behavior. You can specify files to be excluded from translation, map custom language codes, and configure parsing options for structured file formats, such as spreadsheets and XML. This section also covers additional parameters that can be configured by manually editing the `crowdin.yml` file in your repository. + +### Ignorering af filer + +If you don't want some files to be translated, click **Add ignored pattern**, specify the pattern for those files, and Crowdin will not upload those files for translation. + +Ignorere filer eller mapper + +### Sprogtilknytning + +If your project uses custom names for locale directories, you can use language mapping to map your own languages to be recognized by Crowdin. + +To add a language mapping, follow these steps: + + + 1. Click **Language Mapping**. Language mapping + 2. Vælg det relevante sprog og en variabel. + 3. Angiv en tilpasset kode. + 4. Click **Add Mapping** to add another custom code. Language mapping + 5. Click **Save**. + + +### Opsætning af regneark + +You can specify the scheme of your spreadsheet file in the **Scheme** field. To create the scheme for your CSV or XLS/XLSX file, use the following constants: + +* `identifier` – column contains string identifiers. +* `source_phrase` – column contains source strings. +* `source_or_translation` – column contains source strings, but the same column will be filled with translations when the file is exported. If you upload existing translations, the values from this column will be used as translations. +* `translation` – column contains translations. +* `context` – column contains comments or context information for the source strings. +* `max_length` – column contains max.length limit values for the string translations. +* `labels` – column contains labels for the source strings. +* `none` – column that will be skipped during import. + +**Scheme example**: `identifier,source_phrase,context,fr,de,it,uk` ([Language Codes](/developer/language-codes/)). + +If a spreadsheet contains the translations for several target languages, select **Multilingual file**. If you don't want to translate the text stored in the first row, select **Import first line as a header**. + +Opsætning af regneark + +### Opsætning af XML-filer + +You can configure the XML file import settings to specify how Crowdin should handle the XML files. + +Opsætning af XML-filer + +| **Option** | **Description** | +| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Translate Content** | Vælg, for at oversætte tekster omkranset af tags. | +| **Translate Attributes** | Vælg, for at oversætte tag-attributter. | +| **Content Segmentation** | Select to split the XML source file's content into shorter text segments. | +| **Translatable Elements** | This is an array of strings, where each item is the XPaths to the DOM element that should be imported. Sample path: `/path/to/node` or `/path/to/attribute[@attr]` | + + + +### Yderligere parametre + +Flg. parametre kan ikke opsættes online: + +* `preserve_hierarchy` - preserves the directory structure in Crowdin +* `dest` - allows you to specify a file name in Crowdin +* `type` - allows you to specify a file type in Crowdin +* `update_option` - keeps translations and keeps/removes approvals of changed strings during a file update +* `commit_message` - additional commit message that can include Git tags +* `export_languages` - export translations for the specified languages + +Once you save the online configuration, a `crowdin.yml` file is saved in the root of the configured branch in your repository. Denne fil kan redigeres manuelt for at tilføje ønskede parametre. + + + Read more about the [configuration file](/developer/configuration-file/#configuration-file-for-vcs-integrations). + + +## Gemme opsætning + + + 1. Click **Save** to preview the created configuration. Save configuration + 2. Click **Add File Filter** if you have multiple file groups with different configurations.
If several branches in the project have the same configuration, and you want the same filters to be applied to them, select **Apply filters to all translatable branches**. + 3. Click **Save** to save the created configuration. Apply filters to all translatable branches +
+ +Once the configuration is saved, the localizable files will start uploading to your Crowdin project. + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/integrations/figma.mdx b/src/content/docs/da/crowdin/integrations/figma.mdx new file mode 100644 index 00000000..f7a9c409 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/figma.mdx @@ -0,0 +1,469 @@ +--- +title: Figma plug-in +description: Start localizing at the design stage +slug: figma-plugin +sidebar: + order: 8 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, CardGrid, LinkCard, Tabs, TabItem } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import settings from '!/crowdin/integrations/figma_plugin_settings.png'; +import stringsTab from '!/crowdin/integrations/figma_plugin_strings_tab.png'; +import addStrings from '!/crowdin/integrations/figma_plugin_add_strings.png'; +import uploadSummary from '!/crowdin/integrations/figma_plugin_upload_summary.png'; +import previewStrings from '!/crowdin/integrations/figma_plugin_preview_strings.png'; +import pagesTab from '!/crowdin/integrations/figma_plugin_pages_tab.png'; + +With the Crowdin for Figma plugin, you can use texts from Crowdin in your designs to save time for both designers and developers. Disse kan omfatte originale eller oversatte tekster. Om ønsket kan nye tilføjes (f.eks. dialogtitler, knapetiketter) og indsendes til Crowdin-oversættere. + +## Brugsstudier + +* Generér hurtigt flersprogede, kreative aktiver. +* Translate mockups, preserving original formatting and styles, and test them in different languages before the programming starts. +* Stop med at bruge 'Lorem Ipsum', føj i stedet reelle tekster fra Crowdin til prototyperne. Strings added from Crowdin become linked to the text fields in Figma. +* Opret og upload kildestrenge fra designs til Crowdin-projektet. Oprettede strenge knyttes til tekstfelter i Figma. Udviklere kan således anvende uploadede strenge og reducere udviklingstidforbruget. +* Prævis oversættelser og strengnøgler i designene. +* Upload taggede skærmfotos til Crowdin-projektet. + +## Installation + + + 1. Log ind på Figma. + 2. Open one of your design files or click **New design file**. + 3. In the file menu, click **Plugins > Manage plugins…**. Alternatively, right-click the canvas and click **Plugins > Manage plugins**. + 4. Use the search field to find the **Crowdin for Figma** plugin. + 5. Click on the **Crowdin for Figma** plugin and select **Save**. + 6. Once saved, click on the **Crowdin for Figma** plugin to run it. + + +## Configuration + + + +### Setting up Credentials + +Følg disse trin for at angive Crowdin-akkreditiverne i Figma: + + + 1. In the file menu, go to **Plugins > Saved plugins**. Alternatively, right-click the canvas and click **Plugins > Saved plugins**. + 2. Click **Crowdin for Figma**. + 3. Switch to the **Settings** tab. + 4. Angiv det relevante Personlige adgangstoken. + 5. Click **Connect**. + + +Følg disse trin for at generere et nyt token i Crowdin: + + + 1. Go to **Account Settings > API**, *Personal Access Tokens* section, and click **New Token**. + 2. Specify *Token Name*, select *Scopes*, and click **Create**. + + + + * **Projects (List, Get, Create, Edit)** - Grants access to project lists, permission to view, create and update projects. + * **Source files & strings** - Grants access to add, get, delete, and update project branches, directories, source files, and source strings, as well as access to file revisions. + * **Translations** - Grants to access to add new and manage existing translations. + * **Screenshots** - Grants access to get screenshots list, add, get, replace, and delete screenshots, ability to access and modify screenshot tags. + + +### Selecting a Project + +To select the Crowdin project you'd like to work with, follow these steps: + + + 1. In the **Settings** tab, click the drop-down menu under **Crowdin Project**, and select a project from the list. + 2. Select the **type of content** you're going to work with in this project (e.g., UI Localization or Marketing Visuals Localization) and click **Save**. The selected option affects which mode of the Crowdin for Figma plugin will be available to you. + 3. *(Optional)* In the **Crowdin Branch** section, select the specific branch your content will be uploaded to. If your project uses version branches, you can either select an existing one or create a new one directly from Figma; otherwise, you can skip this step. + * **To select an existing branch**: Choose the desired branch from the drop-down list. + * **To create a new branch**: Click next to the branch field. In the **New Version Branch** dialog, enter a name and click **Create**. The new branch will be created in your Crowdin project and automatically selected in the plugin. + + +Figma Plugin Settings + + + + + + +## UI-lokalisering + +Use the **Strings** tab when localizing UI and working on dynamic pages with your development and marketing teams. In this tab, you can add source strings from Crowdin to your designs in Figma in a click. Når teksterne er anvendt i designs, kan taggede skærmfotos automatisk uploades tilbage i Crowdin som oversætterreferencer. + +### Brug af kildestrenge fra Crowdin i Figma + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. In the **Strings** tab, use the **Search** field to find the specific copy. Strenge kan søges efter kildetekst, strengidentifikator eller kontekst. Figma Plugin Strings Tab + 3. Select the text layer in Figma to which you want to add text and click the link icon next to the needed string in the plugin. + + +After using the source strings from Crowdin in your designs, they become linked with the text fields, and you can [preview translations](#previewing-strings) for these strings in Figma and [upload screenshots](#uploading-tagged-screenshots-to-crowdin) for them to your Crowdin project. + +En enkelt Crowdin-streng kan tilknyttes et eller flere tekstfelter i Figma. Et tekstfelt kan dog kun knyttes til én enkelt Crowdin-streng. Tilknyttes et tekstfelt en eksisterende forbindelse til en ny Crowdin-streng, afsluttes den tidligere forbindelse, og en ny etableres. To unlink a Crowdin string from all text fields it was previously linked to, right-click on the link icon next to the needed string. + +### Managing Linked Strings + +You can edit a string's text, context, or other properties directly within the plugin. To do so, click the icon next to it in the string list. Make your desired changes in the edit form and click **Save**. + +From the same list, you can also hide or delete strings using their respective icons. Any changes you make will be synchronized with your Crowdin project. + + + +### Tilføjelse af kildestrenge fra Figma til Crowdin + +Der kan tilføjes strenge allerede anvendt i designene. + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. To add the strings used in the designs, select the whole frame, multiple frames, or the needed text elements on the frames. + 3. In the **Strings** tab, click . + 4. In the appeared dialog, review the list of strings to be added. If needed, click the filter icon to open the filter panel and exclude certain elements: + * Select the **Skip hidden elements** if some frames contain hidden elements that should not be added to Crowdin. + * Select the **Skip untranslatable elements** if some frames contain untranslatable elements that should not be added to Crowdin. + * Select the **Skip locked elements** to exclude any locked text elements from being sent for translation. This is useful when you want certain text to remain visible on screenshots for context but not be added to Crowdin as a source string. Figma Plugin Add String + 5. *(Optional)* Configure string settings. You can adjust settings for individual strings or apply bulk settings to all strings at once: + * **Individual String Settings**: Click next to a specific string in the list to update its context or set the maximum length of the translated text for that row. + * **Multiple Strings Settings**: Click in the upper right corner, above the string list, to open settings for all selected strings. Here, you can configure the **Max. Length Correction (%)** option. This feature automatically sets a maximum character limit by adding a specified percentage to the original string's length (for example, entering "20" means a 100-character string will have a max length of 120). This is particularly useful for accommodating text expansion during translation, helping you avoid text truncation in the localized UI. Any bulk settings applied here can still be overridden per string using the individual string settings. + 6. Once all the needed strings are selected and configured, click **Next**. + 7. Vælg de ønskede tilvalg på næste dialogside: + * **Auto-link existing strings** – Automatically compare text to existing strings in Crowdin. If there's a match, the text element will be linked to the string in the Crowdin project. + * **Create missing keys** – Only new text elements are added to Crowdin. + * **Merge duplicates** – Link identical text elements to a single new string in Crowdin. The default behavior is to identify duplicates by comparing their source text. This is useful in the following cases: + * When adding multiple text fields with the same text (e.g., several buttons with the label `Submit`), the plugin adds only one string to your Crowdin project and links all duplicate text fields to it. + * If your Crowdin project already contains a string with the same text you're adding from designs, the plugin links to the existing string instead of creating a new one. + * To change the duplicate detection method, enable the **Detect duplicates by key** sub-option. This will make the plugin identify duplicates by their string identifiers (keys) rather than their text content. + * *(Optional)* To add labels to the strings, alternately select them from the **Labels** drop-down menu. + * [**Send screenshots**](#uploading-tagged-screenshots-to-crowdin). + 8. From the **File** drop-down menu, select the file in Crowdin to which you want to add the strings. + 9. From the **Update Option** drop-down menu, select what happens to existing translations and approvals in Crowdin when you update linked strings whose text has changed in Figma. Choose one of the following: + * **Keep Translations and Approvals** – Retains both existing translations and their approval statuses. Ideal for minor typo fixes where the translation remains accurate. + * **Keep Translations** – Retains existing translations but removes approval statuses, meaning the translations will need to be reviewed and approved again. + * **Clear Translations and Approvals** – Removes all existing translations and approvals. Use this when the meaning of the source text changes significantly, requiring the string to be translated from scratch. + 10. Click **Submit**. + + +#### Understanding the Upload Summary + +Once the strings are added to Crowdin, you'll see a summary of the content sent. This summary provides detailed feedback on the operation: + +* **Keys created**: The number of new strings added to your Crowdin project. +* **Keys updated**: The number of existing strings in Crowdin that were updated. +* **Keys linked**: The number of existing strings in Crowdin that were linked to text elements in Figma. +* **Text elements linked**: The total number of text elements in Figma that were linked to strings in Crowdin. This number can be higher than **Keys linked** if multiple text elements were linked to a single string. +* **Screenshots created**: The number of new screenshots uploaded to Crowdin. +* **Screenshots updated**: The number of existing screenshots that were updated. + +From the summary screen, you can click **Open in Crowdin** to view the strings in your project or click **Main page** to return to the plugin's main screen. + +Figma Plugin Upload Summary + +### Tilføjelse af kildestrenge med flertalsformer + +Strenge med flertalsformer kan tilføjes. + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. To add the strings used in the designs, select the whole frame, multiple frames, or the needed text elements on the frames. + 3. In the **Strings** tab, click . + 4. In the appeared dialog, review the list of strings. + 5. Click next to the needed string and click **Add plurals**. + 6. In the appeared dialog, fill in the fields for each plural form and click **Save**. Depending on the source language of the connected Crowdin project, there could be a different number of plural forms you should specify. + 7. Once all the needed strings are selected and configured, click **Next**. + 8. Select the preferred options and the file in Crowdin you want to add the strings to, then click **Submit**. + + + + + + Read more about [Plural Forms](/online-editor/#plural-forms). + + +### Opsætning af ICU-kildestrengspladsholdere + +Ved brug af ICU-strenge i design kan der opsættes pladsholderværdier, og efter tilføjelse af sådanne strenge til designs, vil de fremgå i en formateret visning med de prædefinerede værdier. + +Once you [use](#using-source-strings-from-crowdin-in-figma) the needed ICU string from Crowdin in your design, you can configure its placeholder values. + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. In the **Strings** tab, use the **Search** field to find the specific copy by source text, string identifier, or context. + 3. Click on the needed ICU string. + 4. Click **Set placeholders**. + 5. Angiv de relevante værdier for ICU-strengpladsholderne. + 6. Click **Save** to save the entered placeholders. + 7. Click **Save** to update the source string text in designs. + + +When [previewing translations](#previewing-strings) for ICU strings in Figma, they will also be displayed in a formatted view if the values were preconfigured beforehand. + +### Indstillinger for Nøglenavngivningsmønster + +To simplify adding strings from Figma to the Crowdin project, you can set up the desired key naming pattern for the source string identifiers in the plugin settings. Crowdin til Figma-plugin'et vil foreslå strengidentifikatorer til nye strenge baseret på det valgte mønster. Under tilføjelse nye kildestrenge, kan den foreslåede identifikator altid redigeres til det foretrukne udseende. + +Følg disse trin for at vælge nøglenavngivningsmønsteret: + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. Switch to the **Settings** tab. + 3. In the **Key Naming Pattern** section, select the preferred option from the drop-down menu. + + +Udover de eksisterende mønstre, kan egne mønster opsættes. To use a custom pattern, select the **Custom key naming pattern** option from the drop-down list and specify your pattern in the **Custom Key Naming Pattern** field. + +### Upload af taggede skærmfotos til Crowdin + +When [adding source strings used in the designs](#adding-source-strings-from-figma-to-crowdin), make sure to keep **Send screenshots** selected. As a result, the Crowdin plugin for Figma will upload screenshots along with the source strings. + +Also, you can update screenshots with an **Update screenshots** option while editing a Crowdin string that is linked to the text fields in designs. + +Additionally, you can mass upload screenshots to Crowdin for strings linked with text fields in designs. + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. Vælg et eller flere billeder med de linkede strenge. + 3. In the **Strings** tab, click **Send tagged screenshots to Crowdin** to upload screenshots for selected frames. + + + + Read more about [Screenshots](/screenshots/). + + +### Prævisning af strenge + +Preview translations from Crowdin for the strings used in the designs directly in Figma. By default, previews are generated on a new, duplicated page to keep your original designs intact. + +Figma Plugin ‐ Prævis strenge + +#### Previewing Translations + +Følg disse trin for at prævise strenge udfyldt med oversættelser: + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. Go to the **Strings** tab and expand the **Preview Strings from Crowdin** section. + 3. Ensure the **Preview in duplicated page** checkbox is selected. + 4. Select **Create with language**. + 5. Vælg det målsprog, for hvilket oversættelser skal prævises (de ønskede flertalsformer kan frit vælges). You can also choose **All languages**. + 6. Choose the content you want to preview in Figma: **All Frames** or **Selected Frames**. + + + + +#### Previewing with Key Names + +To help developers identify strings, you can populate your designs with string keys instead of translated text. + + + 1. Åbn Crowdin til Figma-plugin'et. + 2. Go to the **Strings** tab and expand the **Preview Strings from Crowdin** section. + 3. Ensure the **Preview in duplicated page** checkbox is selected. + 4. Select **Create with key names**. + 5. Choose the content you want to preview in Figma: **All Frames** or **Selected Frames**. + + +### Strengefiltrering + +You can filter strings in the **Strings** tab by various criteria, such as file or link status. Click to open the filter side panel. Here, you can select files to view strings from or show only strings linked to your current text selection (e.g., selected text elements, an entire frame, or multiple frames). Click **Reset** to clear all filter options. + +## Marketingvisualiseringslokalisering + +Use the **Pages** tab to localize static pages, like brochures and banners. In this tab, you can send texts with context for translators to Crowdin and upload translated copies back to Figma. + +Figma Plugin Pages Tab + + + +### Indsendelse af tekster til oversættelse til Crowdin + +Tekst til oversættelse kan sendes fra enten markerede eller alle billeder i en Figma-fil. Oversættere arbejder så med disse tekster i listevisningen og bruger designs som en ekstra kontekst til endnu højere oversættelseskvalitet. + +In Crowdin, a root folder *figma-plugin* will be created. Den indeholder en undermappe navngivet efter Figma-filen med HTML-filer for hvert billede. + +Følg disse trin for at sende Figma-designs til oversættelse: + + + 1. Åbn den relevante Figma-fil. + 2. Go to **Plugins > Crowdin for Figma**. + 3. In the **Pages** > **Figma to Crowdin** section, select the content you want to translate: **All Frames** or **Selected Frames**. + 4. In the next screen, select the target languages for which the uploaded frames will be available for translation in Crowdin. By default, **All languages** is selected. + 5. *(Optional)* Select **Content Segmentation** to split long texts into smaller segments, such as sentences, before sending them to Crowdin. + 6. Click **Send All Frames** (or **Send Selected Frames**). + + +Efter upload af kildefiler til Crowdin-projektet kan folk inviteres til at bidrage med at oversætte og korrekturlæse dem. + + + Read more about [translation strategies](/translation-strategies/). + + +### Uploading Translations from Crowdin to Figma + +You can synchronize texts between Figma and Crowdin projects whenever you want to test the translated copy inside Figma or generate multilingual assets. + +Følg disse trin for at uploade oversatte kopier til Figma: + + + 1. Åbn den relevante Figma-fil. + 2. Go to **Plugins > Crowdin for Figma**. + 3. In the **Pages** > **Crowdin to Figma** section, select the content you want to apply translations to: **All Frames** or **Selected Frames**. + 4. In the next screen, select one or more languages you want to import translations from. You can track the translation progress for each language directly in this list. This progress reflects the translation status of the files located specifically in the *figma-plugin* root folder within your Crowdin project. + 5. *(Optional)* Select **Consolidate translations on the current page** to place the imported translated frames on your current Figma page instead of creating a separate page for them. + 6. Click **Import All Frames** (or **Import Selected Frames**). + + +Efter upload af oversættelser til Figma, vil den ændrede fil indeholde et separat billede med oversættelser for hvert målsprog. De nyligt uploadede oversatte versioner vil ikke tilsidesætte versioner uploadet tidligere. Oversatte kopier, som ikke længere behøves, kan altid slettes. + +If you select **Consolidate translations on the current page**, the translated frames will be added directly to the page you are currently working on. + +If you'd like the newly uploaded translated versions to override the previously uploaded ones, open the plugin **Settings** and select **Override existing translations**. + +### Using the Plugin with Figma Buzz :badge[New]{variant=success} + +The Crowdin for Figma plugin is fully compatible with [Figma's Buzz editor](https://www.figma.com/buzz/), a new space designed for creating marketing and advertising content. This integration is ideal for teams localizing social media assets, digital ads, and other promotional visuals. + +When using the plugin in Buzz, you'll find a streamlined version of the **Pages** tab directly in the left sidebar. The workflow is optimized for the Buzz editor: + +* **Focused Functionality:** Only the **Pages** tab is available, giving you direct access to the features you need for visual localization. +* **Asset-Based Selection:** Instead of selecting frames, you'll work with assets. The buttons are labeled **Selected Assets** to match the Buzz terminology. + +To localize your designs in Figma Buzz, follow these steps: + + + 1. Open the Crowdin plugin from the left sidebar. + 2. In the Buzz editor, select one or more assets you wish to translate. + 3. In the **Figma to Crowdin** section, click **Selected Assets**. Select the target languages on the next screen and click **Send Selected Assets**. + 4. Once translations are ready, go to the **Crowdin to Figma** section and click **Selected Assets**. Select the target languages you want to import on the next screen and click **Import Selected Assets** to apply the translations. + + +## Pseudolokalisering + +Selv før oversættelserne er færdige kan det testes, om det relevante program er klar til at blive lokaliseret vha. pseudolokalisering. Denne funktion muliggør at simulere, hvordan programmets UI vil se ud med forskellige sprog for at tjekke, om kildestrengene skal ændres, før projektlokalisering startes. + +Depending on the content you want to test, you can use the **Strings** or **Pages** tab in the Crowdin for Figma plugin. + + + + + 1. Åbn den relevante Figma-fil. + 2. Go to **Plugins > Crowdin for Figma**. + 3. In the **Strings** > **Preview Strings from Crowdin** section, ensure **Preview in duplicated page** is selected. + 4. Select **Pseudo-localization**. + 5. Select the content you want to test with pseudo-localization: **All Frames** or **Selected Frames**. + 6. In the **Pseudo-localization** dialog, you can choose from predefined presets and configure the settings according to your preferences. + 7. Click **Submit**. + + + + + + 1. Åbn den relevante Figma-fil. + 2. Go to **Plugins > Crowdin for Figma**. + 3. In the **Pages** > **Pseudo-localization** section, select the content you want to test with pseudo-localization: **All Frames** or **Selected Frames**. + 4. In the **Pseudo-localization** dialog, you can choose from predefined presets and configure the settings according to your preferences. + 5. Click **Submit**. + + + + + + + Read more about [Pseudo-localization](/developer/pseudolocalization/) and its settings. + + +## Crowdin til Figma Plugin i Dev Mode + +Figmas Dev Mode giver designere og udviklere mulighed for at samarbejde, sikre nøjagtighed i implementering samt en jævn overgang fra design til kode. + + + Read more about [Figma Dev Mode](https://help.figma.com/hc/en-us/articles/15023124644247-Guide-to-Dev-Mode). + + +Integrationen af Crowdin til Figma-plugin'et med Dev Mode udvider funktionaliteten af begge platforme, hvilket forbedrer lokaliseringsprocessen i designmiljøet. While Dev Mode in Figma is read-only, certain limitations apply to the Crowdin for Figma plugin's capabilities: + +**What You Can Do**: + +* Access the **Strings** tab to view and manage strings. +* Udforsk strengdetaljer, herunder fil, nøgle, kontekst og etiketter. +* Kopier hurtigt strengnøgler for effektiv arbejdsgang. + +Funktioner ikke tilgængelige i Dev Mode: Tilføje nye strenge til Crowdin, tilknytte strenge, sende skærmfotos, prævise oversættelser, redigerer, skjule eller slette strenge. + +### Anvendelse af Crowdin til Figma Plugin i Dev Mode + +Trods begrænsningerne er Crowdin til Figma-plugin'met fortsat værdifuldt i Dev Mode, og tilbyder udviklere en strømlinet tilgang til tekstelementhåndtering. Her er et typisk brugstilfælde: + + + 1. Enter [Dev Mode](https://help.figma.com/hc/en-us/articles/15023124644247-Guide-to-Dev-Mode#01H8CR3K6VG21T3H9789QMV6CP). + 2. In the right sidebar, switch to the *Plugins* tab. + 3. Click on **Crowdin for Figma**. + 4. In the **Strings** tab, click **Filter strings** and select **Show strings linked to selected text elements**. + 5. Select the needed text element on the frame and hover over the icon in the string list to view all needed information (i.e., key, context, file it's stored in, labels) about this particular string. + 6. *(Optional)* Click **Copy string key to clipboard** to further use it in code. + + +### Kompatibilitet med Figma til VS Code + +Derudover integreres Crowdin til Figma-plugin'et problemfrit med Figma til VS-kode, og dets funktionalitet udvides til udviklere, som bruger dette miljø. + + + Read more about [Figma for VS Code](https://help.figma.com/hc/en-us/articles/15023121296151-Figma-for-VS-Code). + + +## Troubleshooting + +### Screenshot Generation Issues in Large Figma Files + +When uploading strings with screenshots from large Figma files, users may experience slow performance or Figma freezing. This issue occurs when text elements are placed within a large top-level frame. + +When you add a string from Figma to Crowdin, the plugin: + +1. Identifies the top-level frame containing the text element. +2. Converts this frame into an image using the Figma API. +3. Uploads the image to Crowdin as a screenshot. + +The plugin always searches for the highest-level frame in the hierarchy and stops when encountering a non-frame element (such as a section or group). If the top-level frame is too large, generating a screenshot can cause performance issues. + +F.eks.: + +* `section` > `group` > **`frame`** > `text` → The plugin captures the screenshot from `frame`. +* **`frame 1`** > `frame 2` > `frame 3` > `text` → The plugin captures the screenshot from `frame 1`. + +To prevent slowdowns, restructure your Figma file so that top-level frames contain only the relevant UI context. Instead of placing all UI elements in a single large frame, break them into smaller, logical sections. + +### Font Replacement When Linking Strings + +When working in Figma, fonts that are missing locally may cause unexpected changes after linking strings using the Crowdin for Figma plugin. + +This situation typically happens when: + +* The original design uses a font that is not installed in your local Figma environment. +* Figma marks missing fonts with a special **A?** icon shown in the upper-left corner of the canvas and next to the font name in the **Typography** section of the right sidebar. +* When you select a text element with a missing font, Figma displays a **Missing font** dialog offering to replace it. + +If you link a Crowdin string to such a text element, Figma will automatically substitute the missing font with a default available font (e.g., Roboto). This is expected behavior. The plugin attempts to preserve the original font, but when it’s not available in your local system, Figma replaces it to ensure the text remains visible and editable. + +This issue may not be immediately noticeable. Some users detect the font change only after uploading screenshots from Figma to Crowdin, which can cause confusion. + +To avoid this: + +* Check for missing font indicators (**A?**) before linking strings. +* Make sure the fonts used in the original design are installed and available in your Figma. +* If necessary, coordinate with the designer to confirm the correct font setup. diff --git a/src/content/docs/da/crowdin/integrations/github.mdx b/src/content/docs/da/crowdin/integrations/github.mdx new file mode 100644 index 00000000..19f289c5 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/github.mdx @@ -0,0 +1,249 @@ +--- +title: GitHub-integration +description: Synchronize files between your GitHub repository and Crowdin +slug: github-integration +sidebar: + order: 1 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard, Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import setUpIntegrationDropdown from '!/crowdin/integrations/set_up_integration_dropdown.png'; +import authorization from '!/crowdin/integrations/github_integration_authorization.png'; +import unconfigured from '!/crowdin/integrations/integration_unconfigured.png'; +import unconfiguredSb from '!/crowdin/integrations/integration_unconfigured_sb.png'; +import syncNow from '!/crowdin/integrations/integration_sync_now.png'; +import uploadTranslations from '!/crowdin/integrations/integration_sync_translations_to_crowdin.png'; + +The GitHub integration allows you to synchronize files between your GitHub repo and Crowdin project. + + + +In file-based projects, there are two possible GitHub integration modes you can choose from: + +* **Source and translation files mode** – synchronize source and translation files between your GitHub repository and Crowdin project. +* **Target file bundles mode** – generate and push translation files to your GitHub repository from the Crowdin project in the selected format. I denne tilstand pusher integration oversættelsesfiler og synker ikke kilder fra repo'et. I tilfælde, hvor der udføres en kildetekstrevision i Crowdin-projektet, og kildeteksten ønskes opdateret i repo'et, kan der tilføjes et kildesprog som målsprog, hvilket så pushes til repo'et sammen med oversættelserne. + +In string-based projects, GitHub integration exclusively operates in the **Target file bundles mode**. + + + Read more about [project types](/creating-project/#project-types). + + +All translated and approved files (or target file bundles) are automatically merged into the `l10n` branch of the GitHub repository. + + + +## Forbinde GitHub-konto + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Click on **GitHub** in the Integrations list. + 3. Click **Set Up Integration** and select **Source and translation files mode** or **Target file bundles mode** from the drop-down list to integrate via your GitHub account. Connecting GitHub + + 4. Then authorize the connection with Crowdin on the GitHub side: GitHub Integration Authorization + + +In case the repository you need is private, and you have limited or no access to it, please ask the repository owner to provide you with an +[Access Token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/#creating-a-token). Klik bagefter på **Brug personligt adgangstoken**, indsæt tokenet i feltet *Token* og klik på **Opsæt Integration**. + + + +### Vælg depot + +Vælg i den viste dialog det relevante repo og grene, som skal oversættes. + + + + GitHub Integration Unconfigured + + It's recommended to switch Duplicate Strings to **Show within a version branch**, so identical strings will be hidden between branches. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + + + GitHub Integration Unconfigured + + + + + + + + +When working with GitHub integration in the **Target File Bundles Mode**, the integration will send the completed translations from your Crowdin project without pulling sources from your repo. Når der vælges et repo og grene til oversættelss, angives ligeledes, hvor integrationen skal placere (put) de genererede pakker med oversættelser. + + + Read more about [configuring target file bundles for VCS integration](/bundles/#bundles-in-vcs-integrations). + + +When you work with private integrations (e.g., integrations with self-hosted VCS), you need to add dedicated Crowdin IP addresses to the allowlist to ensure that it operates properly while staying secure. + + + Read more about [IP Addresses](/developer/ip-addresses/#integrations-and-applications). + + +### Tjenestegrene + +When translations are finished and your languages are ready to go live, Crowdin sends the pull request with translations to your version control system. For every branch that is under localization, Crowdin creates an additional service branch with translations. We don't commit directly to the master branch so that you can verify translations first. + +By default, `l10n_` is added to the created service branch name. If necessary, you can easily change it. + + + +### Synkindstillinger + +Configure the synchronization settings according to your needs and preferences. + + + +#### Import Existing Translations + +For at importere eksisterende oversættelser fra det relevante repo, vælg én af flg. muligheder: + +* **One-time translation import after the branch is connected** +* **Always import new translations from the repository** + +Som standard er den første indstilling sat til kun at importere oversættelser én gang. Ryd alternativt begge indstillinger, hvis ingen oversættelsesimport ønskes fra det relevante repo. + + + +Click **Upload translations options** to access the following additional options: + +* **Allow target translation to match source** +* **Approve added translations** + +#### Push Sources + +By default, sources are not pushed to the repo with translations. Although, if you perform a source text review in your Crowdin project and would like to push the changes made to your source files on Crowdin back to your repo, click **Edit**, select *Push Sources* in the integration settings, and click **Save**. + +#### Sync Schedule + +The synchronization is processed every hour automatically. If necessary, you can change the update interval in the integration settings. For at opsætte synktidsplanen – klik på **Redigér**, rul ned til *Synktidsplan*, angiv det ønskede interval og klik på **Gem**. + +There are cases when it's necessary to disable translations from being pushed to the repo temporarily. I så tilfælde, så klik på **Redigér**, ryd *Synktidsplan* i integrationsindstillingerne og klik på **Gem**. Når alt er klar til synk af oversættelser med repo'et, vælg *Synktidsplan* og klik på **Gem**. + +Uafhængigt af synkindstillingerne, synkes kildefilændringer i repo'et stadig med Crowdin kontinuerligt. + +### Grene at auto-synke + +When you set up the integration, you select existing repository branches to be added to the Crowdin project. To add future branches from GitHub to Crowdin automatically, create a pattern for the branch names in the integration settings. + +For example, you add a pattern \**feature* in the GitHub integration settings. In this case, the future branches that contain this word at the end of the title will be added to the project. + +To add a pattern for branch names, follow these steps: + + + 1. Click **Edit** in the GitHub integration section. + 2. Rul i den viste dialog ned til *Grene til automatisk synk*. + 3. In the *Branches to Sync Automatically* field, use wildcard selectors such as `*`, `?`, `[set]`, `\` and others to identify the necessary branches. + 4. Click **Save**. + + +### Default Configuration File Name + +\`crowdin.yml er standardfilnavnet brugt til automatisk synkede grene. For at ændre standardindstillingerne, klik på *Redigér*, angiv det ønskede navn i feltet *Standardopsætningsfilnavn* i integrationsindstillingerne og klik på **Gem**. + +Angives ikke et tilpasset opsætningsfilnavn til automatisk synkede grene, og finder integrationen ikke en opsætningsfil med standardnavnet 'crowdin.yml\` i roden af grenen, markeres disse grene i integrationsindstillingerne med et rødt ikon med et udråbstegn, der indikerer "Ikke klar. Tjek opsætningen". + +## Valg af indhold til synkning + +To make integration work, you need to specify which source files should be translated and how Crowdin should structure translated files in your repository. For at få integrationen til at fungere i tilstanden Målfil-pakker, vælg de pakker, som skal pushes til det relevante repo. + + + +Der er to måder at angive indhold til synkning på: + +* Onlineopsætning +* Manuel opsætning ved oprettelse af en opsætningsfil + +### Onlineopsætning + +This procedure is the same for all integrations with version control systems (VCS). + + + Check [Configuring VCS Integrations Online](/configuring-vcs-integrations-online/) to get to know how to select content for synchronization online. + + +### Oprettelse af opsætningsfil + +The configuration file `crowdin.yml` should be stored in the GitHub repository along with each separate branch that you want to translate. + +Filen skal have samme struktur som krævet til CLI, dog bør projektlegitimationsoplysningerne af sikkerhedshensyn ikke gemmes i fil-headeren. + + + Read more about [creating a configuration file](/developer/configuration-file/). + + +## Brug af flere repo'er i ét projekt + +Arbejdes med et multiplatformsprodukt med versioner til forskellige operativsystemer, kan flere repo'er, indeholdende kildefiler til hvert operativsystem, forbindes. In this case, localization resources (e.g., TMs, Glossaries) and translations could be used more efficiently, reducing the time needed for project localization. + +To add another repository, follow these steps: + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Click on **GitHub** in the Integrations list. + 3. Klik **Tilføj repo**. + 4. Configure the integration with the new repository according to your needs and preferences. + + +## Kontrol af Synkroniseringsstatus + +Once the integration is set up, all related information is stored in **Integrations > GitHub**. + +Når integrationen er forbundet, kan indstillingerne kun opdateres af projektmedlemmet, der har opsat den. Alle projektlederer, undtagen personen, der opsatte integrationen, vil se knappen **Redigér** deaktiveret med flg. meddelelse, når markøren svæver over den: `Integration opsat af {Full Name} ({username})`. + +Som standard behandles synk automatisk hvert 60. minut. Ved behov for at synke straks, klik på **Synk nu**. + +GitHub Sync Now + +Alternatively, if you need to sync only one branch separately, click on the needed branch and select **Sync branch**. + +## Upload af oversættelser fra repo + +Som standard uploades de i repo'et gemte oversættelser kun til Crowdin under den første synkning. To upload translations to Crowdin manually, click on the drop-down toggle on the **Sync Now** button, and click **Sync Translations to Crowdin**. Integrationen vil uploade eksisterende oversættelser til Crowdin-projektet. + +GitHub Upload Translations + + + +## Q&A + + + To continue using GitHub integration in Crowdin, follow these steps: + + 1. Go to [Authorized OAuth Apps](https://github.com/settings/applications) in your GitHub account. + 2. Find **Crowdin** OAuth App in the list and revoke its access. + 3. Set up the GitHub integration in your Crowdin project again using the instructions above. + + + + Since VCS integrations in Crowdin use API to commit files but not Git, each file is committed separately. + + Her er et par anbefalinger, som kan hjælpe med at løse lign. situationer: + + * Brug muligheden export_languages til at overspringe commits fra sprog, som endnu ikke er relevante. Read more about the [Export languages parameter](/developer/configuration-file/#export-languages). + * Use the `[ci skip]` tag in the commit messages to skip unnecessary builds. Read more about the [Commit Message parameter](/developer/configuration-file/#commit-message). + * Opsæt det foretrukne synkinterval via [Synktidsplan](#synchronization-settings) (f.eks. én hver 24. time). + * Squash commits, når en lokaliseringsgren flettes for at holde master-grenhistorikken ren og ryddelig. + diff --git a/src/content/docs/da/crowdin/integrations/gitlab.mdx b/src/content/docs/da/crowdin/integrations/gitlab.mdx new file mode 100644 index 00000000..486d7ab0 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/gitlab.mdx @@ -0,0 +1,241 @@ +--- +title: GitLab-integration +description: Synchronize files between your GitLab repository and Crowdin +slug: gitlab-integration +sidebar: + order: 2 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard, Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import setUpIntegrationDropdown from '!/crowdin/integrations/set_up_integration_dropdown.png'; +import authorization from '!/crowdin/integrations/gitlab_integration_authorization.png'; +import unconfigured from '!/crowdin/integrations/integration_unconfigured.png'; +import unconfiguredSb from '!/crowdin/integrations/integration_unconfigured_sb.png'; +import syncNow from '!/crowdin/integrations/integration_sync_now.png'; +import uploadTranslations from '!/crowdin/integrations/integration_sync_translations_to_crowdin.png'; + +The GitLab integration allows you to synchronize files between your GitLab repo and Crowdin project. + + + +In file-based projects, there are two possible GitLab integration modes you can choose from: + +* **Source and translation files mode** – synchronize source and translation files between your GitLab repository and Crowdin project. +* **Target file bundles mode** – generate and push translation files to your GitLab repository from the Crowdin project in the selected format. I denne tilstand pusher integration oversættelsesfiler og synker ikke kilder fra repo'et. I tilfælde, hvor der udføres en kildetekstrevision i Crowdin-projektet, og kildeteksten ønskes opdateret i repo'et, kan der tilføjes et kildesprog som målsprog, hvilket så pushes til repo'et sammen med oversættelserne. + +In string-based projects, GitLab integration exclusively operates in the **Target file bundles mode**. + + + Read more about [project types](/creating-project/#project-types). + + +All translated and approved files (or target file bundles) are automatically merged into the `l10n` branch of the GitLab repository. + + + +## Tilslutning af GitLab-konto + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Click on **GitLab** in the Integrations list. + 3. Click **Set Up Integration** and select **Source and translation files mode** or **Target file bundles mode** from the drop-down list to integrate via your GitLab account. GitLab Integration Connecting GitLab + + 4. Then authorize the connection with Crowdin on the GitLab side: GitLab Integration Authorization + + +Er det krævede repo privat, og er der begrænset eller ingen adgang hertil, bed repo-ejeren levere et adgangstoken. +Klik bagefter på **Brug personligt adgangstoken**, indsæt tokenet i feltet *Token* og klik på **Opsæt Integration**. + + + +### Vælg depot + +Vælg i den viste dialog det relevante repo og grene, som skal oversættes. + + + + GitLab Integration Unconfigured + + It's recommended to switch Duplicate Strings to **Show within a version branch**, so identical strings will be hidden between branches. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + + + GitLab Integration Unconfigured + + + + + + + + +When working with GitLab integration in the **Target File Bundles Mode**, the integration will send the completed translations from your Crowdin project without pulling sources from your repo. Når der vælges et repo og grene til oversættelss, angives ligeledes, hvor integrationen skal placere (put) de genererede pakker med oversættelser. + + + Read more about [configuring target file bundles for VCS integration](/bundles/#bundles-in-vcs-integrations). + + +When you work with private integrations (e.g., integrations with self-hosted VCS), you need to add dedicated Crowdin IP addresses to the allowlist to ensure that it operates properly while staying secure. + + + Read more about [IP Addresses](/developer/ip-addresses/#integrations-and-applications). + + +### Tjenestegrene + +When translations are finished and your languages are ready to go live, Crowdin sends the merge request with translations to your version control system. For every branch that is under localization, Crowdin creates an additional service branch with translations. We don't commit directly to the master branch so that you can verify translations first. + +By default, `l10n_` is added to the created service branch name. If necessary, you can easily change it. + + + +### Synkindstillinger + +Configure the synchronization settings according to your needs and preferences. + + + +#### Import Existing Translations + +For at importere eksisterende oversættelser fra det relevante repo, vælg én af flg. muligheder: + +* **One-time translation import after the branch is connected** +* **Always import new translations from the repository** + +Som standard er den første indstilling sat til kun at importere oversættelser én gang. Ryd alternativt begge indstillinger, hvis ingen oversættelsesimport ønskes fra det relevante repo. + + + +Click **Upload translations options** to access the following additional options: + +* **Allow target translation to match source** +* **Approve added translations** + +#### Push Sources + +By default, sources are not pushed to the repo with translations. Although, if you perform a source text review in your Crowdin project and would like to push the changes made to your source files on Crowdin back to your repo, click **Edit**, select *Push Sources* in the integration settings, and click **Save**. + +#### Sync Schedule + +The synchronization is processed every hour automatically. If necessary, you can change the update interval in the integration settings. For at opsætte synktidsplanen – klik på **Redigér**, rul ned til *Synktidsplan*, angiv det ønskede interval og klik på **Gem**. + +There are cases when it's necessary to disable translations from being pushed to the repo temporarily. I så tilfælde, så klik på **Redigér**, ryd *Synktidsplan* i integrationsindstillingerne og klik på **Gem**. Når alt er klar til synk af oversættelser med repo'et, vælg *Synktidsplan* og klik på **Gem**. + +Uafhængigt af synkindstillingerne, synkes kildefilændringer i repo'et stadig med Crowdin kontinuerligt. + +### Grene at auto-synke + +When you set up the integration, you select existing repository branches to be added to the Crowdin project. To add future branches from GitLab to Crowdin automatically, create a pattern for the branch names in the integration settings. + +For example, you add a pattern \**feature* in the GitLab integration settings. In this case, the future branches that contain this word at the end of the title will be added to the project. + +To add a pattern for branch names, follow these steps: + + + 1. Click **Edit** in the GitLab integration section. + 2. Rul i den viste dialog ned til *Grene til automatisk synk*. + 3. In the *Branches to Sync Automatically* field, use wildcard selectors such as `*`, `?`, `[set]`, `\` and others to identify the necessary branches. + 4. Click **Save**. + + +### Default Configuration File Name + +\`crowdin.yml er standardfilnavnet brugt til automatisk synkede grene. For at ændre standardindstillingerne, klik på *Redigér*, angiv det ønskede navn i feltet *Standardopsætningsfilnavn* i integrationsindstillingerne og klik på **Gem**. + +Angives ikke et tilpasset opsætningsfilnavn til automatisk synkede grene, og finder integrationen ikke en opsætningsfil med standardnavnet 'crowdin.yml\` i roden af grenen, markeres disse grene i integrationsindstillingerne med et rødt ikon med et udråbstegn, der indikerer "Ikke klar. Tjek opsætningen". + +## Valg af indhold til synkning + +To make integration work, you need to specify which source files should be translated and how Crowdin should structure translated files in your repository. For at få integrationen til at fungere i tilstanden Målfil-pakker, vælg de pakker, som skal pushes til det relevante repo. + + + +Der er to måder at angive indhold til synkning på: + +* Onlineopsætning +* Manuel opsætning ved oprettelse af en opsætningsfil + +### Onlineopsætning + +This procedure is the same for all integrations with version control systems (VCS). + + + Check [Configuring VCS Integrations Online](/configuring-vcs-integrations-online/) to get to know how to select content for synchronization online. + + +### Oprettelse af opsætningsfil + +The configuration file `crowdin.yml` should be stored in the GitLab repository along with each separate branch that you want to translate. + +Filen skal have samme struktur som krævet til CLI, dog bør projektlegitimationsoplysningerne af sikkerhedshensyn ikke gemmes i fil-headeren. + + + Read more about [creating a configuration file](/developer/configuration-file/). + + +## Brug af flere repo'er i ét projekt + +Arbejdes med et multiplatformsprodukt med versioner til forskellige operativsystemer, kan flere repo'er, indeholdende kildefiler til hvert operativsystem, forbindes. In this case, localization resources (e.g., TMs, Glossaries) and translations could be used more efficiently, reducing the time needed for project localization. + +To add another repository, follow these steps: + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Click on **GitLab** in the Integrations list. + 3. Klik **Tilføj repo**. + 4. Configure the integration with the new repository according to your needs and preferences. + + +## Kontrol af Synkroniseringsstatus + +Once the integration is set up, all related information is stored in **Integrations > GitLab**. + +Når integrationen er forbundet, kan indstillingerne kun opdateres af projektmedlemmet, der har opsat den. Alle projektlederer, undtagen personen, der opsatte integrationen, vil se knappen **Redigér** deaktiveret med flg. meddelelse, når markøren svæver over den: `Integration opsat af {Full Name} ({username})`. + +Som standard behandles synk automatisk hvert 60. minut. Ved behov for at synke straks, klik på **Synk nu**. + +GitLab Integration Sync Now + +Alternatively, if you need to sync only one branch separately, click on the needed branch and select **Sync branch**. + +## Upload af oversættelser fra repo + +Som standard uploades de i repo'et gemte oversættelser kun til Crowdin under den første synkning. To upload translations to Crowdin manually, click on the drop-down toggle on the **Sync Now** button, and click **Sync Translations to Crowdin**. Integrationen vil uploade eksisterende oversættelser til Crowdin-projektet. + +GitLab Integration Upload Translations + + + +## Q&A + + + Since VCS integrations in Crowdin use API to commit files but not Git, each file is committed separately. + + Her er et par anbefalinger, som kan hjælpe med at løse lign. situationer: + + * Brug muligheden export_languages til at overspringe commits fra sprog, som endnu ikke er relevante. Read more about the [Export languages parameter](/developer/configuration-file/#export-languages). + * Use the `[ci skip]` tag in the commit messages to skip unnecessary builds. Read more about the [Commit Message parameter](/developer/configuration-file/#commit-message). + * Opsæt det foretrukne synkinterval via [Synktidsplan](#synchronization-settings) (f.eks. én hver 24. time). + * Squash commits, når en lokaliseringsgren flettes for at holde master-grenhistorikken ren og ryddelig. + diff --git a/src/content/docs/da/crowdin/integrations/google-play.mdx b/src/content/docs/da/crowdin/integrations/google-play.mdx new file mode 100644 index 00000000..a53bd4d9 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/google-play.mdx @@ -0,0 +1,95 @@ +--- +title: Google Play-integration +description: Connect Google Play with Crowdin to localize your app's data +slug: google-play-integration +sidebar: + order: 11 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import integrationPublish from '!/crowdin/integrations/google_play_integration_publish.png'; +import integrationSelectLanguages from '!/crowdin/integrations/google_play_integration_select_languages.png'; +import integrationServiceAccountCredentials from '!/crowdin/integrations/google_play_integration_service_account_credentials.png'; +import integrationPublishingProgress from '!/crowdin/integrations/google_play_integration_publishing_progress.png'; +import integrationAccess from '!/crowdin/integrations/google_play_integration_access.png'; +import integrationConfigureServiceAccount from '!/crowdin/integrations/google_play_integration_configure_service_account.png'; +import integrationCreateServiceAccount from '!/crowdin/integrations/google_play_integration_create_service_account.png'; +import integrationLinkProject from '!/crowdin/integrations/google_play_integration_link_project.png'; +import integrationPermissions from '!/crowdin/integrations/google_play_integration_permissions.png'; +import integrationSelectProject from '!/crowdin/integrations/google_play_integration_select_project.png'; +import integrationServiceAccountCreateKey from '!/crowdin/integrations/google_play_integration_service_account_create_key.png'; +import integrationServiceAccountKeyType from '!/crowdin/integrations/google_play_integration_service_account_key_type.png'; +import integrationServiceAccountName from '!/crowdin/integrations/google_play_integration_service_account_name.png'; +import integrationServiceAccountRole from '!/crowdin/integrations/google_play_integration_service_account_role.png'; + +Med Crowdins Google Play-integration kan app-data lokaliseringsprocessen fremskyndes. Når integrationen er aktiveret, samles alle tekster fra butikssiden i én fil og tilføjes projektet i Crowdin. Når oversættelser er fuldførte, tager det et par klik at føje dem til appens butikside. + + + +## Tilslutning af Google Play med Crowdin + +Følg disse trin for at tilslutte Google Play med Crowdin-projektet: + + + 1. Åbn det relevante projekt og gå til fanen **Integrationer**. + 2. Click on **Google Play** in the Integrations List. + 3. Enter the package name and click **Set Up Integration**. + + +You can edit the package name if you entered it incorrectly and delete the integration if needed. + +The integration will collect the source texts into a file which will be placed in **Sources > Files**. By default, the file name is set to `google_play.xml`. + +## Udgivelse af oversættelser + +Følg disse trin for at publicere oversættelser: + + + 1. Open your project and go to **Integrations > Google Play**. + 2. Click **Preview & Publish Translations**. Publish Translations + 3. Available translations will appear accordingly to the configured [Export options](/project-settings/export/). Tjek om alle oversættelser ser ud som forventet og ryd afkrydsningsfeltet for de sprog, som ikke ønskes publiceret. Click **Next** to proceed. Selecting Languages for Publishing + 4. Upload a file with your [service account credentials](#creating-service-account-credentials) and click **Publish**. Service Account Credentials + 5. Publiceringsfremskridt kan monitoreres i den næste dialog. Once the translations are uploaded, click **Close**. Publishing Progress + + + + +## Oprettelse af Tjenestekontolegitimationsoplysninger + +For at publicere oversættelser fra Crowdin direkte til et Google Play-projekt, skal adgang til Google Play-konsollen opsættes på forhånd. + + + +Følg disse trin for at oprette og tilføje tjenestekontolegitimationsoplysninger: + + + 1. Knyt Google Play-konsollen til Google Cloud-projektet: + * Open the Google Play Console and go to **Setup >** [**API access**](https://play.google.com/console/u/0/developers/api-access). + * Tilknyt et eksisterende projekt eller opret et nyt. Link Project + 2. Genererér tjenestekontolegitimationsoplysninger: + * Go to [**Service accounts**](https://console.developers.google.com/iam-admin/serviceaccounts). Anmodes herom, så vælg et af de eksisterende projekter. Select Project + * Click **Create Service Account**. Create Service Account + * Specify the service account name and click **Create and Continue**. Service Account Name + * From the **Role** list, select **Service Accounts > Service Account User** and click **Done**. Service Account Role + * Open the Actions menu on the created service account and select **Manage keys**. Configure Service Account + * In the **Keys** tab, click **Add key > Create new key**. Create Key + * Select **JSON** and click **Create**. Key Type + * En JSON-fil indeholdende tjenestekontolegitimationsoplysningerne downloades dernæst til enheden. + 3. Tildel tjenestekontoadgang: + * In the Google Play Console, go to **Setup >** [**API access**](https://play.google.com/console/u/0/developers/api-access) and click **Grant access** on your service account. Grant Access + * In the **Account permissions** tab, select the following permissions: + * Se app-information og download masserapporter (skrivebeskyttet) + * Publicér Play Games-tjenesteprojekter + * Frigiv til produktion, undtag enheder og brug Play App-signering + * Manage store presence Permissions + * Click **Invite user**. + + +Herefter kan filen med tjenestekontoakkreditiverne benytte til at publicere oversættelser fra Crowdin til Google Play. diff --git a/src/content/docs/da/crowdin/integrations/jira.mdx b/src/content/docs/da/crowdin/integrations/jira.mdx new file mode 100644 index 00000000..4a8574f0 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/jira.mdx @@ -0,0 +1,117 @@ +--- +title: JIRA-integration +description: Keep track of source string and translation issues reported in Crowdin +slug: jira-integration +sidebar: + order: 7 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import linkAppStep1 from '!/crowdin/integrations/jira_link_app_step1.png'; +import linkAppStep2 from '!/crowdin/integrations/jira_link_app_step2.png'; +import providingAccess from '!/crowdin/integrations/jira_providing_access.png'; +import createNewLink from '!/crowdin/integrations/jira_create_new_link.png'; +import applicationUrl from '!/crowdin/integrations/jira_application_url.png'; +import setUp from '!/crowdin/integrations/jira_set_up.png'; +import integrationSettings from '!/crowdin/integrations/jira_integration_settings.png'; +import subtask from '!/crowdin/integrations/jira_subtask.png'; +import syncIssues from '!/crowdin/integrations/jira_sync_issues.png'; +import warning from '!/crowdin/integrations/jira_warning.png'; +import allowAccess from '!/crowdin/integrations/jira_allow_access.png'; + +Integration med Atlassian Jira muliggør at holde styr på problematikker relateret til kildestrenge og oversættelser indrapporteret af brugere, som arbejder med projektoversættelsen i Crowdin. + + + +Med den aktuelle integration understøttes flg. problemstillinger i Crowdin i Jira-kontrolpanelet: + +* Generelle problematikker +* Manglende kontekst-problematikker +* Oversættelsesproblematikker +* Kildestrengsproblematikker + +Hver synket problematiktype får den overordnet opgave i Jira opkaldt efter sig. Each issue reported in Crowdin will create a sub-task in the corresponding parent task in Jira. + + + +Når alle anmeldte problematikker er løst, og deres respektive underopgaver lukket i Jira, kan deres overordnede Jira-opgave, repræsenterende en af Crowdin-problematiktyperne, også lukkes. + +As translators report new issues in the Crowdin project, the Jira integration will create new parent Jira task with its corresponding sub-tasks for each issue in the Crowdin project. + +Crowdin-problematikker vist i Jira + +## Tilslutning af Jira med Crowdin + +Følg disse trin for at tilslutte Jira til et Crowdin-projekt: + + +1. Åbn det relevante projekt og gå til fanen **Integrationer**. + +2. Click on **Jira Software** in the Integrations list. + +3. Enter the Base URL of your Jira project and click **Set Up Integration**. Base URL + You’ll then access the **Providing Access to Your Jira Project** dialog. + +4. Configure an **Application Link** in Jira: + + 1. Log in to Jira as a user with **Jira Administrator** permissions. + 2. Go to **Jira settings > Products > Application links**. + 3. Click **Create link**. + Jira administration + 4. Select **Direct application link**, enter your Crowdin URL, and click **Next**. + Application URL + Due to Jira functionality, it sometimes does not receive the response from the entered URL. If you see the message below, check the provided URL to be correct and click **Continue**. + Application Links + 5. Fill in all the required fields in dialog windows and click **Continue** to finish configuring the link: + * App-navn: Crowdin Integration + * Applikationstype: Generisk Applikation + * Select **Create incoming link** and click **Continue** Create a link + * Forbrugernøgle: Crowdin + * Forbrugernavn: Crowdin + * Public Key: copy it from the **Providing Access to Your Jira Project** dialog in Crowdin Link applications + Click **Continue** to finalize the Application Link setup. + +5. Go back to Crowdin and click **Next** in the **Providing Access to Your Jira Project** dialog. Providing Access to Your Jira Project + +6. Tildel læse- og skriveadgang til projektdata i Jira. Crowdin will use this access to help the integration run correctly. Allow access + +7. Choose the Jira project key, select types, and configure settings of Crowdin issues that you'd like to be synchronized with your Jira project. + Tilgængelige Jira-problemstilling er: + * Type + * Subtask Type + + * Prioritet + * Opgavemodtager + * Etiketter (valgfrit) + * Status – used to select the Jira status value that will trigger the closure of a related string issue in the Crowdin project. + + +8. Click **Save**. Jira Integration settings dialog + + +## Synk af problematikker + +Når integrationen er opsat, kan evt. allerede eksisterende problematikker i Crowdin synkes. En kort besked vil oplyse antallet af endnu ikke synkede problematikker. To synchronize them, click **Sync Issues**. + +Synchronize issues + +## Håndtering af Jira-integrationsindstillinger + +To change the integration settings, click **Settings** and apply the necessary changes. Nye indstillinger vil kun gælde for de nyligt synkede problematikker. Alle tidligere synkede problematikker forbliver uændrede. + + + +## Sletning af integration + +To delete the integration, click **Delete Integration**. + + diff --git a/src/content/docs/da/crowdin/integrations/overview.mdx b/src/content/docs/da/crowdin/integrations/overview.mdx new file mode 100644 index 00000000..9e4b9100 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/overview.mdx @@ -0,0 +1,125 @@ +--- +title: Integrationer +description: Seamlessly integrate localization into any phase of your product +slug: integrations +sidebar: + label: Oversigt + order: 0 +--- + +import { Steps, LinkCard, CardGrid, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; + +Seamlessly integrate localization into any phase of your development cycle. Crowdin offers a wide range of integrations with the tools you already use. Automate your localization workflow and save time on manual tasks. + + + +## VCS Integrations + +The key challenge engineers face is the lack of automation. Source content needs to be constantly extracted from the codebase and handed over to the translation team. Completed translations should then be integrated back into the codebase. Without an automated approach, this workflow becomes a repetitive and time-consuming exchange of files. + +With the automation provided by VCS Integrations, source strings are pulled automatically, ensuring they are always up-to-date for your translators. Completed translations are then pushed back to your repository as a request. + + + + + + + + +## Design + +Quickly generate language-specific assets. Send content for translation with context for translators, while you're working on the mock-ups or polishing prototypes. + + + + + + + + +## Starred Apps + +You can star an app by clicking the icon next to its name, either from the app list or within the app itself, allowing you to mark apps for quick access. This feature is available for integrations and tools (excluding service-related items like Webhooks, Service Logs, etc.) and is accessible to project members with the Developer / Translation Requestor role or higher. + +Once you star an app, it gets pinned to the top of the relevant tabs, such as **Integrations** or **Tools**. The app list is automatically sorted by starred items once you add your first favorite. + +Starred apps also appear as horizontal shortcut tabs at the end of the main project navigation. Clicking a shortcut opens the tab that contains the app (e.g., **Integrations**) and automatically opens the app within that tab. The tab that contains the app is highlighted as active, while the shortcut remains unhighlighted. + +Starring operates on an individual account and per-project basis. This means that your starred apps are unique to your account and specific to the project where you added them: + +* **User-Specific:** Each project member manages their own starred apps. If you star an app, it will not appear as starred for other project members. +* **Project-Specific:** Starring an app in one project does not automatically star it in others. + +This allows you to customize your workspace based on the specific needs of each project, as different projects may require different tools or translation strategies. To have a specific app starred across multiple projects, you need to star it individually within each project. + +## Co-managing Crowdin Apps + +Multiple managers and developers can collaboratively manage the same Crowdin App within a project, simplifying teamwork and ensuring shared control over integrations. When an app is first configured in a project, the initial manager who logs in becomes its primary manager. While the primary manager has the ability to log out from the app directly, other project managers can delete the integration entirely to reset its configuration if the primary manager is unavailable. + +All invited managers and developers share common app settings—meaning changes made by one manager are immediately visible to others. This approach facilitates efficient team collaboration, avoids duplication of efforts, and ensures consistent configuration across your localization workflow. + +### Inviting Another User to Manage an App + +To invite additional managers or developers to co-manage an app, follow these steps: + + + 1. Open the app in your Crowdin project. + 2. Click **Share** within the app interface. + 3. Select existing project members from the user list or enter the invitee's email to invite them as a new project manager. You can invite users with the following roles: + * Owner + * Managers + * Developers / Translation Requestors + 4. Click **Save** to send the invitation. + + +Once invited, users will gain full access to manage and configure the app. Note that only the primary manager can directly log out of the integration. + +### Requesting Access to Manage an App + +If you open an app that has already been configured by another manager, you’ll see a message indicating that you don’t have access. The message also displays the name of the manager currently managing the app. + +To request access, follow these steps: + + + 1. Click the primary manager’s name in the message. + 2. You’ll be redirected to a private conversation with the manager in Crowdin. + 3. Send a message requesting access to co-manage the app. + 4. The primary manager can open the app, click **Share**, and invite you from the user list. + + +As soon as you are invited, you’ll immediately gain access to manage and configure the app. + +### Deleting an Integration Configured by Another Manager + +If the primary manager who configured the integration is unavailable and has not shared access, project managers can delete the integration to take over its management. This allows you to log in with your own account and set up the integration from scratch. + +To delete an integration, follow these steps: + + + 1. Open the app in your Crowdin project. + 2. On the access restriction page, click **Delete Integration**. + + + + +### Permissions and App Management Roles + +All managers co-managing an app have identical permissions within it. However, only the primary manager—the first to configure the app—can log out from the app directly. Other project managers can only delete the integration to force a reset. + +Managers can also invite Developers / Translation Requestors, who will gain similar permissions but cannot further invite other users to manage the app. Owner roles can also be invited with full permissions. + + + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/integrations/sketch.mdx b/src/content/docs/da/crowdin/integrations/sketch.mdx new file mode 100644 index 00000000..da8f2714 --- /dev/null +++ b/src/content/docs/da/crowdin/integrations/sketch.mdx @@ -0,0 +1,206 @@ +--- +title: Skitse plug-in +description: Start localizing at the design stage +slug: sketch-plugin +sidebar: + order: 9 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import addStrings from '!/crowdin/integrations/sketch_plugin_add_strings.png'; +import connect from '!/crowdin/integrations/sketch_plugin_connect.png'; +import dropdown from '!/crowdin/integrations/sketch_plugin_dropdown.png'; +import previewKeys from '!/crowdin/integrations/sketch_plugin_preview_keys.gif'; +import stringsTab from '!/crowdin/integrations/sketch_plugin_strings_tab.png'; +import stringsTabPreviewStrings from '!/crowdin/integrations/sketch_plugin_strings_tab_preview_strings.png'; +import translationTabGetTranslations from '!/crowdin/integrations/sketch_plugin_translation_tab_get_translations.png'; +import translationTabSendTexts from '!/crowdin/integrations/sketch_plugin_translation_tab_send_texts.png'; +import uploadScreenshots from '!/crowdin/integrations/sketch_plugin_upload_screenshots.png'; + +Vha. Crowdins Sketch-plugin'et kan der bruges tekster fra Crowdin i designs for at spare tid for både designere og udviklere. Disse kan omfatte originale eller oversatte tekster. Om ønsket kan nye tilføjes (f.eks. dialogtitler, knapetiketter) og indsendes til Crowdin-oversættere. + +## Brugsstudier + +* Generér hurtigt flersprogede, kreative aktiver. +* Oversæt modelscenarier og test dem på forskellige sprog, før programmering påbegyndes. +* Stop med at bruge 'Lorem Ipsum', føj i stedet reelle tekster fra Crowdin til prototyperne. +* Opret og upload kildestrenge fra designs til Crowdin-projektet. På denne måde kan uploadede strenge bruges af udviklere, hvilket reducerer tid brugt på udvikling. +* Upload taggede skærmfotos til Crowdin-projektet. + +## Installation + +You can [download the latest release](https://github.com/crowdin/sketch-crowdin) from our GitHub repository. + + + 1. Download installationsfilen. + 2. Udpak den. + 3. Double-click on the *sketch-crowdin.sketchplugin* file for auto installation. + + +Crowdin plugin for Sketch can also be installed with [Sketch Runner](https://sketchrunner.com/). + +## Configuration + + + +### Setting up Credentials + +Følg disse trin for at angive Crowdin-akkreditiverne i Sketch: + + + 1. Click **Plugins > Crowdin**. + 2. Switch to **Settings**. + 3. Angiv det relevante Personlige adgangstoken. + 4. Click **Connect to Crowdin**. Sketch Plugin Connect to Crowdin + + +Følg disse trin for at generere et nyt token i Crowdin: + + + 1. Go to *Account Settings > API* tab, *Personal Access Tokens* section, and click **New Token**. + 2. Specify *Token Name* and click **Create**. + + +### Selecting a Project + +To select the Crowdin project you'd like to work with, click the **Select Project** drop-down menu in **Settings**, and select a project from the list. Samme rullemenu kan også bruges ved skift til et andet projekt. Endvidere kan den specifikke gren, hvortil indholdet uploades, vælges. + +Sketch Plugin Selecting Crowdin Project + +## UI-lokalisering + +Use the *Strings* tab when localizing UI and working on dynamic pages with your development and marketing teams. På denne fane kan med ét klik tilføjes kildestrenge fra Crowdin til egne designs i Sketch. Når teksterne er anvendt i designs, kan taggede skærmfotos automatisk uploades tilbage i Crowdin som oversætterreferencer. + +### Brug af kildestrenge fra Crowdin i Sketch + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. In the *Strings* tab, use the *Search* field to find the specific copy. Strenge kan søges efter kildetekst, strengidentifikator eller kontekst. + 3. Select the text layer you want to add text to and click on the needed string. + + +Sketch-plugin, Brug af kildestrenge fra Crowdin i Sketch + +After using the source strings from Crowdin in your designs, you can [preview translations](#previewing-strings) for these strings in Sketch and [upload screenshots](#uploading-tagged-screenshots-to-crowdin) for them to your Crowdin project. + +### Tilføjelse af kildestrenge fra Sketch til Crowdin + +De strenge kan tilføjes, som allerede anvendes i designene, eller der kan oprettes og tilføjes helt nye. + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. For at tilføje de i designene anvendte strenge, vælg hele tegnebrættet, flere tegnebrætter eller ønskede strenge på tegnebrætterne. Alternativt, overspring dette trin, hvis en ny streng ønskes tilføjet. + 3. In the *Strings* tab, click **Add String**. + 4. Udfyld de obligatoriske felter i den viste dialog. + 5. (Optional) To add labels to the strings, alternately select them from the **Label** drop-down menu and click **Save**. + + +Sketch Plugin Add Source Strings from Sketch to Crowdin + +To add the same strings into multiple files in Crowdin, alternately select the needed files from the **File** drop-down menu. + +If some artboards contain hidden elements that should not be added to Crowdin, clear the **Push hidden elements** option. + +Added strings will be transferred to your Crowdin project and also will be displayed in the list of the **Strings** tab. Strenge fra samme liste kan til enhver tid redigeres/slettes. De respektive ændringer anvendes også på strengene i det relevante Crowdin-projekt. + +### Indstillinger for Nøglenavngivningsmønster + +For at forenkle strengetilføjelsen fra Sketch til Crowdin-projektet kan det ønskede nøglenavngivningsmønster for kildestrengidentifikatorerne opsættes i plugin-indstillingerne. Baseret på det valgte mønster vil Crowdin-plugin til Sketch foreslå strengidentifikatorer til nye strenge. Under tilføjelse nye kildestrenge, kan den foreslåede identifikator altid redigeres til det foretrukne udseende. + +Følg disse trin for at vælge nøglenavngivningsmønsteret: + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. Switch to **Settings**. + 3. In the *Key naming pattern* section, select the preferred option from the drop-down menu. + + +### Upload af taggede skærmfotos til Crowdin + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. In the *Strings* tab, use texts from the Crowdin project in your designs. Click **Upload Screenshots** to upload screenshots of the artboards that include the used texts. + 3. To update screenshots on Crowdin, click **Upload Screenshots** again. + + +Sketch Plugin Uploading Tagged Screenshots to Crowdin + + + Read more about [Screenshots](/screenshots/). + + +### Prævisning af strenge + +Forhåndsvis oversættelser fra Crowdin for strengene anvendt i Sketch-designene. Oversættelser kan prævises i nye rammer eller i de originale. Ved oversættelsesprævisning i de nye rammer kan disse udfyldes med de reelle oversættelser eller strengnøgler til videre brug af udviklere. + +Følg disse trin for at prævise strenge udfyldt med oversættelser: + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. In the *Strings* tab, *Preview Strings* section, select *Preview in duplicated artboards* or *Preview in the current artboards*. + 3. Select *Create with language*. + 4. Vælg målsproget, for hvilket oversættelser skal prævises. You can also choose *All languages*. + 5. Vælg indholdet, der ønskes prævist i Sketch. Select *Page* or *Artboard*. + + +Sketch-plugin – Prævis strenge + +Følg disse trin for at prævise strenge udfyldt med nøglenavne: + + + 1. Åbn Crowdin-plugin'et til Sketch. + 2. In the *Strings* tab, *Preview Strings* section, select *Preview in duplicated artboards*. + 3. Select *Create with key names*. + 4. Vælg indholdet, der ønskes prævist i Sketch. Select *Page* or *Artboard*. + + +Sketch-plugin – Prævis nøgler + +## Marketingvisualiseringslokalisering + +Use the *Translation* tab to localize static pages, like brochures and banners. Fra denne fane kan der sendes tekster med kontekst til oversættere til Crowdin samt uploades oversatte kopier retur til Sketch. + +### Indsendelse af tekster til oversættelse til Crowdin + +Tekst til oversættelse kan indsendes fra enten valgte eller alle tegnebrætter fra en Sketch-fil. Oversættere arbejder så med disse tekster i listevisningen og bruger designs som en ekstra kontekst til endnu højere oversættelseskvalitet. + +In Crowdin, a root folder *Sketch plugin* will be created. Den vil indeholde en undermappe opkaldt efter Sketch-filen med HTML-filer for hvert tegnebræt heri. If needed, you can disable content segmentation in the plugin **Settings** so the long texts will not be split into sentences. + +Følg disse trin for at sende Sketch-designs til oversættelse: + + + 1. Åbn den relevante Sketch-fil. + 2. Go to **Plugins > Crowdin**. + 3. In the *Translation* tab, *Send Texts* section, select content you’d like to translate. Select *Page* or *Artboard*. + + +Sketch Plugin Send Texts for Translation to Crowdin + +Efter upload af kildefiler til Crowdin-projektet kan folk inviteres til at bidrage med at oversætte og korrekturlæse dem. + + + Read more about [translation strategies](/translation-strategies/). + + +### Upload af oversættelser fra Crowdin til Sketch + +Tekster kan synkes mellem Sketch- og Crowdin-projekter, når man ønsker at afteste den oversatte kopi eller generere flersprogede aktiver. + +Følg disse trin for at uploade oversatte kopier til Sketch: + + + 1. Åbn den relevante Sketch-fil. + 2. Go to **Plugins > Crowdin**. + 3. In the *Translation* tab, *Get Translations* section, select the target language you want to upload translations for. You can also Select *All languages*. + 4. Vælg indholdet, der ønskes prævist i Sketch. Select *Page* or *Artboard*. + + +Sketch-plugin – Hent oversættelser + +Efter upload af oversættelser til Sketch, vil den ændrede fil indeholde et separate tegnebræt med oversættelser for hvert målsprog. De nyligt uploadede oversatte versioner vil ikke tilsidesætte versioner uploadet tidligere. Oversatte kopier, som ikke længere behøves, kan altid slettes. + +If you'd like the newly uploaded translated versions to override the previously uploaded ones, open the plugin **Settings** and select **Override existing translations**. diff --git a/src/content/docs/da/crowdin/introduction.mdx b/src/content/docs/da/crowdin/introduction.mdx new file mode 100644 index 00000000..f6ade6ea --- /dev/null +++ b/src/content/docs/da/crowdin/introduction.mdx @@ -0,0 +1,203 @@ +--- +title: Introduktion +description: Get started with Crowdin localization software and its core features +slug: introduction +--- + +import { CardGrid, Card, LinkCard, Aside } from '@astrojs/starlight/components'; + +> These guides will help you get started with Crowdin. Here you will find all the information you need about Crowdin and how to use it. + +## What is Crowdin? + +Crowdin-software er en lokaliseringshåndteringsløsning til smidige teams. Vi hjælper virksomheder af enhver art og størrelse til at vokse ved at nå forskellige kundesprogsegmenter. More than 3 million registered users from all over the world use Crowdin to deliver their websites, mobile apps, games, docs, and other content in the language of their customers. + + + +Crowdins hensigt er at stille de seneste teknologiløsninger til rådighed, som gør oversættelse og lokalisering så let som muligt. + + + +## What is Agile Localization? + +Smidig lokalisering er en tilgang, der assusterer med at håndtere hyppigt opdateret indhold, som ønskes tilgængeliggjort for kunderne verden over. Once you’ve decided to localize your product, it’s important to keep it that way and ensure the new content is also multilingual. Dette omfatter typisk nye funktioner, produktopdateringer, dokumentation, websted og andet brugervendt indhold. + +While you’re creating new content, translators can work on translations, so you can get work done faster by working in parallel. Det seneste indhold kan gøres tilgængeligt for oversættere næsten øjeblikkeligt og opdateres automatisk. På denne vis kan de gå i gang med oversættelsen med det samme i deres eget oversættelsesmiljø. Samtidig kan der nemt modtages færdige oversættelser vha. integrationer og andre automatiseringsværktøjer. + +Denne tilgang gør det nemt at spore, hvilket indhold, der blev opdateret, kræver oversættelse eller er produktionsparat. So when the new feature is ready for release, translations won’t slow you down, as they are done in parallel. + +## Features + +Discover Crowdin’s core features required to help you make your products multilingual. + +### Teamsamarbejde + + + + Invitér folk til projekter og definér deres adgangsniveau: Administrator, oversætter, korrekturlæser. Derudover kan adgang for oversættere og korrekturlæsere til bestemte målsprog angives. + + + View the activity within your projects (translations, approves, file updates, and more), and a list of top members. + + + Beregn den omtrentlige oversættelsesomkostning mhp. budgetudarbejdelse. Calculate the exact translation costs to pay your translators and proofreaders after localization is complete. + + + Opret opgaver for at få nødvendigt arbejde udført rettidigt. Choose files to assign translators and proofreaders to, and set due dates. Modtag adviseringer om alle opgaveændringer + og -opdateringer. Split files between several users. + + + Send private eller gruppemeddelelser direkte i Crowdin. + + + Order professional translations from translation agency vendors available on the Crowdin Store. + + + +### Integrationer + + + + Sync translatable content from your GitHub/GitLab/Bitbucket/Azure Repos repository with a localization project. Modtag oversættelser som pull/merge anmodninger. + + + Localize your Figma/Sketch/Adobe XD content before design and programming start, translate assets, or do localization in parallel. + + + Collect information about your Crowdin project's key events like completed translations, proofreading, and more. + + + Deliver new translations from Crowdin to your mobile application in no time with CDN Distributions. Get better translations with real-time translation preview, screenshot uploading, and tagging. + + + Integrér nemt Crowdin med en CI-server, GIT, SVN, Mercurial m.m. Connect cross-platform Crowdin CLI directly to your code repository. + + + Seamlessly add new content for translation to your Crowdin project, check translation status, merge new content, and more. + + + Get feature branches translated independently from the main branch. + + + Collect content from your app's store page to do translations and publish them in just a few clicks. + + + Send kildefiler til Crowdin-projektet og træk oversat indhold tilbage. + + + Hold styr på problematikker anmeldt af brugere, som arbejder på projektoversættelsen. Each new issue in Crowdin will become a sub-task in Jira. + + + Receive notifications about completed translations, new files, mentions, and other important events in your projects. + + + Anmod om tilpasset filformatunderstøttelse. + + + Browse 700+ apps and integrations on the Crowdin Store + + + +### Oversætterens effektivitet + + + + TM is a database that stores the content strings translated before. Reuse translations for the same or similar content you add. Use project-based TM (available only to the assigned project) or global TM (stores translations contributed by all of the open projects). + + + QA checks help you easily and quickly detect and avoid common mistakes. For example, they check translations for missed commas, extra spaces, typos, etc. + + + Skærmfotos er en fantastisk måde at forbedre oversættelseskvaliteten på. They appear under each separate string in the Editor so translators see the exact location of a string in the UI. + + + Oversæt tekster direkte via en overlejring af en webapplikation med Crowdin I-Kontekst. Preview translations just as they would appear on your web app. + + + Create or upload a list of terms used in your project, their definitions, and approved translations to other languages. Bevar oversættelser konsistente og giv hjælp til oversættere. + + + Tilslut MT-motorer for at få hurtige oversættelser. Currently, Crowdin supports the following MT engines: Google Translate, Microsoft Translator, DeepL Translator, and Amazon Translate. + + + Engagér fællesskabet for at hjælpe med at oversætte projektet. Translators will be able to suggest multiple translations and vote for the best ones. + + + Oversæt automatisk kildefiler vha. maskinoversættelsesmotorer eller oversættelser lagret i Oversættelseshukommelsen. + + + Angiv variabler, som ikke skal oversættes. Custom variables will be highlighted in the source strings to translators. + + + +### Oversættelses-editor + + + + Workspace for translators and proofreaders available online on any device, with no need to install any software. + + + Lad oversættere downloade kildefiler og foretage oversættelse offline. + + + Skjul tekster/strenge, som ikke skal oversættes. Disse vil kun være synlige for projektejer og administratorer. + + + Opret genveje til at gemme oversættelser, skifte mellem strenge mv. + + + Translate right-to-left languages as they will be displayed properly in the translation field and exported correctly. + + + Find bestemte ord og sætninger brugt i oversættelserne, og erstat disse i valgte strenge, eller overalt. + + + Angiv maksimumslængden af oversættelsen for bestemte strenge. + + + Forhåndsvis både oversatte og kildesegmenter. + + + Easily leave comments for each specific string. Oversættere kan debattere de bedste oversættelsesforslag, stille kontekstrelaterede spørgsmål eller rejse problematikker vedr. kildestrenge eller oversættelser. + + + Glossary terms will be highlighted directly in the source string, so translators will easily notice them. + + + Sort strings by date added, length, file order, and others. Filtrér strenge uden oversættelser, med kommentarer, godkendt, tilføjet efter en bestemt dato eller de tilgængelige filter til kun at få vist relevante strenge. + + + +### Sikkerhed og Administration + +The security of your data is our top priority. Crowdin provides a variety of security features to help you keep your data safe. + + + + Del nemt et projekt via egen URL. + + + Anmod om en faktura for årlige betalinger. + + + All Crowdin user accounts come with a user activity log, where you can review the performed actions. + + + Kræv, at brugere aktiverer tofaktorgodkendelse for deres konti. It applies to project and organization members. + + + +### Support + +Crowdin provides a variety of support options to help you get the most out of your localization efforts. + + + + + + + + + diff --git a/src/content/docs/da/crowdin/localization-resources/glossary.mdx b/src/content/docs/da/crowdin/localization-resources/glossary.mdx new file mode 100644 index 00000000..e83fa427 --- /dev/null +++ b/src/content/docs/da/crowdin/localization-resources/glossary.mdx @@ -0,0 +1,301 @@ +--- +title: Ordliste +description: Learn how to create, manage, and share glossaries in Crowdin +slug: ordliste +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import KBD from '~/components/KBD.astro'; +import { Image } from 'astro:assets'; +import termHover from '!/crowdin/localization-resources/glossary_term_hover.png'; +import createGlossary from '!/crowdin/localization-resources/glossary_create_glossary.png'; +import createGlossaryDialog from '!/crowdin/localization-resources/glossary_create_glossary_dialog.png'; +import addConcept from '!/crowdin/localization-resources/glossary_add_concept.png'; +import addConceptDialog from '!/crowdin/localization-resources/glossary_add_concept_dialog.png'; +import addConceptEditor from '!/crowdin/localization-resources/glossary_add_concept_editor.png'; +import conceptsView from '!/crowdin/localization-resources/glossary_concepts_view.png'; +import termsView from '!/crowdin/localization-resources/glossary_terms_view.png'; +import editConcept from '!/crowdin/localization-resources/glossary_edit_concept.png'; +import deleteAllConcepts from '!/crowdin/localization-resources/glossary_delete_all_concepts.png'; +import downloadUpload from '!/crowdin/localization-resources/glossary_upload_download.png'; +import configureImport from '!/crowdin/localization-resources/glossary_configure_import.png'; +import shareGlossaries from '!/crowdin/localization-resources/glossary_share_glossaries.png'; + +Med en ordliste kan der oprettes, gemmes og håndteres hele projektterminologien på ét sted. Hovedsigtet med terminologi er at forklare visse specifikke termer eller dem, som ofte benyttes i projektet, så de kan oversættes korrekt og ensartet. + +Hvert ordlisteudtryk vises som et understreget ord i Editor. Hold markøren over det understregede ord for at fremhæve det og se dets oversættelse, ordklasse og definition (hvis oplyst). + +Ordlisteudtryk + +## Oprettelse af Ordliste + +In addition to the project glossaries that are automatically created with each project, you can create separate glossaries and populate them with content by uploading your existing glossaries in TBX, XLSX, or CSV format. These glossaries can then be assigned to the relevant projects as needed. + +Følg disse trin for at oprette en ordliste: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. + 2. Click **Create Glossary**. Create glossary + 3. Navngiv via den nye dialog ordlisten og vælg et standardsprog, der vises først i tabellen over ordlisteposter. + 4. *(Optional)* Assign the glossary to the needed projects. You can skip this step and assign a glossary later. + 5. Klik på **Opret**. Create glossary dialog + + + + + + + +## Håndtering af Ordlistekoncepter og Termer + +Afhængigt af projektbehov kan der bruges en enklere tilgang med et udtryk pr. sprog eller ordlisten kam gøres mere detaljeret og komplet vha. den avancerede funktionalitet, ordlistekoncepter kan tilbyde. + +### Creating Glossary Concepts and Terms + +Koncept – det højeste niveau terminologielement indeholdende konceptniveaudata (f.eks. begrebsdefinition, emne mv.), herunder sprogniveau (dvs. termsprog) og termniveaudata (f.eks. term, termets ordklasse, type mv.). Kort sagt inkorporerer et koncept ordlisteudtryk og deres variationer med flere oversættelser og andre relevante oplysninger. + +Der kan angives flg. koncept- og termdetaljer ved tilføjelsen af ordlistebegreber. + +Konceptdetaljer: + +* Definition – A clear explanation of the concept's meaning. +* Subject – A branch of knowledge the concept is related to. +* Translatable – Specifies whether the concept could be translated into other languages. +* Note – Short notes about a concept that might be helpful to translators. +* URL – URL til websiden med relevante oplysninger om et koncept. +* Figur – URL til det relevante billede. + +Termdetaljer: + +* Term – Specific word or phrase that is being defined. +* Language – Specifies the language of the term. +* Ordklasse – f.eks. navneord, udsagnsord, tillægsord mv. +* Type – Classifies the term's function (e.g., full form, acronym, abbreviation, phrase, variant). +* Status – Defines the term's approval level (e.g., preferred, admitted, not recommended). +* Gender – The grammatical gender of the term (e.g., masculine, feminine, neuter). +* Description – A brief explanation or context for the specific term (distinct from the concept's definition). +* Note – Short notes about a term that might be helpful to translators. +* URL – URL til websiden med relevante oplysninger om et term. + +Følg disse trin for at tilføje et nyt ordlistekoncept: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. Alternatively, open your project and go to **Settings > Glossaries**. + 2. Click **View Records** on the needed glossary. + 3. Click **Add concept**. Add Concept + 4. Vælg i den viste dialog sproget fra rullemenuen og angiv termer samt alle relaterede detaljer. Click to detect the part of speech automatically. + + 5. *(Optional)* Click **Add term** to add a term variation (e.g., acronym, short form, etc.) + 6. Angiv konceptdetaljerne. + 7. Klik på **Opret**. Add Concept Dialog + + +Følg disse trin for at tilføje ordlistekoncepter via Editor: + + + 1. Vælg fra Editor det relevante ord i kildestrengen. + 2. In the appeared menu, select **Create Term**. Alternatively, you can use the keyboard shortcut to add a concept (by default, Ctrl+G). Add Concept in Editor + 3. Følg trinene beskrevet i ovenstående afsnit. + + +Følg disse trin for at tillade oversættere/korrekturlæsere at håndtere udtryk i Editor: + + + 1. Open your project and go to **Settings > Privacy & collaboration**. + 2. In the [**Glossary Access Settings**](/project-settings/privacy-collaboration/#glossary-access-settings) section, select the preferred access level for project members. + + +You can choose to allow them to manage only draft terms. When a project member adds a draft term, project managers can filter terms by draft status, review them, and make necessary modifications or add glossary concept details. + +Alternatively, you can grant full access, allowing them to manage all glossary terms and concept details with the same level of control as the project owner and managers. + +### Viewing, Searching, and Filtering Glossary Concepts and Terms + +Once you open a glossary, you can view and filter its glossary concepts and terms using either the **Concepts** or **Terms** tabs. + +On the **Concepts** tab, you can view glossary content grouped as concepts (one concept per row, each term displayed in a separate language column). + +Concepts View + +On the **Terms** tab, you can view glossary content as individual terms (one term per row) with the following details: + +* **Term**: Contains either source or target language text. +* **Language**: The term's language (e.g., French, Spanish). +* **Part of speech**: The term's grammatical category (e.g., noun, verb). +* **Type**: The term's classification (e.g., full form, acronym). +* **Status**: The term's approval level (e.g., preferred, admitted). +* **Gender**: The term's grammatical gender (e.g., masculine, feminine). +* **Description (context)**: The specific description for that term. +* **Note**: Any additional note for that term. +* **Concept subject**: The subject field from the parent concept. +* **Concept definition**: The definition from the parent concept. + +Terms View + +By default, all glossary concepts and terms are displayed. To find a specific concept or term, you can use the **Search** field. + +In the **Concepts** tab, you can search by the following details: + +* **Terms** +* **Concept definitions** +* **Concept subjects** + +To refine the search results, you can use the following options: + +* **Match case** +* **Match whole phrase** +* **Exact match** + +To filter the list of concepts or terms, click **Filter** and use the available options: + +* **Languages** (Specific to the **Terms** tab): Filter by **All languages** or a **Specific language**. +* **Modified**: Filter by modification date (**All**, **Custom Range**). +* **Part of speech**: Filter by grammatical category (**All**, **Noun**, **Verb**, etc.). +* **Type**: Filter by classification (**All**, **Full form**, **Acronym**, etc.). +* **Status**: Filter by approval status (**All**, **Preferred**, **Draft**, etc.). +* **Gender**: Filter by grammatical gender (**All**, **Masculine**, **Feminine**, etc.). +* **Author**: Filter by **All** or a particular user. + +To sort concepts or terms, click **Sort by** and select one of the available options: + +* **Text** +* **Last modified** +* **Created** + +To customize your viewing experience, you can use the following options on the top toolbar: + +* **Word Wrap**: Click to toggle the word wrap feature. This is useful for viewing long texts (such as definitions, subjects, or notes) without expanding the column width. +* **Column Settings**: Click to configure which columns are displayed in the table. You can show or hide columns like *Definition*, *Subject*, *Translatable*, and *Note*, as well as the language columns. + +### Redigering af Ordlistekoncepter og Termer + +Eksisterende ordlistekoncepter i en bestemt ordliste kan redigeres. + +Følg disse trin for at redigere et ordlistekoncept: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. Alternatively, open your project and go to **Settings > Glossaries**. + 2. Click **View Records** on the needed glossary. + 3. Open a glossary concept with a double-click or click **Edit**. + 4. In the appeared dialog, make the necessary edits to the concept or terms and click **Save**. Edit Glossary Concept + + +### Sletning af ordlistekoncepter + +Der kan slettes ét, flere eller samtlige ordlistekoncepter på én gang. + +Følg disse trin for at slette samtlige koncepter fra ordlisten: + + + 1. Vælg øverste afkrydsningsfelt ovenover konceptlisten. + 2. Bekræft valget af samtlige koncepter. + 3. Click . Deleting Glossary Concepts + + +## Managing Glossaries + +You can manage your glossaries directly from the **Glossaries** page on your profile home page. This includes uploading and downloading content, editing glossary details, assigning glossaries to projects, and deleting them. + +To access these management options, follow these steps: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. + 2. Click on the needed glossary to open the context menu. + + +### Uploading and Downloading Glossary + +You can upload existing glossaries to Crowdin or download your glossary content for backup, editing, or other purposes outside Crowdin. Glossaries can be downloaded in full or with applied filters, which is useful when you want to export only a subset of glossary concepts that meet specific criteria (e.g., by subject, status, or language). + +To upload or download the glossary, follow these steps: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. Alternatively, open your project and go to **Settings > Glossaries**. + 2. Click **View Records** on the needed glossary. + 3. Click and select one of the following options: + * **Upload** – uploads new glossary content. + * **Download** – downloads the full glossary. + * **Download filtered** – downloads only glossary concepts that match the applied filters or search criteria. Downloading and Uploading Glossary + + +You can upload and download the glossary in the following file formats: TBX (v2), TBX (v3), CSV, XLSX. + + + +Upload af en ordliste i CSV- eller XLS-/XLSX-filformaterne kræver valg af sprog for hver kolonne samt valg af kolonneværdien (term, beskrivelse, ordklasse) i opsætningsdialogen. + +Opsætning af ordlisteimport + + + +When downloading a glossary from Crowdin, some browsers may add an XML extension to the downloaded file so that the file may be named *sample.tbx.xml*. To import such a file back to Crowdin, rename it to *sample.tbx*. + +#### Automatisk kolonneidentifikation af ordliste i CSV- og XLSX-filformater + +Uploades en relevant ordlistefil i CSV- eller XLSX-formaterne, registrerer systemet automatisk filsystemet baseret på kolonnenavnene angivet i den første række. The identification is performed in a case-insensitive manner. Columns that weren’t detected automatically will be left as **Not used**/**Not chosen** for manual configuration. Automatisk kolonneidentifikation er især nyttig ved upload af ordlisteregneark indeholdende mange sprog og supplerende kolonner (f.eks. Status, Type, Køn mv.). + +For bedste resultat af den automatiske kolonnedetektering anbefales kolonnerne i CSV- eller XLSX-ordlistefilerne navngivet baseret på de nedenfor beskrevne mønstre: + +* Term details – `{column-type} [{crowdin-language-code}]` (e.g., `Term [en]`, `Description [en]`, `Part of Speech [en]`, etc.). +* Concept details – `Concept {concept-details-type}` (e.g., `Concept Definition`, `Concept Subject`, `Concept Note`, etc.). + +To redetect the glossary file scheme, click **Detect Configuration**. + + + +### Editing and Assigning Glossary + +You can rename your glossary, change its default language, or manage project assignments (assign to or unassign from projects) within a single dialog. + +To edit or assign a glossary, follow these steps: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. + 2. Click on the needed glossary and select **Edit**. + 3. In the appeared dialog, you can: + * Change the **Glossary Name**. + * Change the **Language**. + * Select or clear the checkboxes next to the projects in the **Assign glossary to the following projects** list. + + 4. Click **Save**. + + +### Deleting Glossary + +Deleting a glossary will permanently remove the glossary and all its contained concepts and terms from the organization. This action cannot be undone. + +To delete a glossary, follow these steps: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. + 2. Click on the needed glossary and select **Delete**. + 3. Bekræft sletningen. + + +## Deling af ordlister + +To share your glossaries between all of the projects you own, follow these steps: + + + 1. Open your profile home page and select **Glossaries** on the left sidebar. + 2. Select **Share Glossaries**. Sharing Glossaries + + + + +## Translating Glossary Terms + + diff --git a/src/content/docs/da/crowdin/localization-resources/machine-translation.mdx b/src/content/docs/da/crowdin/localization-resources/machine-translation.mdx new file mode 100644 index 00000000..3ef704ae --- /dev/null +++ b/src/content/docs/da/crowdin/localization-resources/machine-translation.mdx @@ -0,0 +1,226 @@ +--- +title: Machine Translation +description: Learn how to configure machine translation engines in Crowdin +slug: machine-translation +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import machineTranslationSuggestions from '!/crowdin/localization-resources/mt_suggestions.png'; +import deeplGlossaryConfiguration from '!/crowdin/localization-resources/deepl_glossary_configuration.png'; +import automlCustomGlossaryConfiguration from '!/crowdin/localization-resources/automl_custom_glossary_configuration.png'; + +Machine translation engines integrated with Crowdin provide translation suggestions from services like Google Translate and AutoML Translation, Microsoft Translate, and others. + +MT suggestions are displayed in the Editor’s TM and MT Suggestions section in the order of the engines' configuration dates. To prioritize a specific engine's suggestions, configure that engine first. + +Also, you can perform [Pre-Translation](/pre-translation/) using MT engines. + +Machine Translation suggestions in the Editor + + + +By default, machine translations are enabled for each project, but it is required to configure the translation engines before the project members can use them. If you want to disable this option for specific projects, clear **Show machine translation suggestions** in [Project Settings](/project-settings/machine-translation/). + +### Opsætning af Maskinoversættelsesmotorer + +To configure the machine translation engines, follow these steps: + + + 1. Open your profile home page and select **MT** on the left sidebar. + 2. Click next to the MT engine you want to configure and select **Edit**. Alternatively, just double-click on the needed MT engine. + 3. Select **Enabled**. + 4. Enter the credentials for the selected translation engine. + 5. *(Optional)* In the **Advanced settings** section, you can configure the following options: + * Select the languages for which the MT engine should provide translations. Alternatively, leave empty to enable all languages. + * Select the projects in which you want to use the MT engine. Alternatively, leave empty to enable it for all projects. + 6. Click **Update**. + + + + +### Microsoft Translator + +Go to [Windows Azure](https://portal.azure.com/#blade/HubsExtension/BrowseAll) to access your Microsoft Translator API subscription key. Translator Text-API'en tilbyder en gratis kvote på 2.000.000 oversatte tegn. + + + + + +### DeepL Translator + +DeepL API is accessible only with the DeepL API Free and Pro subscription plans ([For developers](https://www.deepl.com/pro.html#developer) tab). Navigate to the [DeepL Pro Account page](https://www.deepl.com/pro-account.html) to get a unique Authentication Key. Bemærk, at kun DeepL API-abonnementstypen leverer denne funktion. + +If you’re subscribed to a different subscription plan, you can switch to the DeepL API plan in your [personal account settings](https://www.deepl.com/pro-account.html). DeepL also provides a [simulator](https://www.deepl.com/docs-api/simulator) that allows you to check your Authentication Key in action. + +#### DeepL Glossary Configuration + +The DeepL Translator supports multilingual glossaries, allowing you to ensure consistent translation of your domain-specific terminology. In Crowdin, you can configure multiple glossaries and assign specific language pairs to each. + +To configure your DeepL glossaries, follow these steps: + + + 1. Select a glossary from the **Glossaries** drop-down menu. This list is automatically populated from your connected DeepL account. + 2. From the **Glossary language pairs** drop-down menu, select one or more language pairs the chosen glossary should apply to. + 3. *(Optional)* To configure another glossary, click and repeat the steps above. To remove a glossary configuration, click . + 4. Click **Update**. + + +DeepL Glossary Configuration + + + +### ModernMT + +ModernMT Real time oversættelses-API er tilgængelig med Real time eller Human-in-the-loop abonnementstyper. Navigate to the [ModernMT Dashboard](https://www.modernmt.com/dashboard/) to get your License key. If you’re subscribed to a different subscription plan, you can switch to the Real time or Human-in-the-loop plan via the [Manage Plan](https://www.modernmt.com/dashboard/manage-plan) page. + +### Amazon Translate + +Den gratis version af Amazon Translate er tilgængelig i 12 måneder. Herefter betales pr. antal oversatte tegn. Crowdin uses Standard Text Translation type provided by Amazon Translate. Read more about [available Amazon Translate pricing options](https://aws.amazon.com/translate/pricing/). + +Read more about [obtaining your access key](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) needed for Amazon Translate integration. + +To use your [Custom Terminology](https://docs.aws.amazon.com/translate/latest/dg/how-custom-terminology.html), follow these steps: + + + 1. Angiv AWS-regionen (f.eks. us-east-2). + 2. Vælg Tilpasset Terminology i den respektive rullemenu. + + + + The minimal IAM scopes required depend on whether you're using terminologies or not: + + **Without terminologies:** + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": "translate:TranslateText", + "Resource": "*" + } + ] + } + ``` + + **With terminologies:** + + ```json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "translate:TranslateText", + "translate:GetTerminology", + "translate:ListTerminologies" + ], + "Resource": "*" + } + ] + } + ``` + + Alternatively, you can use the [AWS managed policy: TranslateReadOnly](https://docs.aws.amazon.com/translate/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-TranslateReadOnly), which provides the necessary read-only access to Amazon Translate. + + + + +### Google Translate + +For brug af Google Translate kræves en Google Cloud-konto med en aktiv faktureringsprofil. Cloud Translation faktureres månedligt baseret på brug. [Learn more](https://cloud.google.com/translate/pricing). + +Følg disse trin for at få API-nøglen krævet for integrationen: + + + 1. Go to [Google Cloud Console](https://console.cloud.google.com/). Log ind på en eksisterende Google Cloud-konto, eller opret en ny. + 2. Select an existing project or add a project using the **New Project**. + 3. Go to [API & Services > Library](https://console.cloud.google.com/apis/library) and search for *Cloud Translation API*. + 4. Click **Enable**. + 5. Go to [API & Services > Credentials](https://console.cloud.google.com/apis/credentials/) and click **Create credentials > API key**. + 6. Copy the API key and click **Close**. + + +### Google Cloud AutoML Translation + +Brug af AutoML Translation kærves en Google Cloud-konto med en aktiv faktureringsprofil. Google AutoML Translation-prissætning sker månedligt baseret på antal tegn sendt til oversættelse. [Learn more](https://cloud.google.com/translate/automl/pricing#translation_costs). + +Følg disse trin for at oprette tjenestekontonøglen samt indhente de til integrationen nødvendige legitimationsoplysninger: + + + 1. Go to [Google Cloud Console](https://console.cloud.google.com/). Log ind på en eksisterende Google Cloud-konto, eller opret en ny. + 2. Select an existing project or add a project using the **New Project**. + 3. Go to [API & Services > Library](https://console.cloud.google.com/apis/library) and search for *Cloud AutoML API*. + 4. Click **Enable**. + 5. Næste trin er at oprette et privat nøglepar til en tjenestekonto. Tjenestekontoen bruges af Crowdin. Programmer bruger tjenestekonti til at foretage godkendte API-kald. + + +Følg disse trin for at opsætte godkendelse og oprette den private nøgle: + + + 1. Go to [API & Services > Credentials](https://console.cloud.google.com/apis/credentials/). + 2. Click **Create credentials > Service account**. + 3. In the *Service account name* field, enter a name that describes what this service account will do. + 4. Click **Create and continue**. + 5. From the *Role list*, select *Project* > *Cloud Translation API Editor* and click **Continue**. + 6. Click **Done**. + 7. In the [API & Services > Credentials](https://console.cloud.google.com/apis/credentials/), click on the created service account. + 8. Switch to the **Keys** tab. + 9. Click **Add key > Create new key**. + 10. Select **JSON** and click **Create**. En JSON-fil indeholdende din nøgle vil blive downloadet til din computer. + + +#### Google Cloud AutoML tilpasset ordlisteopsætning + +Den tilpassede Google Cloud AutoML-ordliste muliggør konsistent oversættelse af domænespecifik terminologi. + +Følg disse trin for at opsætte den tilpassede Google Cloud AutoML-ordliste: + + + 1. Open your profile home page and select **MT** on the left sidebar. + 2. Click next to the **Google AutoML Translation** engine and select **Edit**. + 3. Upload your JSON credentials. + 4. Angiv Ressourceplacering (f.eks. us-central1). + 5. Vælg den aktuelle ordliste i den relevante rullemenu. + 6. (Valgfrit) Angiv en relevant Tilpasset model. If needed, configure language mapping between Custom Model and Crowdin languages. + + +Google Cloud AutoML tilpasset ordlisteopsætning + +## MT-motor ID'er + +Once you specify your MT engine credentials, the system automatically assigns a unique MT engine ID. Later on, you can use these IDs in API requests for pre-translation via machine engines. + +You can find the MT engine ID on the **Machine Translation** tab of your profile after opening the engine details. + +Alternatively, you can also [get your MT engine IDs via API](/developer/api/v2/#tag/Machine-Translation-Engines/operation/api.mts.getMany). + +## Clearing MT Engine Cache + +When MT engines are updated with new features or models, cached translations in Crowdin may no longer reflect the latest translation capabilities. To display updated translations in the Editor’s **TM and MT Suggestions** section, clear the MT engine cache. This can be especially useful if you've already viewed certain strings in the Editor, as Crowdin stores cached MT suggestions for those strings. + +To clear the cache for your configured MT engine, follow these steps: + + + 1. Open your profile home page and select **MT** on the left sidebar. + 2. Click on the needed MT engine in the list. + 3. Click **Clear cache**. + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/localization-resources/style-guide.mdx b/src/content/docs/da/crowdin/localization-resources/style-guide.mdx new file mode 100644 index 00000000..ea68a8a2 --- /dev/null +++ b/src/content/docs/da/crowdin/localization-resources/style-guide.mdx @@ -0,0 +1,170 @@ +--- +title: Style Guide +description: Learn how to create, manage, and use style guides in Crowdin +slug: style-guide +sidebar: + badge: New +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import createStyleGuide from '!/crowdin/localization-resources/style_guide_create_style_guide.png'; +import createStyleGuideDialog from '!/crowdin/localization-resources/style_guide_create_dialog.png'; +import styleGuidesEditor from '!/crowdin/online-editor/style_guides.png'; + +With a style guide, you can create, store, and manage all your project's formatting and tone rules in one place. The main aim of a style guide is to ensure consistency in voice, style, and terminology usage across translations, helping translators understand exactly how your brand should sound in different languages. + +Style guides function as a native resource at the same level as [Translation Memory (TM)](/translation-memory/) and [Glossary](/glossary/). They provide human translators with a clear reference during the translation process and serve as foundational instructions for Crowdin AI features like AI Pre-translation, AI Assistant, and AI QA Checks. + +## Creating Style Guides + +You can create style guides and populate them with content by generating them with AI, writing them from scratch, or uploading existing files in MD, PDF, DOCX, or XLSX formats. These style guides can then be assigned to the relevant projects and specific target languages as needed. + +To create a style guide, follow these steps: + + + 1. Open your profile home page and select **Style Guides** on the left sidebar. + 2. Click **Create Style Guide**. Create Style Guide + 3. In the left panel of the appeared dialog, configure the following settings: + * **Name** – Name your style guide. + * **Projects** – Select **All** or **Selected** to assign the style guide to specific projects. + * **Language** – *(Optional)* Restrict the style guide to specific target languages. If left empty, it applies to all languages in the assigned projects. + 4. Move to the right side of the dialog and choose your preferred method for creating the content: + * **Generate with AI** – Describe your brand voice, target audience, and specific constraints in the **Generate from Description** field. Click **Create Draft** to let Crowdin's built-in AI generate a comprehensive Markdown file for you. You can then review and edit it if needed in the Markdown editor. + * **Write in Crowdin** – Use the built-in Markdown editor to write your style guide from scratch. + * **Upload file** – Upload an existing `.md`, `.pdf`, `.docx`, or `.xlsx` file. If you upload a Markdown file, the system will automatically populate the built-in editor with its content. + 5. Klik på **Opret**. Create style guide dialog + + + + +## Optimizing Style Guides for AI + +To use your style guide with AI-powered features (like pre-translation or the AI Assistant), the AI requires a concise summary of your rules to include in its prompts. This is managed in the **AI-Ready Version** section of your style guide. + +If you create your style guide using the **Generate from Description** method, Crowdin automatically generates the AI-Ready Version for you, and its status becomes **Ready**. + +If you upload a file or write the guide from scratch, you can either write this summary manually or click **Generate** to have the AI summarize the full guide for you. + +The system tracks whether your AI instructions are up-to-date with your current style guide content. You can view this status in the **AI Version** column on the **Style Guides** page: + +* **None** – The style guide does not have an AI-Ready Version and will not be passed to the AI in prompts. +* **Ready** – The AI-Ready Version is fully up-to-date with the current style guide content. +* **Outdated** – The style guide content was modified, but the AI-Ready Version was not regenerated. + + +## Managing Style Guides + +You can manage your style guides directly from the **Style Guides** page on your profile home page. This includes searching, filtering, editing, downloading, and deleting them. + +### Searching, Filtering, and Sorting Style Guides + +By default, all style guides are displayed on the **Style Guides** page. The table displays the style guide's *Name*, *AI Version*, assigned *Projects*, *Languages*, *Owner*, and *Created* date. + +To find a specific style guide, use the **Search** field. To filter the list of style guides, click **Filters** and use the available options: + +* **Projects** – Filter by assigned projects (**All** or a specific project). +* **Languages** – Filter by assigned languages (**All** or a specific language). +* **Owner** – Filter by the user who created the style guide. +* **Created** – Filter by creation date (**All** or **Custom Range**). + +To sort style guides, click the **Name** column header once to sort in ascending order and click again to sort in descending order. + +### Editing Style Guides + +If you need to adjust your existing style guide, you can simply edit it. + +To edit a style guide, follow these steps: + + + 1. Open your profile home page and select **Style Guides** on the left sidebar. + 2. Click next to the needed style guide and select **Edit**. + 3. Modify the style guide as needed and click **Save** to save changes. + + +When editing a style guide, you'll find the **Style guide metadata** section on the left panel. This information provides a clear audit trail for collaboration and troubleshooting. By tracking creation and modification data, you can understand who created or last updated the rules and when. The section contains the following read-only details: + +* **Created by** – The user who created the style guide. +* **Created** – The date and time the style guide was created. +* **Modified by** – The user who last modified the style guide. +* **Last modified** – The date and time the style guide was last modified. + +Editing style guides allows you to update and improve them as needed to ensure they remain effective and aligned with your evolving project requirements. + +### Downloading Style Guides + +You can download your style guides for offline reference and reuse them elsewhere. + +To download a style guide, follow these steps: + + + 1. Open your profile home page and select **Style Guides** on the left sidebar. + 2. Click on the needed style guide and select **Edit**. Alternatively, just double-click on the needed style guide. + 3. Click **Download** in the editor toolbar. + + + + +### Deleting Style Guides + +To delete style guides, follow these steps: + + + 1. Open your profile home page and select **Style Guides** on the left sidebar. + 2. Delete the style guides using one of the following methods: + * **Single style guide**: Click next to the style guide and select **Delete**. + * **Multiple style guides**: Select the checkboxes next to the style guides you want to delete, or top checkbox to delete all, then click at the top of the list. + 3. Confirm the deletion in the confirmation dialog. + + + + +## Assigning Style Guides to Managers + +You can assign style guides to specific managers you work with. Once assigned, managers have the necessary permissions to manage the style guide, including editing its content, updating the AI-Ready Version, and assigning it to the projects they manage. + + + Read more about [Adding Managers to TMs, Glossaries, and Style Guides](/manager-permissions/#adding-managers-to-tms-glossaries-and-style-guides). + + +## Using Style Guides in the Editor + +Once assigned to a project, style guides become visible to project members directly in the Editor, providing them with immediate context. This ensures that your team can easily preview or download formatting rules, tone, and brand guidelines without interrupting their workflow. + +Style Guides in the Editor + + + Read more about [Style Guides in the Editor](/online-editor/#style-guides). + + +## Style Guides in AI QA Checks + +When the AI-powered QA check is enabled in your project, it automatically incorporates all assigned style guides into its evaluation prompt. The AI verifies that each submitted translation aligns with the tone, voice, and stylistic guidelines defined in your style guides. + +You don't need to manually select a style guide in your AI prompt settings. The system automatically evaluates translations against all the style guides assigned to the project. + + + Read more about [Setting Up AI QA Check](/crowdin-ai/#setting-up-ai-qa-check). + + +## Style Guides in API + +You can also create, manage, and delete style guides programmatically using the Crowdin API. + + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/localization-resources/translation-memory.mdx b/src/content/docs/da/crowdin/localization-resources/translation-memory.mdx new file mode 100644 index 00000000..55821c42 --- /dev/null +++ b/src/content/docs/da/crowdin/localization-resources/translation-memory.mdx @@ -0,0 +1,377 @@ +--- +title: Oversættelseshukommelse (TM) +description: Learn how to manage Translation Memories in Crowdin +slug: translation-memory +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import Include from '~/components/Include.astro'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import createTm from '!/crowdin/localization-resources/tm_create_tm.png'; +import createTmDialog from '!/crowdin/localization-resources/tm_create_tm_dialog.png'; +import addTranslationUnit from '!/crowdin/localization-resources/tm_add_translation_unit.png'; +import addTranslationUnitDialog from '!/crowdin/localization-resources/tm_add_translation_unit_dialog.png'; +import translationUnitsView from '!/crowdin/localization-resources/tm_translation_units_view.png'; +import segmentsView from '!/crowdin/localization-resources/tm_segments_view.png'; +import editTranslationUnits from '!/crowdin/localization-resources/tm_edit_translation_units.png'; +import editTranslationUnitDialog from '!/crowdin/localization-resources/tm_edit_translation_unit_dialog.png'; +import findReplace from '!/crowdin/localization-resources/tm_find_replace.png'; +import deleteAllTranslationUnits from '!/crowdin/localization-resources/tm_delete_all_translation_units.png'; +import deleteSegments from '!/crowdin/localization-resources/tm_delete_segments.png'; +import downloadUpload from '!/crowdin/localization-resources/tm_download_upload.png'; +import configureImport from '!/crowdin/localization-resources/tm_configure_import.png'; +import sharingTm from '!/crowdin/localization-resources/tm_sharing_tm.png'; +import fuzzyMatches from '!/crowdin/localization-resources/tm_fuzzy_matches.png'; +import autoSubstitutionSuggestion from '!/crowdin/localization-resources/tm_auto_substitution_suggestion.png'; +import penalizedSuggestion from '!/crowdin/localization-resources/tm_penalized_suggestion.png'; + +A Translation Memory (TM) is a database that stores translation units, which are segments of source text paired with their corresponding translations in different languages. It improves and speeds up the translation process by providing suggestions for identical or similar strings in your projects. + +A project TM is created automatically for each Crowdin project. By default, each translation made within the project is automatically added to the project’s TM. This behavior can be customized in the [project settings](/project-settings/translation-memories/) to save only approved translations. + + + +## TM-oprettelse + +In addition to the project TMs that are automatically created with each project, you can create separate TMs and populate them with content by uploading your existing TMs in TMX, XLSX, or CSV formats. These TMs can then be assigned to the relevant projects as needed. + +Følg disse trin for at oprette en TM: + + + 1. Open your profile home page and select **TM** on the left sidebar. + 2. Click **Create TM**. Create TM + 3. In the appeared dialog, name your TM and select a default language that will be displayed first in the table of translation units. + 4. *(Optional)* Assign the TM to the needed projects. Dette trin kan overspringes og en TM tildeles senere. + 5. Klik på **Opret**. Create TM Dialog + + + + + + + + +## Managing Translation Units and Segments + +You can create translation units from scratch, edit and delete existing translation units or segments of a particular TM or all available TMs. + + + +### Creating Translation Units + +To create a translation unit, follow these steps: + + + 1. Open your profile home page and select **TM** on the left sidebar. Alternatively, open your project and go to **Settings > Translation Memories**. + 2. Select the needed TM and click **View Records**. + 3. Click **Add Translation Unit**. Add Translation Unit + 4. In the appeared dialog, select the language from the drop-down menu and type the translation of the segment. + 5. Click **Add segment** to add more translations for the translation unit. + 6. Klik på **Opret**. Add Translation Unit Dialog + + +### Viewing and Filtering Translation Units and Segments + +Once you open a translation memory, you can view and filter its translation units and segments using either the Translation Units or Segments pages. + +På siden Oversættelsesenheder kan TM-indhold ses grupperet som oversættelsesenheder (en oversættelsesenhed pr. række med hvert segment vist i en separat sprogkolonne). + +Translation Units View + +On the Segments page, you can view TM content as individual segments (one segment per row) with the following details: + +* Segment – Contains either source or target language text. +* Language – The segment's language (e.g., French, Spanish). +* Usage count – Specifies the number of times a segment has been used. +* Created – The date the segment was first added to the TM. +* Last modified – The most recent date the segment was edited. +* Author – The user who added the segment to the TM. + +Segments View + +By default, all translation units and segments are displayed in the Translation Units and Segments pages. To filter the translation units or segments displayed, click and use the available filter options: + +* Created: All, Custom Range. +* Modified: All, Custom Range. +* Author: All, particular user. +* Languages (Specific to the Segments page): All, particular language. +* Usage (Specific to the Segments page): All, Used, Unused. + +To sort translation units or segments, click the column header you want to sort by: + +* Translation Units page – click a language column (e.g., English, French, etc.) to sort the translation units by that language’s text. +* Segments page – click the Segment column to sort by segment text. + +Click once to sort in ascending order and click again to sort in descending order. + +### Editing Translation Units + +You can edit both the source and translation parts of the existing translation unit. + +To edit a translation unit, follow these steps: + + + 1. Open your profile home page and select **TM** on the left sidebar. Alternatively, open your project and go to **Settings > Translation Memories**. + 2. Select the needed TM and click **View Records**. Alternatively, click **All Records** to view translation units of all available TMs in one list. Edit Translation Units + 3. Open a translation unit with a double-click or click **Edit**. + 4. In the appeared dialog, edit or delete the segments of the needed languages. For each segment, you can see additional details like the language, creation date, last modified date, and, if available, the name of the contributor who originally submitted the translation. + 5. Click **Save**. Edit Translation Unit Dialog + + +In addition to editing translation units via the **Translation Memories** page, you can also do it in the Editor. + + + Read more about [Editing TM Suggestions in the Editor](/online-editor/#editing-tm-suggestions-in-the-editor). + + +Another way to edit translation units in your TM is to download it (e.g., in TMX format), make the necessary changes locally on your device, and then reupload the modified TM back to Crowdin. + +Depending on what you modify in your TM, there could be different outcomes: + +* If you edit both the source and translation segments of a translation unit, then when you upload the TM to Crowdin, the locally modified translation unit will be treated as new upon re-upload, leaving the original translation unit unchanged. + +* If you only edit the translation segment of a translation unit, then when you upload the TM to Crowdin, the locally modified translation segment will be added as an alternative version segment to the existing translation unit, keeping the original translation intact but providing another option. + +If you want to have only the modified version of the translation units, follow these steps: + + + 1. [Download](#downloading-tm-for-offline-management) the complete version of your TM to your device. + 2. Make the necessary changes locally on your device. + 3. Completely [clear the content of your TM](#deleting-translation-units-and-segments) in Crowdin. + 4. [Upload](#downloading-and-uploading-tm) your locally modified TM to Crowdin. + + +### Replacing in Segments + +You can easily find and replace translations in segments within a selected TM using the *Find & Replace* feature. + +To replace current translations with the new ones, follow these steps: + + + 1. Open your profile home page and select **TM** on the left sidebar. Alternatively, open your project and go to **Settings > Translation Memories**. + 2. Select the needed TM and click **View Records**. + 3. Click . + 4. In the appeared dialog, select the language in which you want to search. *(Optional)* Use filters if necessary. + 5. Angiv ordet, formuleringen eller sætningen, der skal erstattes, samt dens erstatningstekst. *(Optional)* Use the *Match case* and *Exact match* options to refine the search results. + 6. Click **Find** to preview the segments that will be replaced. Preview + 7. Select the segments you want to replace and click **Replace Selected** to finish. + + +### Deleting Translation Units and Segments + +You can delete one, multiple, or all the translation units or segments at once. + +To delete all the translation units from TM, follow these steps: + + + 1. On the Translation Units page, select the top checkbox above the translation unit list. + 2. Confirm the selection of all translation units. + 3. Click . Deleting Translation Units + + +To delete all the segments from TM for only one particular language, follow these steps: + + + 1. On the Segments page, click and select the needed language. + 2. Select the top checkbox above the segment list. + 3. Confirm the selection of all segments. + 4. Click . Deleting Segments + + +When dealing with the removal of translation units and translations, there could be three possible outcomes: + +* When deleting a translation unit from TM, the related translation won't be deleted for a string in your Crowdin project. +* When you cancel the translation activity for a string via the Activity tab, the translation for a string will be deleted, but the related translation unit will be preserved in TM. +* When deleting a translation for a string in the Editor, both the translation and the related translation unit will be deleted. + + + +## Download/upload af TM + +Følg disse trin for at downloade/uploade TM'er: + + + 1. Open your profile home page and select **TM** on the left sidebar. Alternatively, open your project and go to **Settings > Translation Memories**. + 2. Click **View Records** on the needed TM. + 3. Click and select **Download** or **Upload**. Downloading and Uploading TM + + +The project owner and managers can download and upload TM in the following file formats: TMX, XLSX, or CSV. + + + +If you upload a TM in CSV or XLS/XLSX file formats, match columns with the corresponding languages in the configuration dialog. + +Configure TM Import + +### Automatisk kolonneidentifikation til TM i CSV- og XLSX-filformater + +Uploades en relevant TM-fil i CSV- eller XLSX-formaterne, registrerer systemet automatisk filsystemet baseret på kolonnenavnene angivet i den første række. The identification is performed in a case-insensitive manner. Columns that weren’t detected automatically will be left as **Not chosen** for manual configuration. Automatisk kolonneidentifikation er især nyttig ved upload af TM-regneark indeholdende mange sprog. + +For bedste resultat af den automatiske kolonnedetektering, anbefales kolonnerne i CSV eller XLSX TM-filerne navngivet med værdierne nedenfor: + +* [Language name](/developer/language-codes/) (e.g., Ukrainian) +* [Crowdin language code](/developer/language-codes/) (e.g., uk) +* Landestandard (f.eks. da-DK) +* Landestandard med understregningstegn (f.eks. uk_UA) +* Sprogkode ISO 639-1 (f.eks. da) +* Sprogkode ISO 639-2/T (f.eks. dan) + +To redetect the TM file scheme, click **Detect Configuration**. + + + +### Download af TM til offlinehåndtering + +When downloading TM from Crowdin in TMX format, you can get some additional metadata that might be useful for different usage scenarios with offline tools. + +Supplerende TM-attributter leveret af oversættelseshukommelse downloadet i TMX-format: + +* `x-crowdin-metadata` – String identifier hash. +* `creationid` – Translation author's full name and username in Crowdin. +* `creationdate` – The date the translation was originally created. +* `changeid` – Full name and username of the person who updated a translation. +* `changedate` – The date the translation was last updated. +* `usagecount` – Translation suggestion's number of usages in Crowdin. +* `lastusagedate` – The last date a translation suggestion was used in Crowdin. + +Often translation vendors that work in Crowdin export TMs from projects to manage them for their clients in various desktop applications (e.g., for cleaning TMs from irrelevant translations and further reimport back to Crowdin). Ovenstående TM-attributter muliggør bedre navigering og filtrering af TM-segmenter baseret på forskellige kriterier. Oprensede og opdaterede TM'er kan også bruges alene til træning af MT-motorer på produktspecifikke data mhp. at sikre en højere oversættelseskvalitet. + +## TM-deling + +Using the shared TMs, you can pre-translate any of the projects you own. TM-forslag fra alle TM'er vil ligeledes fremgå i Editor. + +To share TMs between all of the projects you own, follow these steps: + + + 1. Open your profile home page and select **TM** on the left sidebar. + 2. Select **Share TMs**. Sharing TMs + + + + +## Anvendelse af Oversættelseshukommelse via Præoversættelse + +Pre-translation via TM allows you to leverage a minimum of 100% and Perfect matches. + + + + + + + + +### Prioritering af TM-forslag under Præoversættelse via TM + +Under præoversættelse via TM overvejer systemet flere parametre for at vælge det mest relevante TM-forslag. Finder systemet kun ét passende TM-forslag til en streng, anvendes dette under præoversættelsen via TM. Finder systemet to eller flere TM-forslag til en streng, sorteres de baseret på yderligere parametre, og det mest velegnede anvendes. + +Flg. parametre er anført i den rækkefølge, systemet bruger dem til at afgøre, hvilke TM-forslag, som fungerer bedst. Kan beslutningen ikke træffes vha. den første parameter (dvs. to TM-forslag med 100% match), bruger systemet den næste parameter, indtil beslutningen er truffet. + +1. Relevans – også kendt som TM-match. Read more about [TM Match Calculation](#tm-match-calculation). +2. Brug af Auto-substituering – bekræftelse af, om TM-forslaget blev forbedret ved auto-substitution. Read more about [Auto-substitution](#tm-auto-substitution). +3. Tildelt TM-prioritering – prioriteringen af TM'en, som et TM-forslag er gemt i. Read more about [Prioritizing TM](/project-settings/translation-memories/#prioritizing-tm). +4. Primær- eller dialektsprog – primær- eller dialektsprogbrugen i TM-forslagets kildetekst (f.eks. et TM-forslag på engelsk vil have en højere prioritet end engelsk, Canada). +5. TM-forslags oprettelsesdato – datoen, TM-forslaget blev oprettet (et TM-forslag med en nyere oprettelsesdato vil have en højere prioritet). + +For bedre at forstå, hvordan TM-forslag prioriteres under præoversættelse via TM, gennemgås her et par hypotetiske eksempler. Let's imagine you have an untranslated string in your project with the following source text `Welcome!`. Når præoversættelse via TM eksekveres, begynder systemet at søge efter TM-forslag i TM'erne. + +* The system finds two TM suggestions with the source text `Welcome` and `Welcome!`. The translation from the `Welcome!` TM suggestion will be used since it has a higher TM match. +* The system finds two TM suggestions: `Welcome!` and `Welcome!`. Begge har den samme kildetekst, så systemet tjekker, om auto-substituering blev brugt til at forbedre disse TM-forslag og vælger det, der ikke blev forbedret ved auto-substituering. +* The system finds two TM suggestions: `Welcome!` and `Welcome!`. Begge har den samme kildetekst, og begge blev ikke forbedret ved auto-substituering. Systemet tjekker så prioriteringen af TM'erne, disse TM-forslag er lagret i, og vælger det, der er lagret i TM'en med højere prioritet. +* The system finds two TM suggestions: `Welcome!` and `Welcome!`. Begge har den samme kildetekst, begge er ikke forbedret ved auto-substituering, begge lagres i TM'er med samme prioritet. Systemet tjekker så TM-forslagenes kildesprog og vælger det, der bruger primærsproget. +* The system finds two TM suggestions: `Welcome!` and `Welcome!`. Begge har den samme kildetekst, begge blev ikke forbedret ved auto-substituering, begge lagres i TM'er med samme prioritet, og begge bruger primære kildesprog. Systemet tjekker så TM-forslagenes oprettelsesdatoer, og vælger det med den seneste dato. + +I sjældne tilfælde kan der være en situation, hvor to eller flere TM-forslag er identiske baseret på alle de ovenfor anførte parametre. I så tilfælde vælger systemet den første blandt de identiske. + +To improve accuracy, Crowdin minimizes the influence of HTML tags when determining TM matches. Instead of matching based on the original strings, the matching is conducted on strings where HTML tags are replaced with placeholders, similar to the behavior in the Editor. + +For example, a string `Hello world!` will match 100% with a string `Hello world!`. + +## TM Suggestions for Dialect Languages in the Editor + +When the [**TM Suggestions for Dialects**](/project-settings/translation-memories/) option is enabled, Crowdin will show TM suggestions from the primary language for dialect languages in the Editor. For instance, if you have Spanish and Spanish, Argentina as your target languages, and the option is enabled, the Editor will display TM suggestions from Spanish for Spanish, Argentina (indicated as "English -> Spanish" in the TM and MT Suggestions section). + +However, this behavior does not apply to the **Search TM** functionality. If you search for TM suggestions from the primary language in the Search TM tab while working with a dialect language, you will not find any results. + +## TM-matchningsberegning + +Crowdin calculates the TM match by comparing the source string to be translated and TM's existing segments. + +Der findes tre hovedtyper af TM-matchninger: + +* Perfect Match - TM segment’s text and context completely match the source string +* 100% Match – TM-segmentteksten matcher kildestrengens, men konteksten adskiller sig +* Fuzzy Match (op til 99%) - TM-segmentteksten adskiller sig til en vis grad fra kildestrengens + +If the calculations for Perfect and 100% TM match is relatively straightforward, the fuzzy matches' calculation may not be so obvious. + +Der er flere forskellige faktorer, som påvirker beregningen af fuzzy-matchninger, f.eks.: + +* Ordrækkefølge +* Tegnsætning +* Formaterings-tags +* Match, som er længere end kildestrengen + +TM-forslag Fuzz Match + +## TM Auto-Substitution + +Auto-Substitution is aimed to increase the benefit of using the translation memory (TM) by suggesting translations with a higher similarity match. Funktionen erstatter de ikke-oversættelige elementer (såsom tags, HTML-enheder, variabler, tal mv.) i oversættelser foreslået af TM med dem, som benyttes i kildestrengen. + +To enable the Auto-substitution feature, open your project and go to **Settings > Translation Memories**. + +### Ikke-oversættelige elementer, som kan Auto-substitueres + +Auto-substitueringsfunktionen kan erstatte flg. ikke-oversættelige elementer: + + + +### Auto-substituering til Præoversættelse + +Once you enable the TM auto-substitution, you can leverage improved TM suggestions during [pre-translation](#applying-translation-memory-via-pre-translation). Be sure to set a minimum match ratio to 100%. This will result in including 100% TM matches along with the ones improved to 100% by TM auto-substitution. + +### Auto-substituering til TM-forslag + +With the Auto-substitution feature, translators can see the improved TM suggestions in the Editor. Procentdelen under det forbedrede forslag viser matchprocenten af det oprindelige TM-forslag samt det forbedrede forslag. + + + +Auto-Substitution Suggestion + +### Penalized TM Suggestions + +In some cases, you may want to apply penalties to TM suggestions to reduce their match percentage based on specific conditions. + +For example, you can set up a penalty for TM suggestions improved by the auto-substitution feature to prioritize exact matches over improved ones. The percentage below the improved and penalized suggestion shows the match percentage of the improved TM suggestion and the penalized one. Hover the cursor over the percentage to see more details. + +Penalized Auto-Substituted Suggestion + + + Read more about [TM Suggestion Penalties](/project-settings/translation-memories/#penalties). + + +### Omkostningsrapporter + +Once the feature is enabled, it will affect how the [Costs Estimate](/project-reports/#cost-estimate) and [Translation Cost](/project-reports/#translation-cost) reports are calculated. + +**Costs Estimate** report would count TM suggestions that can potentially be improved by the auto-substitution feature based on the highest similarity match to which those strings can be improved. F.eks. kan en match, der kan forbedres fra en 75% match til en 100% match, betragtes som en 100% match. + +**Translation Cost** report would count TM suggestions improved by the auto-substitution feature as regular TM suggestions. F.eks. kan en matchning, der er forbedret fra 75% til 100%, betragtes som en 100% match. + + diff --git a/src/content/docs/da/crowdin/online-editor/expression-syntax-elements.mdx b/src/content/docs/da/crowdin/online-editor/expression-syntax-elements.mdx new file mode 100644 index 00000000..5c8f142a --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/expression-syntax-elements.mdx @@ -0,0 +1,265 @@ +--- +title: Udtrykssyntakselementer +description: Learn about the different elements of the expression syntax +slug: expression-syntax-elements +--- + +import { Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import Include from '~/components/Include.astro'; + +You can configure verbal expressions and custom placeholders using a shared set of expression syntax elements. These elements define how specific parts of a string should be matched, based on structure, character types, or formatting patterns. + +## Expression Elements + + + +## Verbale udtryk + +In the Editor, you can use verbal expressions in the [Advanced Filter](/online-editor/#advanced-filter) to search for strings that match specific patterns, similar to regular expressions. You can use it to filter strings based on patterns like punctuation, character types, length, and more. + +For example, to find all strings that start with an uppercase letter and end with a period, use the following expression: + +```graphql +start "true", range "A,Z", anything, range "a,z,A,Z,0,9", limit "1,50", then ".", end "true" +``` + +This expression means: + +* `start "true"` – the string begins at the start +* `range "A,Z"` – starts with a capital letter +* `anything` – followed by any characters +* `range "a,z,A,Z,0,9"` – allows letters and numbers +* `limit "1,50"` – string length between 1 and 50 characters +* `then "."` – ends with a period +* `end "true"` – end of the string + + + + + + +### Verbal Expression Examples + +Below are several examples of verbal expressions along with the types of strings they help match in your project. These are useful when you want to filter strings with specific content or structure. + + + +##### Start with Uppercase and End with a Period + +String example: + +``` +A test string. +``` + +Expression: + +```graphql +start "true", range "A,Z", anything, range "a,z,A,Z,0,9", limit "1,50", then ".", end "true" +``` + +##### Strings Containing URLs + +String example: + +``` +Visit http://example.com or https://www.example.com +``` + +Expression: + +```graphql +then "http", maybe "s", then "://", maybe "www.", anythingbut " " +``` + +##### Strings with `%s` and `%d` Placeholders + +String example: + +``` +Welcome, %s! You have %d new messages. +``` + +Expression: + +```graphql +then "%", anyof "s,d" +``` + +##### Strings with Variables in Double Curly Brackets + +String example: + +``` +Hello, {{user.name}}! +``` + +Expression: + +```graphql +then "{{", range "a,z", multiple, then ".", range "a,z", multiple, then "}}" +``` + + + +##### Strings with Variables in Double Curly Brackets (Including Uppercase Letters and Digits) + +String example: + +``` +Hello, {{User123.name42}}! +``` + +Expression: + +```graphql +then "{{", range "a,z,A,Z,0,9", multiple, then ".", range "a,z,A,Z,0,9", multiple, then "}}" +``` + + + +##### Strings That Contain Floating Point Numbers + +String example: + +``` +The result is 3.14159 +``` + +Expression: + +```graphql +start, range "0,9", multiple, then ".", range "0,9", multiple, end +``` + +##### Strings That Start with Title Case (Two Capitalized Words) + +String example: + +``` +Quick Access is available now. +``` + +Expression: + +```graphql +start, range "A,Z", range "a,z", multiple, then " ", range "A,Z", range "a,z", multiple +``` + +##### Strings with Trailing Whitespace + +String example: + +``` +This is a sentence with trailing space +``` + +Expression: + +```graphql +start "true", range "A,Z", anything, range "a,z,A,Z,0,9", then " ", end "true" +``` + +##### Strings Starting with a Hash Symbol (e.g., Hashtags or Anchors) + +String example: + +``` +#GettingStarted +``` + +Expression: + +```graphql +start "true", then "#", something, end "true" +``` + +##### Strings Containing HTML Tags + +String example: + +``` +Click here to continue. +``` + +Expression: + +```graphql +then "<", something, then ">" +``` + +##### Strings Containing an Email Address Format + +String example: + +``` +Please contact us at support@example.com +``` + +Expression: + +```graphql +then "@", somethingbut " " +``` + +##### Strings with Double Spaces (Possible Spacing Issue) + +String example: + +``` +This string has extra space. +``` + +Expression: + +```graphql +then " " +``` + +##### Strings Ending with a Colon + +String example: + +``` +Enter your name: +``` + +Expression: + +```graphql +then ":", end "true" +``` + +##### Strings with a Currency Symbol Followed by Digits + +String example: + +``` +Total: $29.99 +``` + +Expression: + +```graphql +then "$", range "0,9", multiple +``` + +##### Strings in camelCase Format + +String example: + +``` +lowerUpper +``` + +Expression: + +```graphql +start, range "a,z", multiple, range "A,Z", range "a,z", multiple, end +``` diff --git a/src/content/docs/da/crowdin/online-editor/icu-message-syntax.mdx b/src/content/docs/da/crowdin/online-editor/icu-message-syntax.mdx new file mode 100644 index 00000000..57463078 --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/icu-message-syntax.mdx @@ -0,0 +1,130 @@ +--- +title: ICU-meddelelsesyntaks +description: Use ICU Message format to handle language-specific nuances +slug: icu-message-syntax +--- + +import { Image } from 'astro:assets'; +import { Aside, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import icuEditor from '!/crowdin/online-editor/icu_editor.png'; +import icuSyntaxError from '!/crowdin/online-editor/icu_syntax_error.png'; + +Crowdin supports ICU Message syntax, which is used to help express the subtleties of language-specific spelling, grammar, and formatting in translations. + +Strings formatted in the ICU Message syntax can have different types of replacements called **arguments**. +Each argument is enclosed in single curly braces (e.g., `{variable}`) and refers to a value in the input data. Please note that using double curly braces (e.g., `{{variable}}`) is not supported and will cause syntax errors. Parametre af flg. typer understøttes i Crowdin: Nummer, dato, tid, vælg og flertal. + +### ICU Message-syntaks i Editor + +ICU syntax arguments are always highlighted in the [Editor](/online-editor/), so you know which part of the string shouldn’t be translated. +Ændre placering af argumenter i oversættelsen for at følge målsprogets naturlige ordrækkefølge. +Der er også en forhåndsvisningstilstand, der muliggør at se, hvordan oversættelsen vil blive vist i brugerfladen for at sikre, at alle de oversætbare elementer oversættes. + +ICU Message-syntaks i Redigeringsværktøjet + + + +## Flertalsform + +Plural type is used to handle plural category variations, as each language has its own set of plural categories (for example, English has "one" and "other", while Ukrainian has "one", "few", "many", and "other"). + +```json +You {itemCount, plural, + =0 {have no projects} + one {have # project} + other {have # projects} +}. +``` + +Flg. korte tags benyttes til bestemmelse af flertalskategorierne: + +* nul +* en (ental) +* to (dobbelt) +* få (paucal) +* mange (også brugt til brøker, hvis de har en separat klasse) +* andre (obligatorisk — generel flertalsform — også brugt, hvis sproget kun har én enkelt form) + +I Editor behøves der ikke manuelt tilføjes eller slettes flertalskategorier til de udførte oversættelser. +Just click **Copy Source**, and the source string will be copied to the translation field with the number of plural categories right for the current target language. + + + Read more about [Language Plural Rules](https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html). + + +### Nested Plurals + +In some cases, you may have a single string that contains multiple nouns that each need to be pluralized independently, for example, "You have X book(s) and Y pen(s)." + +ICU handles this by allowing you to nest plural arguments inside each other. + +```json +{bookCount, plural, + one {You have # book and {penCount, plural, + one {# pen} + other {# pens} + }} + other {You have # books and {penCount, plural, + one {# pen} + other {# pens} + }} +} +``` + +## Vælg Ordenstal + +The purpose of the select ordinal type is to choose output based on the ordinal pluralization rules (1st, 2nd, 3rd, etc.) of the current target language. Det er meget lig flertalstypen, bortset fra værdien er knyttet til en ordenstal-flertalskategori. + +```json +Congrats! It's your {year, selectordinal, + one {#st} + two {#nd} + few {#rd} + other {#th} +} subscription anniversary! +``` + +## Vælg + +Select type is used to choose an output based on a string variable. It is most commonly used to represent the right gender-based inflections in the message. + +```json +{gender, select, + male {He uses} + female {She uses} + other {They use} +} Crowdin. +``` + +This type is useful for any situation where the translation changes based on a specific keyword. Regardless of the use case, the ICU standard requires that you always include an `other` clause. This clause provides a necessary fallback in case the variable doesn't match any of the specified options. + +## Tal + +The purpose of the number type is to display different number values such as percentage, +currency, and decimal numbers independently of the locale conventions for those. +Dette muliggør justering af meddelelsesoutput til de talformater, som benyttes i forskellige lokaliseringer. [ICU Number Skeletons](https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html) are also supported. + +```json wrap +The app price is {price, number, ::currency/USD} with {discount, number, percent} discount. +``` + +## Dato, klokkeslæt + +Dato- og klokkeslættyper viser dato og klokkeslæt i overensstemmelse med de ønskede formater i de relevante lokaliseringer. +Disse typer kan også have en visningsstil -– ekstra information om, hvordan værdien formateres. +Flg. fire stilarter kan bruges: Korte, medium, lange og fulde. + +```json wrap +Your meeting is scheduled for {dateValue, date, long} at {timeValue, time, short} AM. +``` + +## Syntaksfejl + +Syntaksfejldetektion reducerer forvirring væsentligt under oversættelse af strenge i ICU Message-syntaks, +da platformen automatisk identificerer potentielle oversættelsesfejl. +If a syntax error is found, you'll see a notice with a suggestion of what needs to be fixed. + +You can also use external tools to verify your ICU syntax, for example, the [Online ICU Message Editor](https://format-message.github.io/icu-message-format-for-translators/editor.html). + +Syntaksfejl detekteret diff --git a/src/content/docs/da/crowdin/online-editor/issues.mdx b/src/content/docs/da/crowdin/online-editor/issues.mdx new file mode 100644 index 00000000..1f9cdf4a --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/issues.mdx @@ -0,0 +1,148 @@ +--- +title: Issues +description: Report and manage translation issues in the Editor +slug: issues +sidebar: + order: 1 +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import KBD from '~/components/KBD.astro'; +import ReadMore from '~/components/ReadMore.astro'; +import commentWithIssue from '!/crowdin/online-editor/comment_with_issue.png'; +import issueOptions from '!/crowdin/online-editor/issue_options.png'; +import issueOptionsManager from '!/crowdin/online-editor/issue_options_manager.png'; +import stringsFilter from '!/crowdin/online-editor/strings_filter.png'; + +Issues help ensure translation quality by giving translators, managers, and developers a structured way to report and resolve problems with strings in the Editor. Translators use them to flag unclear source strings, incorrect translations, or missing context. Managers use them to ensure that feedback is addressed quickly and that translations stay accurate. + +Crowdin provides issue tracking directly within the Editor, making it easy to report and resolve issues without interrupting the translation process. + +## Til oversættere + +When working on translations in the Editor, you may occasionally come across unclear source strings, formatting questions, or existing translations that seem incorrect. In these cases, don't guess-report the issue so it can be clarified or corrected. This section explains how to report issues effectively and shares best practices for contributing to high-quality translations. + +### Problematikanmeldelse + +When you're unsure how to translate a string or spot a mistake, it’s important to report the issue instead of guessing. + +To report an issue, follow these steps: + + + 1. Open the **Comments** section. + 2. Select the **Issue** checkbox. + 3. Choose the issue type. + 4. Add a comment explaining the problem. + + +Comment with issue + +Available issue types include: + +* **General question** – Ask anything related to the string or its translations. +* **Current translation is wrong** – The existing translation is incorrect. +* **Lack of contextual information** – You need clarification to understand what the string means. +* **Mistake in the source string** – There's a typo or error in the original text. + +Once submitted, the issue becomes visible to project managers and is marked in the Editor with a icon. + +### Editing or Resolving Your Own Issues + +If you’ve reported an issue, you can edit, resolve, or delete it at any time. + +To manage your issues, follow these steps: + + + 1. Hover over your comment in the **Comments** section. + 2. Select **Edit**, **Resolve**, or **Delete**. + + +Problematikmuligheder + +### Best Practices + +Clear, specific issues help project managers and developers respond quickly and improve translation quality across the project. If you're ever unsure, even if there’s context or a screenshot, report the issue. It’s always better to ask than assume. + +* **Report uncertainty** – Don’t guess. If the meaning of a string isn’t clear, create an issue. +* **Describe the problem clearly** – Give enough detail for managers to understand the context and provide a useful response. +* **Choose the correct issue type** – This helps route your message to the right person and speeds up resolution. +* **Avoid duplicates** – If a similar issue already exists, add a comment to continue the discussion instead of creating a new one. + +## Til Administratorer + +A clear process for handling reported issues helps ensure that translators receive timely support and that translation quality stays high. This section explains how to view and manage reported issues, outlines best practices for maintaining a responsive workflow, and offers suggestions for tools and integrations that can help scale the process. + +### Managing Issues + +Project managers and proofreaders can view, filter, respond to, and resolve issues reported by translators. Whether you're working directly in the Editor or managing large-scale feedback across projects, Crowdin provides flexible tools to help you stay organized and respond efficiently. + +#### Viewing and Filtering Issues + +To see all strings with unresolved issues in the Editor, follow these steps: + + + 1. Click to open the string filter. + 2. Select **With Unresolved Issues**. + 3. Select **All Languages** or **Current Language** to narrow results. + + +Strings Filter + +Strings with unresolved issues are marked with the icon. Filtering helps you prioritize which strings need attention first. + +To fine-tune the list of strings even further, you can use the [Advanced Filter](/online-editor/#advanced-filter). For example, to show only issues of a specific type or those reported by a certain project member. + + + Read more about [Filtering Strings](/online-editor/#filtering-strings). + + +#### Responding and Resolving + +You can respond to translator questions or feedback directly in the **Comments** section of the string. + + + 1. Open the string with the reported issue. + 2. Open the **Comments** section. + 3. Click **Reply** on the reported issue, add your response, and press Ctrl+Enter or +Enter or click **Send**. + 4. Click **Resolve** once the issue has been addressed. + + +Issue options for Managers + +If needed, you can delete an issue. Hover over it to reveal the available options. + + + +### Best Practices + +Clear communication and consistent handling of issues help maintain translation quality and team trust. Here’s how to build an effective issue management workflow: + +* **Encourage a culture of asking questions** – Make it clear to translators that reporting issues is welcome and expected. It shows they care about accuracy-not that they’re slowing things down. +* **Assign responsibility for responses** – Define who should handle different types of issues (e.g., source text problems, lack of context, UI-specific questions). This prevents confusion and speeds up replies. +* **Aim for quick first responses** – Even a short “Looking into this” message lets translators know their feedback isn’t being ignored. +* **Review issue trends regularly** – Frequent reports of the same type (e.g., unclear UI strings) can help you identify larger problems in your content or workflow. +* **Close the loop** – Whenever possible, follow up in Crowdin when an issue is resolved. It builds trust and shows that feedback matters. + + + +### Recommended Tools and Workflows + +To handle issues more efficiently especially in large or complex projects you can extend Crowdin’s functionality using integrations and automation: + +* Use the [Jira Integration](/jira-integration/) to automatically create and track reported issues in your development workflow. +* Set up the [Slack Integration](/account-notifications/#slack-integration) to receive real-time notifications when translators report issues, so your team can respond promptly. +* Use [Webhooks](/webhooks/) to trigger custom workflows when issues are created, updated, deleted, or restored in Crowdin. +* Build custom issue-handling automations using the [Crowdin API](/developer/api/), such as forwarding issues to internal tools or triggering email alerts. +* Browse the [Crowdin Store](https://store.crowdin.com/) to find ready-to-use apps and integrations that support issue tracking and response workflows. + + + + diff --git a/src/content/docs/da/crowdin/online-editor/overview.mdx b/src/content/docs/da/crowdin/online-editor/overview.mdx new file mode 100644 index 00000000..f2bbf0ba --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/overview.mdx @@ -0,0 +1,959 @@ +--- +title: Editor Overview +description: Increase your productivity with the Crowdin Editor +slug: online-editor +sidebar: + order: 0 +--- + +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import Include from '~/components/Include.astro'; +import ReadMore from '~/components/ReadMore.astro'; +import KBD from '~/components/KBD.astro'; +import sbsEditor from '!/crowdin/online-editor/sbs_editor.png'; +import suggestingTranslations from '!/crowdin/online-editor/suggesting_translations.png'; +import htmlPreview from '!/crowdin/online-editor/html_preview.png'; +import wysiwygInlineEditing from '!/crowdin/online-editor/wysiwyg_inline_editing.png'; +import stringSearch from '!/crowdin/online-editor/string_search.png'; +import stringsFilter from '!/crowdin/online-editor/strings_filter.png'; +import terms from '!/crowdin/online-editor/terms.png'; +import requestContext from '!/crowdin/online-editor/request_context.png'; +import qaInlineBanner from '!/crowdin/online-editor/qa_inline_banner.png'; +import pluralForms from '!/crowdin/online-editor/plural_forms.png'; +import stringMenu from '!/crowdin/online-editor/string_menu.png'; +import otherLanguagesTab from '!/crowdin/online-editor/other_languages_tabs.png'; +import vote from '!/crowdin/online-editor/vote.png'; +import commentNew from '!/crowdin/online-editor/comment_new.png'; +import searchTm from '!/crowdin/online-editor/search_tm.png'; +import fileBrowser from '!/crowdin/online-editor/file_browser.png'; +import editTmSuggestions from '!/crowdin/online-editor/edit_tm_suggestions.png'; +import styleGuides from '!/crowdin/online-editor/style_guides.png'; +import fileContext from '!/crowdin/online-editor/file_context.png'; +import multiApprove from '!/crowdin/online-editor/multi_approve.png'; +import qaChecksOn from '!/crowdin/online-editor/qa_checks_on.png'; +import comfortable from '!/crowdin/online-editor/comfortable.png'; +import multilingualMode from '!/crowdin/online-editor/multilingual_mode.png'; +import multilingualModeGrid from '!/crowdin/online-editor/multilingual_mode_grid.png'; +import rtlLanguages from '!/crowdin/online-editor/rtl.png'; +import commandPalette from '!/crowdin/online-editor/command_palette.png'; +import translationProgressIndicators from '!/crowdin/online-editor/translation_progress_indicators.png'; +import searchTmTab from '!/crowdin/online-editor/search_tm_tab.png'; +import replaceInSuggestionsResults from '!/crowdin/online-editor/replace_in_suggestions_results.png'; +import replaceInSourcesResults from '!/crowdin/online-editor/replace_in_sources_results.png'; +import advancedFilter from '!/crowdin/online-editor/advanced_filter.png'; +import taskName from '!/crowdin/online-editor/task_name.png'; + +The Editor is the main place in Crowdin where project members can work on translations. It allows users to suggest, vote on, review, and approve translations online. + +Using the main menu at the top of the Editor (**File**, **Edit**, **View**, **Language**, **Project**, **Help**), you can select content for translation, download or upload translations, perform various string actions, change the Editor's layout, switch target languages, access project pages and switch projects, access help materials, and more. + +## Core Features + +The Editor provides all the necessary tools for translators and proofreaders, including: + +* List of strings available for translation, which may vary in different [Editor modes](#editor-modes). +* Context, labels, and additional information to guide the work. +* String search and filtering options for efficient translation management. +* [AI-powered suggestions](/crowdin-ai/#using-ai-in-the-editor), [Translation Memory (TM)](/translation-memory/) suggestions, and [Machine Translation (MT)](/machine-translation/) suggestions. +* [Glossary](/glossary/) terms to ensure consistency. +* Comments section for collaboration and reporting issues. + +Side-by-side Editor mode + +### String List + +This section displays the list of strings, with the active one highlighted. Strings are text elements that are either individual words, phrases, or sentences. Some strings might have replacement tokens (e.g., {0}, {1}, %1, etc.) or elements of the [ICU message syntax](/icu-message-syntax/). Such items themselves should not be translated but are used by the website code to dynamically insert some information into strings. To work with such strings, you should copy the source string and translate only the real words. + +##### String Statuses + +Strings can have the following statuses: + +* - untranslated +* - partially translated (if some of the plural forms are not translated) +* - translated +* - partially approved (if some plural forms are not approved) +* - approved +* - hidden (visible only for project managers and proofreaders) + +##### String Markers + +Besides the status icons, strings can also display the following markers: + +| Marker | Appears when | Click action | +| -------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | +| **Labels** | The string has labels. | Opens the **Context & Translations** panel with the string's labels. | +| **Comments** | The string has comments and no unresolved issues. | Opens the comment dialog. | +| **Comments with Issues** | The string has unresolved issues. | Opens the comment dialog. | +| **Screenshots** | The string has screenshots attached. | Opens the first screenshot or the context panel, depending on how many screenshots are attached. | +| **Master String** | The string is the original string for one or more duplicates. | Opens the duplicates list in a new tab. | +| **Duplicate String** | The string is a duplicate of another string. | Opens the original string in a new tab. | + + + +#### Suggesting Translations + +To suggest a translation, select a string from the list and enter your suggestion in the field next to the original text. + +To streamline the translation process, you can enable the Auto-save feature. When the **Auto-save translations** setting is enabled in the [Editor Settings](#general), your translations are automatically saved when you switch to another string. A "Saving..." indicator will appear briefly, followed by a "Saved" confirmation. + +By default, Auto-save is disabled, meaning you need to manually click **Save translation** for each string. When Auto-save is disabled, the **Save translation** button acts as the primary action and appears green. When Auto-save is enabled, the button becomes gray, as manual saving is optional. + +Once saved, your suggestion will be added to the string's translation suggestions list. By default, the **Automatically move to next string** option is enabled, so the Editor will then move to the next string. + +If you need to discard your current input and revert to the previous state before saving, click **Cancel**. + +Suggesting Translations + +#### Korrekturlæsning + +Review the translations to make sure they are ready for export, and click *Approve* icon next to the suggestion to approve each translation separately. + +To approve all or a couple of the strings at once, check the boxes on the left and then click **Approve**. + +Side-om-side korrekturlæsning + + + +QA-problematikker + +#### WYSIWYG File Preview + +When translating the content of an HTML, XML, TXT, DOCX, XLSX, HAML, Web XML, Markdown, MDX, DITA, Wiki, ADOC, Coffee, FTL, JS, TS, and FTLH file formats, you can toggle a bottom panel (for Side-by-side and Multilingual modes) to see a file preview (i.e., WYSIWYG). For Comfortable mode, the file preview is displayed by default when working with the formats mentioned above. + +The string status is indicated by the following colors: + +* Rød - uoversat +* Blå - oversat +* Lysegrøn - godkendt +* Gray - not for translation + +An active string is highlighted in yellow. + +HTML-visning + +Flg. muligheder er tilgængelige for at håndtere ovenstående visning: + +* - *Load basic list view*. Use it to switch to a standard mode and see a list of strings (Comfortable mode only). +* - *Highlight untranslated, translated, and approved strings*. Use it to toggle the color highlighting of strings on and off. +* - *Show translation preview*. Use it to toggle the translation preview mode on and off. +* - *Scale Toggle*. Use it to toggle between a zoomed-in and zoomed-out view (Comfortable mode only). +* - *Full Screen* (by default, Ctrl+F or +F). Use it to expand the preview to the full screen. +* - *Dual Preview* (by default, Ctrl+D or +D). Use it to display the Source and Translation files side-by-side. + +##### Full Screen and Dual Preview + +When you switch to **Full Screen** or **Dual Preview**, the preview displays the entire file, bypassing the pagination limits of the standard [string list](#string-list). + +Instead of using the side panel, you can translate contextually using inline editing: + + + 1. Click on any highlighted text directly within the WYSIWYG preview. + 2. A popover will appear where you can enter and save your translation. + 3. If you need to reference the original text while translating, click **Source String** within the popover to expand it. + + +In **Dual Preview** mode, clicking a string in the Source panel will automatically highlight the corresponding string in the Translation panel (and vice versa) while opening the translation popover. + +Inline Editing Popover + + + +#### Strengsøgning + +To find specific strings in the Editor, type your query into the search field at the top of the string list. Use the keyboard shortcut (by default, Ctrl+F or +F) to instantly focus on the search field. + +Depending on the content you open in the Editor, the search will apply to the currently open file, folder, or all strings in the project. + +To refine your search results, click the **Search filter** icon next to the search field. This will open a drop-down menu with the following filters and options: + +Strengsøgning + +##### Search in + +Define the scope of your search by selecting one of the following criteria: + +* *Everything* – search through source texts, translations, context, and identifiers. +* *Strings* – search through source texts only. +* *Translations* – search through translations only. +* *Context* – search through string context only. +* *Identifier (Key)* – search through string identifiers only. + +##### Options + +Refine your search further with these options: + +* *Match case* – finds only strings written in the same case. For example, a search for `Work` will find `Work`, `Works`, and `Working`, but not `work`. +* *Match whole phrase* – finds strings that contain the search phrase in the exact order. For example, a search for `Machine Translation` will find `Machine Translation` or `machine translation`, but not `Translation Machine`. +* *Exact match* – finds only strings that are identical to the search phrase. For example, a search for `Work` will find `Work` or `work`, but not `Works` or `Working`. + +You can combine *Match case* with either *Match whole phrase* or *Exact match*. Note that *Match whole phrase* and *Exact match* are mutually exclusive. + +Søgeudtrykket kan udgøre maks. 128 tegn. If you use a search phrase longer than 128 characters, it will be automatically truncated to the maximum allowed length. + +You can also find a specific string by its internal numeric identifier (a number automatically assigned by Crowdin). To do so, type the numeric ID (e.g., `34354`) into the search field without quotation marks to get an exact match. +To search for the occurrences of the number in the text or context, enclose it in quotation marks (e.g., `"34354"`). + +#### Strengefiltrering + +To filter the strings displayed in the left sidebar, click and select the preferred filter option. + +Tilgængelige filterindstillinger: + +* *Show All* – Show all strings from the open file/folder in their original order. +* *All, Untranslated First* – Show all strings from the opened file/folder. Untranslated strings are displayed at the top of the list, followed by translated strings, and then approved ones are displayed at the bottom of the list. +* *Untranslated* – Show only strings without any translations. +* *Need to Be Voted* – Show already translated strings. +* *Not Approved* – Show strings that are already translated but not yet approved by a proofreader. +* *Approved* – Show only strings with approved translations. +* *Unsaved Translations* – Show strings with translations you entered but haven't saved yet. +* *QA issues* – Show strings with or without unresolved QA issues in the current language, with the possibility to filter by specific errors. +* *Machine Translations* – Show strings that are translated by TM, MT, or AI suggestions without changes. Often these strings require additional review. +* *With Comments* – Show strings that have comments. +* *With Unresolved Issues* – Show strings with unresolved issues in the current language or all languages. +* *Hidden* – Show strings that are hidden from translators. Strings can be hidden by project managers or automatically hidden by Crowdin when they are marked as duplicates. +* [*Advanced Filter*](#advanced-filter) – A filter that allows you to configure custom filtering and sorting parameters. +* *AI/CroQL Filter* – An AI-powered filter that allows you to create custom queries using the [Crowdin Query Language (CroQL)](/developer/croql/) for enhanced string filtering. + + + +Strings Filter + +#### Viewing Surrounding Strings for Context + +When translating, understanding the surrounding text can be crucial for accuracy. The Editor allows you to display the strings that immediately precede and follow your active strings in the source file, even if they don't match your current filter criteria. + +To toggle this context view on or off, click the **Show surrounding strings for context** icon next to the search field, or select this option from the [String menu](#string-menu). When enabled, the Editor will load and display up to five preceding and five succeeding strings for all strings currently displayed on the page. + +##### Working with Context Strings + +Context strings are visually marked with a puzzle icon and appear greyed out to distinguish them from the strings in your primary filtered view. How you can interact with them depends on how you accessed the Editor: + +* **Normal Editor Mode:** When you open a source file directly in the Editor, you can interact with context strings just like regular strings. Despite being greyed out, you can still select them, add translations, vote on them, and approve them. +* **Task Mode:** When you open a specific task in the Editor, context strings are provided purely for reference. They are strictly read-only, meaning their input fields and action buttons are disabled. This ensures you have the necessary context without accidentally modifying strings outside your assigned task scope. + +#### Viewing String Statistics + +To help you estimate workload and track costs, the Editor can display detailed statistics for the strings in the list. + +You can access these statistics by clicking the string count button (e.g., **10 STRINGS**) at the bottom of the string list and then selecting **Get Info** from the menu. + +A pop-up table will appear, providing a detailed breakdown for both **Filtered** (all strings in the current view) and **Selected** (only the strings you have manually checked) strings. + +The statistics include: + +* Strenge +* Ord +* Characters (no spaces) +* Characters (with spaces) + +### Flertalsformer + +Visse strenge kan have flertalsformer. Afhængigt af sprog kan antallet af flertalsformer variere. For example, Chinese has one plural form, English has two plural forms, and other languages may have up to six plural forms. Crowdin works with plural forms according to the CLDR Language Plural Rules. + + + Read more about [CLDR Language Plural Rules](https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html). + + +If a string has multiple plural forms, all variants of the string are displayed in the section where you type in translations. Enter translations in the appropriate sections that display the plural forms of the target language. + +Plural forms + +### QA-tjek + +To help you maintain translation quality and prevent common inaccuracies, the Editor automatically performs Quality Assurance (QA) checks. These checks scan for issues like punctuation discrepancies, spacing mismatches, missing placeholders, or inconsistent terminology. + +The Editor's behavior depends on whether these issues are configured as **Errors** or **Warnings**: + +* **Errors (Blocking Issues):** The inline **Review issues to save** banner appears, and an orange warning badge appears on the **Save translation** button. Saving the translation and navigation (e.g., changing target languages, opening a different file, or applying filters) are prevented until you resolve the issue. Hovering over the **Save translation** button displays a "Resolve blocking issues first" tooltip. Errors are strictly enforced and trigger the banner even if you disabled the **QA issues** option in your personal Editor settings. You can still switch to translate another string, but the translation for the current string will remain unsaved until the error is fixed. +* **Warnings (Non-blocking Issues):** For less critical inconsistencies, the behavior depends on whether the **QA issues** option is enabled in your [Editor Settings](#general): + * **Setting ON:** The inline **Review issues to save** banner displays the warnings, and an orange warning badge appears on the **Save translation** button. Navigation is blocked until you resolve the issues or click **Save Anyway**. + * **Setting OFF:** The translation saves automatically (if Auto-save is enabled) without displaying the banner or warning badge, bypassing these warnings entirely. + + + +If QA issues are detected when you manually save a translation or when Auto-save triggers upon switching strings, they will be displayed in the inline banner. Below is an example of a punctuation mismatch (configured as a Warning by default): + +QA issues inline banner + +#### Auto-fixing QA Issues + +For many common errors, the inline QA banner provides automatic quick-fixes: + +* Click the **Autofix** icon next to an individual issue to apply the correction automatically. +* Click **Fix (N)** in the banner header to instantly apply all available auto-fixes for the current string. + +Once the issues are resolved, the translation will automatically save and allow you to continue. + +### Managing Source Strings + +Project members with manager permissions (or higher) can manage source strings directly within the Editor, allowing for quick corrections and updates without needing to switch to the project's **Sources** tab. + +You can access these options via the **Edit** menu at the top of the Editor. The most common actions are also available as quickly accessible buttons in the top toolbar: + +* **Add String** – Add a new string to the currently opened file. +* **Edit String** – Modify the selected source text, identifier (key), context, labels, or maximum length limit. +* **Delete String** – Permanently remove the string from the file (available via the **Edit** menu; supported only for specific file formats). +* **Hide String / Make String Visible** – Toggle the string's visibility for translators. Hidden strings are accessible only to project managers or higher (available via the **Edit** menu or [String menu](#string-menu)). + + + Read more about [String Management](/string-management/). + + +### String Menu + +Clicking in the upper-right allows you to: + +* **Remove Approval** – Remove the approval for a translation, reverting its status to unapproved. (Available for proofreaders or higher.) +* **Remove Translation** – Clear translations for the selected strings along with the associated TM records. Duplicate translations from master strings remain unaffected. +* **Hide String / Make String Visible** – Toggle the visibility of a string for translators. Hidden strings are accessible only to project managers or higher. +* **Pre-translate** – Initiate [pre-translation](#pre-translation-in-the-editor) directly in the Editor using Translation Memory (TM), Machine Translation (MT), or AI. +* **Copy String URL** – Access a specific string using its unique link or share it with colleagues. +* **Copy Source Skeleton** – Copy untranslatable elements to the translation section. This action can be applied to one or multiple selected strings. Useful when translating strings with ICU message syntax or HTML tags. +* **Clear Selected Input** – Clear the translation field for the selected string. +* **Translation History** – View all the modifications made to the string. +* **Show / Hide surrounding strings for context** – Display up to five preceding and five succeeding strings for all strings currently loaded in the Editor to help you understand their context. This performs the exact same action as the button in the main toolbar. +* **Labels** – Add or manage labels assigned to the string, helping to categorize or identify it for specific purposes. +* **Max. Length** – View and edit the maximum character length allowed for the string translation. Clicking this option opens a modal with the following settings: + * **Proportional to source texts** – Set the maximum length as a percentage of the source text length. Use the slider or manually enter a percentage (e.g., 100%, 150%, 200%) to define the limit. + * **Fixed max. length** – Specify an absolute character limit for the string translation. + * **Unlimited** – Allow translations of any length without restrictions. +* **Delete String** – Permanently remove the string from the project. (Available to project members with manager permissions or higher.) + + + +In the translation window, you will also see the *Maximum length of translation* limit if it’s exceeded. + +String Menu + +Additional action buttons available when translating a string: + +* **Copy Source** – Use it to keep the initial string structure while translating messages with replacement tokens or elements of ICU message syntax. This action can be applied to one or multiple selected strings. +* **Clear** – Use it when you need to wipe the translation field quickly (Comfortable mode only). For other modes, use the **Cancel** button, or the **Clear Selected Input** option from the **Edit** menu or the [String menu](#string-menu). +* **Text selection mode** – Use it when you want to copy a part of the translation from Translation Memory (TM) or Machine Translations (MT) (Comfortable mode only). + + + +### Context & Translations + +Denne sektion indeholder de ressourcer, som kan være nyttige: + +* Context, labels, screenshots, and additional information to guide the work. +* Oversættelser fra andre projektmedlemmer +* AI suggestions (if enabled in the [project settings](/project-settings/ai/)) +* Forslag fra Oversættelseshukommelsen (TM) +* Maskinoversættelseforslag (MT) +* Oversættelser til andre sprog + +Et klik på et af forslagene indsætter dette i oversættelsesfeltet. Refer to it as a basis for your own suggestions. + +TM suggestions may include additional details such as the TM name, match percentage, creation date, and, if available, the name of the contributor who originally submitted the translation (displayed as full name and username, e.g., *by Michael Ross (m.ross)*). This information helps provide more context about the source and relevance of each suggestion. + +Some suggestions may also feature a **High relevance suggestion** label. This label helps you identify highly trustworthy translations. It appears on TM suggestions that have a Perfect Match (101%) and originate from a translation that was previously approved. + +To quickly copy the TM or MT suggestion to the translation field and save it, click **Use and Save** on the desired suggestion. + +The *Other Languages* section allows you to check the string translations into other target languages. Dette kan være et nyttigt værktøj for flersprogede bidragsydere samt ved oversættelse af dialekter. This view is available for reference even if you do not have permission to work on those specific languages. + +Andre sprog + +#### Voting + +If you see that there is already a correct suggestion, vote for it by clicking the *plus* sign if you like the translation, or the *minus* sign if you don't think the translation is correct. Oversættelser, som modtager flest positive stemmer, vil have en højere vurdering og vises øverst på alle tilgængelige oversættelser for strengen. + +Stemmeafgivelse + +#### Requesting Context + +Within the **Context & Translations** section, you can find the context for each string, which may include technical details, a description of where the string appears in the product, or a screenshot showing its location in the user interface. If a string lacks context and its meaning is unclear, click **Request** to notify a project manager that additional explanation is needed. + +Anmod om kontekst + +### Kommentarer + +Using the **Comments** section, you can discuss the meaning of the source string or other related questions. It is recommended to use a source language of the project so other translators can understand it. Use the "@" character and a username to direct your message to the specific person. + +To provide additional context or clarify details, you can add attachments to your comments. You can upload up to 10 files to a single comment in the following ways: + +* Click **Attach file**. +* Drag and drop files directly into the **Comments** section. +* Paste files from the clipboard (e.g., Ctrl+V or Cmd+V). + +The Editor supports attachments in various file formats, allowing you to preview images and play video or audio files directly within the interface. If you attach multiple files, you can navigate through them using the pagination. + +Hover over an attachment to access the following options: + +* **Preview** +* **Download** +* **Delete** + +To help you track new comments, a bubble indicator with the number of unread comments is displayed next to the *Comments* section icon in the right panel. This bubble appears when there are unread comments for the selected string and disappears once you open the section to read them. + +You can also use this section to report problems with source strings or translations, ask questions, or request additional context. + +Comment + + + +### Søg i TM + +Using the *Search TM* section, you can check for all the available translations from [Translation Memory](/translation-memory/), which is the vault of translations uploaded to the system by project managers. To help you find the best results quickly, the search prioritizes and displays the most relevant matches at the top of the list. + +The Search TM section provides the following options: + +* Kilde – Søg efter match på et kildesprog. +* Mål – Søg efter match på et målsprog. +* Gæt oversættelse – Fremhæv sandsynlig oversættelse af en søgesætning. +* Numerisk ækvivalens – Match cifre fra en søgesætning med andre cifre. + +For yderligere at maksimere søgeresultater, kan flg. jokertegn bruges i søgesætningen: + +Type an asterisk **(\*)** to find words where the end or beginning may be different. +Example: any\* finds *any*, *anyway*, *anything* +Example: \*way finds *way*, *anyway*, *highway* + +Type a plus sign **(+)** to find words where the end or beginning must be different. +Example: any+ finds *anyway*, *anything*, *anywhere*, except *any* +Example: +way finds *anyway*, *highway*, *someway*, except *way* + +Type a minus sign **(-)** to exclude words from your search. +Example: Save -as + +Use quotation marks to find the exact combination of words. +Example: "Save as" + +Each TM suggestion in the search results also includes details such as the TM name, creation date, and, if available, the name of the contributor who originally submitted the translation. + +Søg i TM + +### Redigering af TM-forslag i Editor + +When working in the Editor, you can view the TM suggestions displayed in the TM and MT Suggestions section and in the right sidebar found through the Search TM section. Der kan være situationer, hvor TM-forslag indeholder unøjagtigheder eller kræver opdatering. + +Project members with manager permissions (or higher) can edit or delete TM records directly in the Editor, both in the TM and MT Suggestions section and in the Search TM section, rather than having to go to the Translation Memories page in the Resources or Project Settings. Dette sikrer, at TM-forslag opdateres sikkert og hurtigt, hvilket forbedrer den overordnede TM-kvalitet. + +Følg disse trin for at redigere et TM-forslag: + + + 1. Click in the TM and MT Suggestions section or **Edit** in the Search TM section. Edit TM Suggestions + 2. Foretag via dialogen de ønskede redigeringer (dvs., ændre eller slette) af TM-forslag for hvert sprog tilgængeligt i TM-segmentet. + 3. To revert accidental deletions or unwanted changes, click **Undo** next to the TM suggestions or click **Cancel** to revert all modifications before saving. + 4. Once the desired edits are completed, click **Save** to confirm and apply these changes to the TM segment. + + +To completely delete a TM segment from the TM, delete all TM records across all languages and click **Save**. + +### Terminologi + +Underlined words or phrases in strings indicate project-specific terminology, which should be translated according to the provided term description. You can view detailed explanations by hovering over the underlined text or visiting the Terminology section. + +The Terminology section allows you to browse the project glossary (if available) and search for specific terms. If a term is not found in the glossary, Wikipedia explanations will be displayed as a reference. + +Some terms may already have translations, which help maintain consistency across the project. To reuse a translated term, simply click on the underlined text, and its translation will automatically appear in the translation field. + +Terminologi + +### Style Guides + +The **Style Guides** section provides access to the project's style guides, which contain specific rules and guidelines for translators to follow. A style guide may include information about tone of voice, preferred terminology, formatting rules, and other important details that help maintain consistency and quality across all translations in the project. + +To preview or download a style guide, follow these steps: + + + 1. Open the **Style Guides** section in the right sidebar. + 2. A project can have one or more style guides available. Click on the preferred style guide to view its full contents in a pop-up modal. + 3. *(Optional)* Click **Download** on the style guide to save it for offline reference. + + +Style Guides in the Editor + + + Read more about [Style Guide](/style-guide/). + + +### Filkontekst + +The *File Context* section allows you to provide translators with additional details to help them understand how to translate a specific file. File context can be added as plain text or Markdown, either directly in the Editor or through the [File Settings](/file-management/#file-context) by the project members with manager permissions (or higher). For other project members, file context is read-only. + +To add file context in the Editor, follow these steps: + + + 1. Click **Add File Context** in the File Context section. + 2. Add the context or instructions for your translators. Simpel tekst eller Markdown kan benyttes. + 3. *(Optional)* Click **Preview** to see how the text will appear after saving. + 4. Click **Save**. + + +To edit file context, click the existing text in the File Context section, make your changes, and click **Save**. + +File context + +## Editor Modes + +The Editor offers several viewing modes to accommodate different translation workflows. The available modes include **Side-by-Side**, **Comfortable**, **Multilingual**, and **Multilingual (Grid)**, each providing a unique layout for presenting and managing translations. The **Side-by-Side** mode is enabled by default, but you can easily switch as needed. + +You can switch between Editor modes using the following methods: + +* **Via View menu** – Go to **View** in the main menu and choose the preferred mode. +* **Via Editor View icon** – Click the **Editor View** icon in the upper-right corner and choose the preferred mode (this icon is available only if the **Horizontal Menu** is disabled in the [Editor Settings](#appearance)). + +### Side om side-tilstand + +Side-by-Side mode, detailed in the [Core Features](#core-features) section, is ideal for managing multiple translations at once. Translators can work on several strings simultaneously or swiftly review and vote on existing translations. Managers and proofreaders can efficiently approve the best options all within the same view. + +### Komfortabel tilstand + +Comfortable mode allows translators and proofreaders to focus on one string at a time, ensuring accuracy without distractions. It emphasizes the active string, making it easier to review context and related resources. This mode is ideal for handling complex translations or performing detailed proofreading, where precision and thoroughness are essential. + +The main working area with the source string at the top and the translation section below. To add a translation, you need to select a string from the left section, and it will appear in the middle-top *Source String* field. + +Comfortable Editor Mode + +### Flersproget tilstand + +The multilingual mode provides similar features as the side-by-side mode and allows multilingual translators and proofreaders to work with multiple languages at the same time. You can select up to ten languages to work with simultaneously. The right panel shows the string's translations of the language you're entering a translation for or the one that was selected last. + +Flersproget tilstand + +Once you switch to the multilingual mode, select the languages you'd like to work with, and click **Apply**. To add new languages or remove some of the earlier selected ones, go to **Language** in the main menu, then do the necessary modifications to the language list and click **Apply**. + +### Multilingual Mode (Grid) + +In addition to the multilingual mode, there is a separate Multilingual (Grid) mode. It provides a spreadsheet-like layout where each language is shown in a separate column, allowing you to work with multiple languages in a compact tabular format. + +To adjust the order and visibility of columns displayed in this mode, and to pin specific columns, click **Sort Columns** in the upper-right corner and select the preferred ones. You can also reset the layout to the default column set by selecting **Reset To Default** at the bottom of the list. + +Additionally, to pin or hide individual columns, click the drop-down arrow next to a column title and choose the needed option. + +You can also switch table density between **Compact View (Default)** and **Expanded View** modes using the button in the upper-right corner. Compact View displays more rows by reducing vertical spacing. + +Multilingual Mode Grid View + +#### For Proofreaders + +The proofreading process works mainly the same way as in side-by-side mode, except when approving or removing approvals for all or a couple of strings at once, the system performs the action for all languages selected for the multilingual mode. + +#### Using Filter in Multilingual Mode + +When using filter options in multilingual mode, the system will show strings that meet the selected criteria for at least one of the selected languages. + +This behavior applies to the following filter options: + +* Uoversat +* Ikke godkendt +* Godkendt +* QA-problematikker +* Maskinoversættelser +* Advanced Filter > Translations updated +* Advanced Filter > Translations > Partially translated (plurals) +* Advanced Filter > Translations > Same as source string +* Advanced Filter > Votes + +## Oversættelse af RTL-sprog + +When translating between LTR and RTL languages, some elements in the translation field in the Editor might not be displayed the same way as they will be once exported. + +To be sure that RTL translations will be displayed correctly in the exported file, we recommend making translations the following way: + + + 1. Click under the source text (or Alt+C key combination). + 2. Oversæt kildeteksterne til målsproget. + 3. Leave variables, tags, etc., unchanged in the translation, even if they look wrong. They will be in the right positions in the exported file. + + +Save suggestion for RTL language + + + +## Kommandopalet + +Kommandopaletten i Editor er knudepunktet for effektiv adgang til forskellige kommandoer. Den tjener som en central placering for alle tilgængelige kommandoer, der sikrer en problemfri og intuitiv oplevelse. + +To open the Command Palette, click in the upper-right corner or select **Help > Open Command Palette** in the main menu. Alternatively, press Ctrl+K or +K. + +Kommandopalet + +## Managing Unsaved Translations + +When you enter translations but haven't saved them, a green indicator appears next to the **Unsaved Translations** icon. Hovering over or clicking displays a tooltip with the number of unsaved translations. + +This feature offers the following options: + +* Check the number of unsaved translations. +* Save all unsaved translations with a single click. +* View and manage all strings with unsaved translations. + +To view unsaved translations, click in the upper-right corner and select **View Strings**. Alternatively, click and select **Unsaved translations**. + +Once filtered, you can continue editing unsaved translations. If they are ready to be saved, click **Save All** to apply the changes. + +## Editor-indstillinger + +To open the Editor settings, click in the upper-right corner. + +The Editor settings are grouped into tabs that contain various options for configuring the Editor according to your preferences. + +### Generelt + +* *Translation Memory Suggestions* – you can specify the minimum similarity match (in percentages) for translation memory suggestions shown under the translation field. +* *QA issues* – if enabled, inline banners with warnings will appear each time you try to save a translation with some inaccuracy (punctuation/tags/spaces mismatch, missing variables, etc.) +* *Auto-complete* – if enabled, the pop-up with translation prediction and automatic translation completion will appear while you type the translation. +* *Auto-approve* – if enabled, the translations added by proofreaders or members with higher permissions are automatically approved. +* *Automatically move to next string* – if enabled, you'll be automatically moved to the next string after saving a new translation or approving an existing one. +* *Auto-save translations* – if enabled, your translations are automatically saved when you navigate between strings. + +### Appearance + +* *Default Editor View* – set the default view mode that will be used each time you open the Editor. +* *Compact strings view* – if enabled, only the beginnings of the long strings will be shown in the string list. +* *Translation Preview* – if enabled, a translation preview will be displayed for translated strings in the string list. +* *Horizontal Menu* – If enabled, the main menu is displayed horizontally at the top of the Editor. This layout is enabled by default. If disabled, the main menu collapses under the icon in the upper-left corner. +* *HTML Tags Displaying* – you can choose **Show** or **Hide** option that applies to all HTML tags. If you choose **Auto**, tags will be hidden in HTML, Haml, XML, Web XML, Markdown, and DOCX files but shown in other file formats. When tags are hidden, you can expect the following: + ``` + Sample + ``` + erstattes med + ``` + <0>Sample + ``` +* *Non-printable characters displaying* – if enabled, non-printable characters (e.g., space, tab character, line break, etc.) will be displayed in source texts and translations. +* *Translation field highlighting* – if enabled, words with potential QA issues will be underlined in the translation field. +* *Real-Time Spellcheck* – instantly view spelling issues as you type a translation. displayed next to the translation means that no spelling issues were found. Otherwise, you'll see a red label with the number of spelling issues detected. Click it for more details. Please note, the built-in spellcheck takes priority over browser extensions (e.g., Grammarly, LanguageTool). If you prefer using a third-party tool, disable this option and reload the page. +* *Customize Right Panel* – allows you to revert the right panel layout to its default state. Customization options, such as [pinning sections](#pinning-sections) or [reordering sections](#customizing-right-panel-section-order), are available directly in the right panel. Click **Reset to default** to undo these changes. +* *UI Language* – select your preferred language for the Crowdin UI. Det valgte sprog anvendes i Editor og andre dele af Crowdin. + + + +### Themes + +Set the **Light** or **Dark** theme, or select **Auto** to allow the Editor to set the theme based on your device system settings. In addition to the default themes, you can also install custom themes from the Crowdin Store or create your own custom theme. + + + + + + +## Helpful Tips + +This section covers additional tips and tools to help you work more efficiently in the Editor. + +### Tastaturgenveje + +Benyt tastaturgenveje til hurtigt at udføre handlinger i Editor. Check the list of keyboard shortcuts by clicking the *keyboard* icon in the upper-right corner or selecting **Help > Keyboard Shortcuts** in the main menu. Alternatively, press Ctrl+Shift+K or Shift++K. De fleste af genvejstasterne kan tilpasses jf. personlige præferencer. Klik på den ønskede tastekombination og ændr den via tastaturet. + +### Get Add-ons + +To browse and install apps that extend the Editor's functionality, go to **Help > Get Add-ons** in the main menu. This opens the [Crowdin Store](https://crowdin.com/store/apps/tags/editor) page filtered to apps that integrate directly with the Editor, the same selection accessible via the **Store** button at the bottom of the right panel. + +### Navigation and Quick Access + +The navigation path in the upper-left corner of the Editor displays your current context within the workspace, offering quick access to file statistics, task information, and project navigation. Its behavior depends on whether the **Horizontal Menu** is enabled in your [Editor Settings](#appearance). + +**When the Horizontal Menu is enabled (default):** + +The path serves as a visual indicator of your location (project name, target language, or file name) and provides quick-reference information on hover: + +* **File Statistics** – Hovering over the file name opens a popover displaying the translation and approval progress (word counts and percentages) for that specific file. +* **Task Details** – When you open a task in the Editor, the task title appears in the path alongside its corresponding task type icon. Hovering over the task title reveals a popover with additional details, including a direct clickable link to the task (opens in a new tab), the target language, and the task type. + +**When the Horizontal Menu is disabled:** + +You can click the individual items in the navigation path to open their respective dropdown menus: + +* **Project** – Click the current project name to access project-level options. +* **Language** – Click the current language to switch to another target language. +* **File** – Click the current file name to open the File menu. + +### Translation Progress Indicators + +Use translation and approval indicators to monitor the progress of the currently opened file or folder. These indicators display the proportion of content that is translated and approved, allowing you to quickly assess the current status. + +There are two types of indicators available in the Editor: + +* **Circular Progress Indicators** – Located in the upper-right corner of the toolbar, these show the percentage of translated and approved content for the file or folder you're working on. +* **Detailed Progress Breakdown** – Hover over the file name in the top navigation path to view a popover with information on the total word count, number of translated, pre-translated, and approved words, along with the percentage completion for each. (If the **Horizontal Menu** is disabled, this breakdown is located in the **Main menu > File**). + +Translation Progress Indicators + + + +### Context Menu Options for Selected Words + +When you select a word or phrase in the source string or translation, the icon will appear. Clicking the icon opens a context menu with several useful options: + +* **Search TM** – Look for Translation Memory (TM) suggestions for the selected word or phrase. +* **Search in Terminology and Wikipedia** – Find an explanation of the selected word or phrase in the project terminology or Wikipedia. +* **Create Term** – Add the selected word or phrase to the project glossary as a new term. +* **Transform** (only available for selected words in the translation) – Access a submenu with options to convert the selected text to lowercase or uppercase. +* **Copy** – Copy the selected word or phrase to clipboard. +* **Copy & Paste** – Copy the selected word or phrase and immediately paste it into the translation field. + + + +Search TM section + +### Switching Between Files and Folders + +The Editor features an integrated file browser in a collapsible left-side panel, allowing you to navigate and select files or folders without leaving your translation workspace. This provides a more fluid and efficient user experience. + +How you interact with the file browser depends on your current Editor mode: + +* **In Side-by-Side, Multilingual, and Multilingual (Grid) Modes** – You can show or hide the file browser panel by clicking the icon in the upper-right corner or by using the keyboard shortcut Ctrl+[. Alternatively, you can open the panel by selecting **File > Open** from the main menu or with the keyboard shortcut Ctrl+O or Cmd+O. +* **In Comfortable Mode** – The left panel can be switched between two views: **Files** and **Strings**. When you select an item in the **Files** view, the **Strings** view automatically updates to show the relevant content. + +The file browser panel in the Editor + +At the bottom of the file browser, you can see the path of the selected item (e.g., `/app/src/main/res/values/strings.xml`) and a summary of your selection (e.g., `Currently selected: strings.xml` or `Currently selected: 3 files`). Project members with manager permissions can also toggle the visibility of hidden files (if any) in the tree by clicking the **Hidden Files** icon in the file browser toolbar. + + + +To see all strings in the project, open the file browser and select **All Strings** at the top of the file list. + +To quickly find and reopen one of the files you recently worked on, go to **File > Recent Files** and select the needed file. + +### Source and Translated File Preview + +In addition to the [WYSIWYG file preview](#wysiwyg-file-preview), which shows files as they would appear when rendered, there are **Source File Preview** and **Translated File Preview** modes that allow users to view the raw content of both source and translated files directly within the Editor. These previews provide insight into the file's structure, layout, and formatting, helping users ensure accurate translations within the correct context. This is particularly helpful for identifying discrepancies or formatting issues without leaving the Editor. While the **Translated File Preview** is available to all users, the **Source File Preview** is restricted to members with Developer / Translation Requestor permissions or higher. + +To open a file in either of these previews, go to **File** in the main menu, and select the needed file preview mode. + +### Erstat i Foreslåede oversættelser + +You can easily find and replace suggested translations using the *Replace in Translations* feature. + +To replace previously added translations with the new ones, follow these steps: + + + 1. In the project *Dashboard* tab, select the necessary language. + 2. Click **Translate All** or choose a file for translation. + 3. Go to **Edit > Replace in Translations**. + 4. Angiv ordet, formuleringen eller sætningen, der skal erstattes, samt dens erstatningstekst. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. + 5. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. + 6. Click **Find** to preview the strings that will be replaced. Find and Replace results + 7. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than translations. You can choose between *Key*, *Context*, and *Source*. + 8. Select the translations you want to replace and click **Replace Selected** to finish. + + +While translators can perform replacements only in their own translations, project members with proofreader permissions (or higher) can modify all suggested translations. Authorship of translations is preserved. + +### Erstat i Kilder + +Project members with developer permissions (or higher) can find and replace source texts using the *Replace in Sources* feature. + +Følg disse trin for at erstatte kildetekster: + + + 1. In the project *Dashboard* tab, select the necessary language. + 2. Click **Translate All** or choose a file for translation. + 3. Go to **Edit > Replace in Sources**. + 4. Angiv ordet, formuleringen eller sætningen, der skal erstattes, samt dens erstatningstekst. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. + 5. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. + 6. Click **Find** to preview the strings that will be replaced. Find and Replace results + 7. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than strings. You can choose between *Key* and *Context*. + 8. Klik på rullemenuen nederst til venstre og vælg den foretrukne adfærd for oversættelserne af kildestrengene, som skal erstattes. You can choose between *Keep Translations*, *Remove Approvals*, or *Delete Translations*. + 9. Select the source strings you want to replace and click **Replace Selected** to finish. + + +### Pre-translation in the Editor + +The **Pre-translation** feature in the Editor allows you to apply translations to multiple strings directly within the Editor using AI, Translation Memory (TM), or Machine Translation (MT). This feature is available to project members with language coordinator permissions or higher. + +To apply pre-translation in the Editor, follow these steps: + + + 1. You can open the pre-translation dialog in the Editor in two ways: + * **Main menu** – go to **Edit** in the main menu and select **Pre-translate**. + * **String menu** (available in **Side-by-Side** and **Multilingual** modes) – click in the upper-right and select **Pre-translate**. + 2. In the **Pre-translate strings** dialog, configure the following pre-translation parameters: + * **Pre-translation via** – select your preferred pre-translation method. Options include: **AI**, **Translation memory**, or **Machine translation**. + * **AI prompt** (Specific to pre-translation via AI) – select the prompt that will guide the AI model’s behavior. + * **Translation Engine** (Specific to pre-translation via Machine translation) – select the machine translation engine to use. + * **Scope** – select which strings to apply pre-translation to: + * **Selected strings** (Specific to **Side-by-Side** and **Multilingual** modes) – applies only to strings manually selected in the Editor. + * **Filtered strings** – applies to all strings matching the current filter. + * **File** – applies to the currently opened file. + * **All files** – applies to all strings across all files in the project, regardless of the file currently open in the Editor. + * **Minimum match ratio** (Specific to pre-translation via Translation memory) – select either **100%** or **Perfect** as the minimum similarity required for TM matches. + + Read more about [TM Match Types](/translation-memory/#tm-match-calculation). + + 3. Expand the **Advanced settings** section to finetune the pre-translation process with the following options: + * **Translate from** – select the language to use as the source for pre-translation. By default, it's preselected to the project’s source language, but you can choose any other project language. This provides greater flexibility and may improve translation quality by allowing you to use a more suitable existing translation (e.g., an adapted English version instead of the original Japanese) or translate directly between related languages (e.g., Spanish to Portuguese). + + * **Skip approved translations** (Specific to pre-translation via Translation memory) – prevents overwriting strings that already have approved translations. + * **Apply for untranslated strings only** – when selected, pre-translation will only be applied to strings that don’t have any translations. + * **Allow duplicate translations** – adds translations even if they duplicate existing ones. Useful when comparing AI prompts or MT engines in the [Pre-translation Accuracy](/project-reports/#pre-translation-accuracy) report, as it ensures that all translations are registered as new and included in accuracy calculations. + + * **Approve added translations** (Specific to pre-translation via Translation memory) – allows you to auto-approve translations added through pre-translation. Options include: + * **With perfect match** – approve only those with a 101% match. + * **With perfect match (approved previously)** – approve perfect matches only if they were already approved before. + * **All (skip auto-substituted translations)** – approve everything except translations improved by auto-substitution. + * **All** – approve all added translations. + 4. Click **Pre-translate**. + + +In Side-by-side and Comfortable modes, pre-translation is applied to the single language currently selected in the Editor. In Multilingual mode, translations are applied across all selected languages, as this mode allows working with multiple languages simultaneously. + + + Read more about [Multilingual mode](#multilingual-mode). + + +Use the **Queue** button in the bottom-left corner of the **Pre-translate strings** dialog to track and manage all triggered pre-translation instances. + + + Read more about [Pre-translation Queue](/pre-translation/#pre-translation-queue). + + +### Avanceret filter + +You can create a custom filter for strings by clicking the **Filter strings** icon and choosing **Advanced Filter**. This feature helps you locate specific strings faster by allowing you to combine multiple filter parameters and define a custom sort order. + +Avanceret filter + +#### Filter Parameters + +The filter dialog contains the following parameters, which you can combine to narrow down your search: + +* **Strings Added** – Filter strings that were imported into the project within a specific date range. +* **Strings Updated** – Filter source strings that were updated within a specific date range. +* **Translations Updated** – Filter strings where translations were added or updated (including new suggestions, approvals, or votes) within a specific date range. +* [**Verbal Expression**](#verbal-expressions) – Filter strings using complex structural patterns. +* [**Labels**](#filtering-by-labels) – Include or exclude strings based on their assigned labels. +* **Translations** – Filter by translation status. Options include *Untranslated*, *Partially Translated (Plurals)*, *Translated*, *Same as Source String*, and *Modified Source Strings*. +* **Duplicates** – Filter strings based on their duplicate status. Options include *Master Strings*, *Duplicates Only*, *Duplicates with Shared Translations*, and *Duplicates with Own Translations*. +* **Approvals** – Filter strings by their approval status. Options include *Translated, Not Approved*, *Partially Approved (Plurals)*, *Approved*, and *Have Translations After Approval*. +* **TM, MT and AI** – Filter strings based on their translation origin. Options include *Translated by MT*, *Translated by TM*, *Translated by AI*, or *Translated by TM or MT or AI*. +* **Pre-translation** – Filter strings based on whether pre-translation was applied. Options include *Used* or *Not Used*. +* **Comments** – Filter strings by comments or issues. Options include *Do Not Have Comments*, *Have Comments*, *Unresolved Issues*, *General Question Issues*, *Current Translation Is Wrong Issues*, *Lack of Contextual Information Issues*, or *Mistake in Source String Issues*. +* **Screenshots** – Filter strings that are *With Screenshots* or *Without Screenshots*. +* **Visibility** – Filter strings by their visibility to translators: *Visible* or *Hidden*. +* **QA Issues** – Filter strings based on quality assurance issues. Options include *Without QA Checks*, *QA check in progress*, *All* issues, or specific errors like *Tags mismatch*, *Spelling mistakes*, and *Punctuation mismatch*. +* **String Type** – Filter by string format. Options include *Simple String*, *Plurals*, or *ICU*. +* **Votes** – Filter strings by the net number of votes. Options are *Greater Than* or *Less Than* a specified number. +* **Translated By** – Filter for strings *Translated By* or *Not Translated By* a specific project member. +* **Approved By** – Filter for strings *Approved By* or *Not Approved By* a specific project member. + +#### Verbale udtryk + +The Advanced Filter also supports Verbal Expressions, which allow you to find strings that match specific structural patterns, such as the placement of variables, formatting, or punctuation, rather than matching exact text. + +* **Verbal Expression** – Enter the pattern you want to search for. +* **Scope** – Define where to search for the pattern. Options include *Strings*, *Context*, *Translations*, *Identifier (Key)*, or *Everything*. + + + + + +#### Filtering by Labels + +For a quick way to filter by a single label, you can click on any label tag displayed in a string's context area. Hovering over a label will display a tooltip that reads `Filter by label: {label-name}`. Clicking the label instantly applies the **Advanced Filter** with that specific label selected and the **Labels: Include Any** rule. All other filter parameters are cleared. If you then click a different label, it will replace the previous one in the filter. + +For more complex queries involving multiple labels, you can set rules to include or exclude strings: + +* **Labels: Include All / Labels: Include Any** – use this drop-down menu to choose the logic for including labels. Then, add the desired labels in the corresponding field. + * **Include All**: includes only strings that have **all** of the selected labels (AND logic). + * **Include Any**: includes strings that have **at least one** of the selected labels (OR logic). +* **Labels: Exclude All / Labels: Exclude Any** – use this drop-down menu to choose the logic for excluding labels. Then, add the desired labels in the corresponding field. + * **Exclude All**: excludes only strings that have **all** of the selected labels (AND logic). + * **Exclude Any**: excludes strings that have **at least one** of the selected labels (OR logic). + +This allows you to narrow or expand the filtered results depending on your needs. + +Here are a couple of examples of how this logic works in practice: + +* Include example – to find strings tagged with both `ui` and `button`, select **Labels: Include All** and add those two labels. +* Exclude example – to exclude all strings tagged either `marketing` or `deprecated`, select **Labels: Exclude Any** and add those two labels. + +#### Sorting Options + +* **Sort By** – Organize the filtered strings based on a selected criterion. The available options are: + * *Original Sort Order* + * *Strings Added* + * *Translations Updated* + * *Last Comment Added* + * *Alphabet (Source Text)* + * *Alphabet (Identifier)* + * *Length* + * *Votes* +* You can also set the sort order to **Ascending** or **Descending**. + +### AI/CroQL Filter + +The AI/CroQL Filter allows you to filter strings similarly to the Advanced Filter but offers greater flexibility through the Crowdin Query Language (CroQL). + +#### Generate CroQL with AI + +In the **Generate CroQL with AI** field, you can write queries in plain text, which will then be transformed into a CroQL expression using AI. To get the best results possible, make sure your queries are clearly structured. For example, you can enter: *Return strings where there are translations by the user "username" into Ukrainian*. Once you specify your query, press Enter, and the AI will generate and populate the **CroQL expression** field with the corresponding CroQL expression. Alternatively, you can directly input a pre-prepared CroQL expression in the **CroQL expression** field. + +Click **Filter** to apply the specified filter to the strings in the Editor or click **Reset Filter** to clear the current filter settings. + + + Read more about [Crowdin Query Language (CroQL)](/developer/croql/). + + +### Pinning Sections + +In Side-by-Side or Multilingual modes, you can pin specific sections to keep them visible while navigating through other parts of the interface. This helps you access the pinned content quickly without losing sight of essential information. + +### Customizing Right Panel Section Order + +To personalize your workspace in the Editor, you can reorder the sections in the right panel (e.g., Context & Translations, Comments, etc.) by dragging their icons. + +Click and hold the icon of the section you'd like to move, then drag it to a new position. The updated order will remain applied as you continue working in the Editor. + +## Opgaver i Editor + +Once a translator or proofreader has a task assigned, all the task details are accessible from the Editor. + +The name of the task is displayed in the navigation path in the upper-left corner. Hovering over the task name reveals a popover with additional details, including the task ID, a direct link to the task, due date, the target language, the task type, and the assignee. + +Task name + +Filters and searches apply to a particular task only. + + + +When working on a task, the standard **File** menu is replaced by the **Task** menu. You can access it by clicking **Task** in the main menu. It contains the following options: + +* File and string navigation options (**Open**, **All Strings**, **File Previews**) +* Options to **Export** and **Upload** translations for the particular task +* **Project Strings** – select this option to quit the particular task editor and show all project strings. diff --git a/src/content/docs/da/crowdin/online-editor/screens-translation.mdx b/src/content/docs/da/crowdin/online-editor/screens-translation.mdx new file mode 100644 index 00000000..20d4fabf --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/screens-translation.mdx @@ -0,0 +1,67 @@ +--- +title: Screens Translation +description: Learn how to translate text directly from screenshots in the Editor for maximum context +slug: screens-translation +sidebar: + order: 2 +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import { Icon } from 'astro-icon/components'; +import screenshotPreview from '!/crowdin/online-editor/screenshot-preview.png'; + +**Screens Translation** is a feature that changes your localization workflow from translating lists of text files to translating text directly from your app or website's screenshots. By providing maximum visual context, this approach helps you produce higher-quality translations and can reduce the need for extensive localization quality assurance (QA). + +This mode can be used with final screenshots or even with initial mockups and designs, allowing translation to begin before development is complete. + +This view is enabled by a project manager in the project's [**Settings > General > Project Language Page View**](/project-settings/#project-language-page-view) section. When enabled, the screenshots will be displayed on the project's language page instead of the traditional file list. + +## Screenshots Translation Workflow + +Once this feature is enabled for your project, your translation workflow shifts from navigating file lists to working directly with visual screens. You'll open a screen in the Editor, interact with highlighted tags overlaid on the image to load the corresponding strings, and translate them with full visual context. You can also use preview options to check string statuses or see your translations directly on the screen design. + +### Translating Screenshots in the Editor + +Here's a step-by-step guide on how to translate using screens: + + + 1. Open the project and go to the **Dashboard** tab. + 2. Select the target language. + 3. On the language page, you will see a list of the project's screenshots instead of usual source files. Click on the needed screenshot to open it in the Editor. + 4. You'll see the full screenshot in the preview panel with text elements on the screenshot highlighted with colored tags. + 5. Click on any highlighted tag on the image. The tag will turn yellow, and the Editor will automatically load the corresponding source string. + 6. Enter your translation in the text area and click **Save translation**. + 7. You can continue clicking other tags on the screenshot to translate them in order. Editor view with a screenshot preview + + +### Screenshot Preview Options + +When translating from a screenshot, the preview panel provides special display options to help you track your progress and visualize the final result. + +You can toggle the following views using the preview control icons located in upper-right corner of the preview panel: + +* **Highlight Statuses**: Click this icon to show the status of each string directly on the screenshot. The colored borders around the tagged text indicate the string's state: + * **Red**: Untranslated + * **Blue**: Translated + * **Green**: Approved + * **Yellow**: Currently selected for translation +* **Show Translation Preview**: Click this icon to replace the source text on the screenshot with your saved translations. This allows you to instantly preview how your translations will look in the final UI. +* **Scale Toggle**: Click this icon to toggle between a zoomed-in and zoomed-out view of the screen, helping you focus on specific areas or see the overall layout. + +## Screens Translation vs. In-Context + +While both features provide context, Screens Translation offers some unique advantages: + +* **No Setup Required**: Unlike the In-Context tool, you don't need to integrate your live application or learn how to navigate it. +* **Works with Mockups**: You can translate from static designs or mockups even before the application is built (e.g., using designs uploaded via the Crowdin plugins for [Figma](/figma-plugin/), [Sketch](/sketch-plugin/), or [Adobe XD](/adobe-xd-plugin/)), allowing localization to happen earlier in the development process. +* **Consistent Performance**: Translating screenshot by screenshot is often faster than navigating a live application, as you don't need to search for the specific page or state where a string appears. + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/online-editor/translation-consistency.mdx b/src/content/docs/da/crowdin/online-editor/translation-consistency.mdx new file mode 100644 index 00000000..c6fb3eb0 --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/translation-consistency.mdx @@ -0,0 +1,54 @@ +--- +title: Oversættelseskonsistens +description: Hints regarding how the source words were previously translated +slug: translation-consistency +--- + +import { Image } from 'astro:assets'; +import translationConsistency from '!/crowdin/online-editor/translation_consistency.png'; + +Oversættelseskonsistens er en funktion designet til at give oversættere informative tips om, hvordan kildeordene tidligere er blevet oversat. +Disse tips viser tidligere oversættelser for individuelle ord sammen med et tal, der angiver, hvor mange gange, hver oversættelse er blevet brugt i projektet. + +Som navnet angiver, er dens hovedopgave at forbedre oversættelsesensartetheden i projektet. Det betyder brug af højere kvalitet oversættelser i kundens apps, websteder mv. + +## Oversigt + +Oversættelseskonsistens håndteres af en eksperimentel maskinlæringsteknologi. Så snart man begynder at oversætte sit projekt, træder maskinlæringsalgoritmer i kraft, og systemet viser tidligere oversættelser af kildeordene, samt hvor ofte de er blevet brugt i projektet. The previous translation lists are formed based on the translations with the highest priority (approved, most voted, or last added ones) within the project. + +## Brug af oversættelseskonsistens i Redigeringsværktøjet + +Hold markøren over kildeordene med en stiplet understregning for at se de tidligere oversættelser dannet af oversættelseskonsistensfunktionen. You can also search previous translations for specific source words using the *Search TM* tab. + +Tidligere oversættelser i redigeringsværktøjet + +## Understøttede sprog + +Pt. er oversættelseskonsistens tilgængelig for flg. kilde- og målsprog: + +**Source languages** + +* Engelsk +* Engelsk, US +* Engelsk, UK + +**Target Languages** + +* Tjekkisk +* Dansk +* Hollandsk +* Finsk +* Fransk +* Tysk +* Italiensk +* Norsk +* Norsk bokmål +* Polsk +* Portugisisk +* Rumænsk +* Russisk +* Spansk +* Svensk +* Ukrainsk + +Nye sprog tilføjes regelmæssigt. diff --git a/src/content/docs/da/crowdin/online-editor/word-counter.mdx b/src/content/docs/da/crowdin/online-editor/word-counter.mdx new file mode 100644 index 00000000..a4dc3e78 --- /dev/null +++ b/src/content/docs/da/crowdin/online-editor/word-counter.mdx @@ -0,0 +1,13 @@ +--- +title: Crowdin-ordtæller +description: Learn how Crowdin counts words in your files +slug: word-counter +--- + +import Include from '~/components/Include.astro'; + + + +## Oversættelige HTML-attributter + + diff --git a/src/content/docs/da/crowdin/project-management/creating-project.mdx b/src/content/docs/da/crowdin/project-management/creating-project.mdx new file mode 100644 index 00000000..bf0e101e --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/creating-project.mdx @@ -0,0 +1,97 @@ +--- +title: Projektoprettelse +description: Learn how to create a project in Crowdin +slug: creating-project +--- + +import { Steps, Aside, CardGrid, Card, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import createProject from '!/crowdin/project-management/create_project.png'; +import projectVisibility from '!/crowdin/project-management/project_visibility.png'; + +To be able to upload your content for localization, you first need to create a project. + +## Projektsynlighed + +When creating a project, you can select the preferred *project visibility*: + + + + Visible to everyone. The project will appear in the global Crowdin search results and be indexed by search engines. + You can configure collaboration and access settings after the project is created. + + + Visible only to the invited project members. + + + +## Project Types + +Crowdin offers flexibility in how you organize and manage your localization process. There are two main project types: *File-based* and *String-based*. Choose the one that best fits how your content is structured and how you plan to manage translations. + +### File-based Project + +A file-based project is the standard localization setup in Crowdin, ideal for translating apps and documents. In this project type, you upload source files containing translatable content. Crowdin scans these files, identifies text for translation, and retains the original files within the project. After translation, you can export the files, preserving the original structure and format. + +This project type is ideal when maintaining the original file structure upon export is crucial, and when integrating with version control systems (e.g., GitHub, GitLab, Bitbucket, Azure Repos) and external data sources. + +Crowdin supports [a wide range of formats](/supported-formats/) used in software development and documentation, including Android XML, iOS Strings, JSON, XLIFF, Markdown, DOCX, and more. + +#### Brugsstudier + +* Translate app strings and documents stored in structured files. +* Maintain the original folder and file structure when exporting translations. +* Keep source files in sync with code repositories. +* Align localization with development and release workflows. +* Suitable for version-controlled content or structured documents. + +### String-based Project + +A string-based project in Crowdin is designed for managing dynamic content through a centralized string repository. Instead of storing source files, Crowdin extracts individual translatable strings and maintains them within the platform. This setup is ideal for content that changes frequently, such as UI text and other modular content blocks. + +With this approach, you can update source strings directly in Crowdin without needing to re-upload files. Translated strings can then be exported in various formats, including JSON, iOS Strings, or Android XML, facilitating reuse across multiple platforms like web, mobile, and desktop. + +#### Brugsstudier + +* Manage and translate app or website UI text in a centralized location. +* Let content writers update source strings online without developer involvement. +* Translate database content without needing to manage source files. +* Avoid duplicate translation effort for strings reused across platforms (e.g., Android, iOS, Web). +* Export translations in your preferred format, including JSON, iOS Strings, or Android XML. +* Ideal for teams working with dynamic content and frequent updates. + + + +## Projektoprettelse + +Følg disse trin for at oprette et projekt: + + + 1. [Log in](https://crowdin.com/login) to your Crowdin account or [Sign up](https://crowdin.com/join) to create one. + 2. Click **Create Project**. Create Project + 3. Enter a **Project name**. + 4. Customize your **Project address** if needed. This will be the public URL for your project. + 5. Select the **Project visibility**. You can choose between a **Public project** (visible to anyone) or a **Private project** (visible only to invited members). Further access controls can be configured in the [project settings](/project-settings/privacy-collaboration/) after creation. Project Visibility + 6. Select the **Source language** and **Target languages** for your project. The source language is the language you're translating from, and the target languages are the ones you're translating into. + 7. Choose the project type that best fits your content and localization workflow: [**File-based Project**](#file-based-project) or [**String-based Project**](#string-based-project). + + 8. *(Optional)* Select **Install Onboarding App** for a guided introduction to Crowdin's features. After project creation, the Onboarding App will launch automatically to help you with initial setup steps. + 9. *(Optional)* Under **Advanced settings**, you can select an existing **Translation Memory** and **Glossary** to be used as defaults for your new project. By default, a new empty TM and Glossary will be created for the project. You can change the [default TM](/project-settings/translation-memories/#changing-default-tm) and [default glossary](/project-settings/glossaries/#changing-default-glossary) in the project's **Settings**. + 10. Click **Create Project**. + + + + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/project-management/discussions.mdx b/src/content/docs/da/crowdin/project-management/discussions.mdx new file mode 100644 index 00000000..f83d662e --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/discussions.mdx @@ -0,0 +1,123 @@ +--- +title: Discussions +description: Learn how to create, manage, and participate in discussions in Crowdin projects +slug: discussions +--- + +import { Steps } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import createTopic from '!/crowdin/project-management/discussions_create_topic.png'; +import topicsView from '!/crowdin/project-management/discussions_topics_view.png'; +import managingTopic from '!/crowdin/project-management/discussions_managing_topic.png'; + +Use the **Discussions** tab to engage with project members, exchange ideas, and resolve issues. You can create topics, reply to messages, and manage discussions effectively. Each topic has its own subject, making it easy to navigate between multiple topics. + +## Creating New Topic + +To create a new topic, follow these steps: + + + 1. Open your project and go to the **Discussions** tab. + 2. Click **New Topic**. + 3. Name the topic. + 4. Select the target language related to this topic, or leave it unspecified if the topic applies to all target languages. + 5. *(Optional)* Add a description which will be displayed as the initial message in the topic. Simpel tekst eller Markdown kan benyttes. + 6. *(Optional)* Click **Preview** to see how your initial message will be displayed after sending. This is especially useful if you styled your message with Markdown. + 7. Click **Create Topic**. Create Topic + + +## Viewing and Filtering Topics + +Once you open the **Discussions** tab, you can view and filter project topics using the **Open** or **Closed** pages. + +* The **Open** page displays all ongoing topics. +* The **Closed** page displays completed or archived topics. + +Each topic is displayed with the following details: + +* Subject +* Profile picture, full name, and username of the author +* Date created +* Number of replies +* Last reply time + +Topics view + +To filter the displayed topics, click and use the available options: + +* Sprog: Alle, bestemt sprog. +* Author: All, particular author. + +To search for a particular topic by its title, type your search phrase in the **Search in topics** field. + +To sort topics, click **Sort by** and select one of the available options: + +* Newest +* Oldest +* Most commented +* Least commented + +## Managing Topics + +Once you open a topic, you can perform the following actions as a topic author or a project member with manager permissions: + +* **Mute/Unmute** - click **Mute** in the upper-right corner to mute the topic. Click the same button to unmute when needed. +* **Edit subject** - click in the upper-right corner > select **Change subject**. +* **Close topic** - click in the upper-right corner > select **Close**. Closed topics move to the **Closed** page, and a label appears at the bottom of all replies, indicating who closed the topic and when. You can reopen it by clicking **Reopen** from the same menu. +* **Delete topic** - click in the upper-right corner > select **Delete**. + +Managing the Topic + +## Participating and Replying in Discussions + +Once you open a topic, you can see the following details: + +* **Title** – the subject of the discussion. +* **Opened Date** – the date when the topic was created. +* **Topic Language** – the language used in the discussion. +* **Number of Messages** – the total count of replies in the topic. + +The topic author in a discussion is labeled as **Author**. This label helps participants easily recognize who started the discussion, which can be useful for directing replies, following up on questions, or understanding the context of the original post. + +Below the initial message, you can view other users' replies. To contribute to the discussion, enter your reply in the text field. + +Use "@" followed by a username to direct your message to a specific person. Before sending your message, you can click **Preview** to see how it will be displayed after sending. This is especially useful if you styled your message with Markdown. + +To quote another user's reply in your message, click the three dots on the reply and select **Quote reply**. + +## Editing and Deleting Replies + +Topic participants can edit and delete their own replies as needed. Project members with manager permissions can edit and delete both their own replies as well as replies of other topic participants. + +To edit a reply in a topic, follow these steps: + + + 1. Click on the needed reply and select **Edit**. + 2. Make the necessary changes to the reply and click **Save** to save changes. + 3. *(Optional)* As with replying, you can preview your edited changes with the **Preview** before saving the changes. + + +To delete a reply in a topic, follow these steps: + + + 1. Click on the needed reply and select **Delete**. + 2. Confirm the deletion by clicking **Delete** in the appeared modal. + + +## Notifikationer + +You will automatically receive notifications about updates in discussions if you are the author of the topic or have added at least one reply. + +In addition to muting individual topics, you can manage global notification settings for discussions. + +To adjust these settings, go to **Account Settings > Notifications tab > Global notification settings** and modify the following option: + +* **Discussions**: Receive notifications for new topics created or mentions in discussions. + +You can enable or disable these notifications and select your preferred notification channel (email or in-app). + + + Read more about the [Notification Settings](/account-notifications/). + diff --git a/src/content/docs/da/crowdin/project-management/project-activity.mdx b/src/content/docs/da/crowdin/project-management/project-activity.mdx new file mode 100644 index 00000000..3ae40b62 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-activity.mdx @@ -0,0 +1,48 @@ +--- +title: Projektaktivitet +description: Track all the events that happen in the project +slug: project-activity +--- + +import { Image } from 'astro:assets'; +import { Icon } from 'astro-icon/components'; +import projectActivityFilterRecords from '!/crowdin/project-management/project_activity_filter_records.png'; +import projectActivityUndoRecords from '!/crowdin/project-management/project_activity_undo_records.png'; +import projectActivityViewDiff from '!/crowdin/project-management/project_activity_view_diff.png'; + +Fanebladet Aktivitet muliggør at spore alle projektets hovedbegivenheder. Af læsbarhedshensyn grupperes aktivitetsposterne efter dage, brugere og aktivitetstyper. + +## Filtrér aktivitetsposter + +By default, the project **Activity** tab displays activity records for all activity types, all project languages, all users, and all time (newest activities first). + +Aktivitetsposter kan filtreres efter flg. aktivitetstyper: + +* **All activity** – Show all activity records. +* **Build Project** – Show records about project builds. +* **Project Settings Updates** – Show records about project settings changes (e.g., updated target languages, updated export settings, etc.) +* **Source Strings Updates** – Show records about source files uploads, updates, and removals, updates to source texts and context, etc. +* **Translation Activity** – Show records about added and removed translations, votes, and approvals. +* **Comments and Issues** – Show records about added comments, created and resolved issues. +* **Tasks** – Show records about task creation, deletion, status changes (e.g., from To Do to Done), and other updates like changes to assignees or due dates. +* **Management users** – Show records about user management, such as adding, removing, or changing permissions for project members, as well as blocking or unblocking them. Click the expand arrow next to a record to see the details of the changes. + +Der kan også filtreres aktivitetsposter med ét bestemt sprog eller alle sprog, én bestemt bruger eller alle brugere samt en ønsket tidsperiode (I dag, I går, Seneste 7 dage, Seneste 30 dage, Alle tidsperioder og Tilpasset tidsinterval). + +Filtrér aktivitetsposter + +## Fortryd aktivitetsposter + +If some unwanted actions (e.g., wrong translations upload, mistaken source file deletion, or an accidental task status update, etc.) happen in the project, the project owner and managers can cancel them in the Activity tab by clicking UNDO next to the respective activity record. Korrekturlæsere og oversættere kan kun fortryde egne handlinger. + +Since activity records are grouped by types, you can either undo a whole group of activities or click **Details** and undo only some of them. + +Fortryd aktivitetsposter + +## Vis opdaterede fildifferencer + +For opdaterede projektfiler, ud over antallet af tilføjede, slettede og opdaterede strenge, kan der også ses de faktiske strenge tilføjet, slettet eller opdateret under kildefilopdatering samt ordmængde indeholdt i strengene. To view the detailed diff for the file update, click **Diff** next to the needed activity record. + +For grouped project file update records, click **Details** to see all updated files in the group and then click **Diff** next to the needed file. + +Vis fildifferencer diff --git a/src/content/docs/da/crowdin/project-management/project-settings/ai.mdx b/src/content/docs/da/crowdin/project-management/project-settings/ai.mdx new file mode 100644 index 00000000..751435ad --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/ai.mdx @@ -0,0 +1,60 @@ +--- +title: AI Settings +description: Configure and manage AI prompts in your project settings +slug: project-settings/ai +sidebar: + order: 9 + label: AI +--- + +import { Steps, LinkCard, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import aiAddingPrompt from '!/crowdin/project-management/settings/ai_adding_prompt.png'; + +In your project's **Settings > AI** section, you can configure and manage AI prompts and select default prompts for features like pre-translation, AI suggestions in the Editor, and AI-powered QA checks. + +By default, prompts are inherited from the AI settings of the project owner's account. If defaults in the project owner's AI settings are not configured to apply automatically to all projects, select prompts in the project settings to activate pre-translation, AI suggestions, and AI-powered QA checks. + +The AI prompts configured in the project settings will also be added to the list of AI prompts of the project owner's Crowdin account. + +AI Prompt Types: + +* Pre-translation & AI Suggestion +* QA Check +* Custom type + + + +Before the AI Prompts can be configured in the project settings, it's also necessary for the project owner to [configure the AI Providers](/crowdin-ai/#configuring-ai-providers). + +AI-prompter + +## Assigning Project-Specific Prompts + +The settings at the top of the page allow you to assign default prompts for key features within this project. Any prompt selected here will take precedence over the default settings inherited from your account. + +* **Pre-translation:** Select the default **Pre-translation & AI Suggestion** prompt that will be automatically selected when running AI pre-translation in this project. +* **Editor AI Suggestion:** Select the default **Pre-translation & AI Suggestion** prompt used for AI suggestions in the **Context & Translations** section in the Editor. +* **AI QA Check:** Select the default **QA Check** prompt used for AI-powered QA checks. + +For each option, you can either select an existing prompt from the dropdown menu or click to create a new one. + +## Managing Project Prompts + +Below the default prompt settings, the **Prompts** section lists all AI prompts available to the project. This interface functions identically to the main prompts list in your account settings. + +From here, you can perform several actions: + +* Click **Add Prompt** to create a new prompt (it will be added to your account-level list). +* Use the **Search** field and **Filters** to find specific prompts. +* Click on a prompt to **Use** (only for **Pre-translation & AI Suggestion** prompts), **Edit**, **Clone**, or **Delete** it. + + + + + Read more about [Crowdin AI](/crowdin-ai/). + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/customize-tabs.mdx b/src/content/docs/da/crowdin/project-management/project-settings/customize-tabs.mdx new file mode 100644 index 00000000..a2ccdf26 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/customize-tabs.mdx @@ -0,0 +1,50 @@ +--- +title: Project Tab Settings +description: Configure the visibility and order of project tabs +slug: project-settings/customize-tabs +sidebar: + order: 1 + label: Customize Tabs +--- + +import { Aside, Steps } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import { Icon } from 'astro-icon/components'; +import customizeTabs from '!/crowdin/project-management/settings/customize_tabs.png'; + +In the **Customize Tabs** section, you can manage the display of your project tabs, including their sorting order and visibility. This applies to both default project tabs and those from [Starred Apps and Starred Tools](/integrations/#starred-apps). This section only modifies how tabs appear in the project interface and does not disable or block the tabs themselves. + +The configured order and visibility of project tabs are displayed to all project members. + +Customize Tabs + + + +## Reordering Project Tabs + +To reorder the project tabs, follow these steps: + + + 1. Open your project and go to **Settings > Customize Tabs**. + 2. Hover over next to the tab you want to move, then click and drag it to the preferred position in the list. + + +## Toggling Tab Visibility + +To hide or show project tabs, follow these steps: + + + 1. Open your project and go to **Settings > Customize Tabs**. + 2. Clear the checkbox next to a tab's name to hide it, or select it to make it visible. + + + + +## Resetting Tab Settings + +To reset the project tab order and visibility to their default settings, open your project and go to **Settings > Customize Tabs**, scroll down to the bottom of the list and click **Reset to defaults**. diff --git a/src/content/docs/da/crowdin/project-management/project-settings/export.mdx b/src/content/docs/da/crowdin/project-management/project-settings/export.mdx new file mode 100644 index 00000000..3ad95c2e --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/export.mdx @@ -0,0 +1,49 @@ +--- +title: Export Settings +description: Configure the translations export behavior +slug: project-settings/export +sidebar: + order: 12 + label: Eksport +--- + +import { Aside } from '@astrojs/starlight/components'; +import Include from '~/components/Include.astro'; + +In the **Export** section of the Project Settings, you can configure the translations export behavior. There are several options available to customize the export settings according to your needs including advanced options for each specific language. + +## Translations Export Settings + +By default, when exporting translations, Crowdin fills untranslated strings with source text to avoid exporting empty files. You can change this behavior by using the options below. + +### Save context information in the files + +The context and max.length added in Crowdin will be visible in the downloaded files. This option only applies to CSV, Android XML, iOS strings, and RESX formats. + + + +### Skip untranslated strings + +Only translated strings will be included in the exported translation files. + +Denne indstilling fungerer på tre forskellige måder, afhængigt af filformatet. This option is not applied to text-formatted documents since missing texts can make downloaded files unreadable. Andre eksporteres med tomme værdier. For den tredje filkategori fjernes uoversatte strenge helt fra de eksporterede oversættelsesfiler. + + + +### Skip untranslated files + +Only 100% translated files will be included in the exported translation archive. + + + +### Export only approved translations + +Only texts that are both translated and approved will be included in the exported translation files. + +### Automatically fill in regional dialects + +Useful when the project is translated into the language dialects (e.g., Spanish, Argentina). On export, translations from Spanish will be automatically copied to untranslated strings in Spanish, Argentina. diff --git a/src/content/docs/da/crowdin/project-management/project-settings/file-processors.mdx b/src/content/docs/da/crowdin/project-management/project-settings/file-processors.mdx new file mode 100644 index 00000000..87362d05 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/file-processors.mdx @@ -0,0 +1,62 @@ +--- +title: File Processor Settings +description: Customize processing for supported file formats +slug: project-settings/file-processors +sidebar: + order: 15 + label: File Processors +--- + +import { Steps, LinkCard, CardGrid, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import fileProcessors from '!/crowdin/project-management/settings/file_processors.png'; + +File processors allow you to customize processing for supported file formats. It can be useful if you want to edit the file content before it's imported by Crowdin. + +The File Processors are implemented as Crowdin Apps. You can create your own File Processor or use the existing ones. + +File Processors + + + + + + +## Managing File Processors + +To manage File Processors, go to the **File Processors** section of your project settings. + +### Configuring the Processing Order + +The processing order of File Processors determines how modules of the same type are executed in your project. The order value sets the priority, starting with 0 (highest priority) and increasing incrementally. The sequence you set can significantly impact the outcome. + +For example, if you are translating a CSV file and have installed two apps with `file-post-export` modules: + +* The first module escapes HTML tags in strings, transforming `` into `\<\/h1\>`. +* The second module checks if all closing tags are present and adds them if they are missing. + +The processing order of these modules will lead to different results: + +* If the HTML tag escaping module runs first, followed by the tag verification module, the output might be: + * `

Hello World!` => `\Hello World!` => `\Hello World!

` +* If the order is reversed, with the tag verification module running first, the output will be: + * `

Hello World!` => `

Hello World!

` => `\Hello World!\<\/h1\>` + + + +In such cases, the system selects which module to execute first based on the installation date of file-processing apps, potentially disrupting the intended processing sequence. Therefore, it is recommended to adjust the identical order values to ensure that files are processed in the desired sequence. + +### Editing File Processor settings + +To Edit the File Processor settings, follow these steps: + + + 1. Open your project and go to the **Settings > File Processors** tab. + 2. Click toward the needed processor and select **Edit**. + 3. Make the necessary changes and click **Submit**. + + +The processor settings may vary depending on the processor you are using. diff --git a/src/content/docs/da/crowdin/project-management/project-settings/general.mdx b/src/content/docs/da/crowdin/project-management/project-settings/general.mdx new file mode 100644 index 00000000..9cad2d00 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/general.mdx @@ -0,0 +1,94 @@ +--- +title: Projektindstillinger +description: Configure project settings according to your needs +slug: project-settings +sidebar: + order: 0 + label: Generelt +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import naming from '!/crowdin/project-management/settings/general_naming.png'; +import logo from '!/crowdin/project-management/settings/general_logo.png'; +import badges from '!/crowdin/project-management/settings/general_badges.png'; + +You can configure project settings according to your needs in the **Settings** tab. + +In the **General** section, you can change the project name, add a public description, customize the appearance of your project, and share the localization progress by embedding badges. + +## Navn + +In the **Name** section, you can change the project name and add a public description. + +Navngivning + +## Project Language Page View :badge[Beta]{variant=note} {#project-language-page-view} + +This section allows you to choose how translators interact with the content on your project's language page. + +* **Show files only** – this option is useful if your project focuses on file-based translation without the need for visual context. It's an easy setup for projects where the text is self-explanatory or where screenshots aren't necessary. +* **Show files and tagged screenshots** – displaying both files and tagged screenshots allows translators to reference visual context alongside the text. This option is useful for projects where the meaning of the text can be influenced by its visual environment, improving translation accuracy. +* **Show screenshots only** – select this option if every string in your project is associated with a screenshot. By providing visual context for all text, you can significantly improve the quality of translations. This method is considered best practice, especially for projects with complex interfaces or where visual elements are crucial for understanding. However, it requires effort to maintain the accuracy and relevance of the screenshots. + + + +## Produktmærkning + +In the **Branding** section, you can customize the appearance of your project by setting up a custom domain and project logo. + +### Tilpasset domæne + +The custom domain feature allows you to host your Crowdin project on your own domain that supports the HTTPS protocol. + +To set up a custom domain, follow these steps: + + + 1. Opret domænet via en domænenavnsregistrator. + 2. Create a CNAME DNS record for this domain name pointing to `cname.crowdin.com` in your hosting service. + 3. Open your Crowdin project and go to **Settings > General > Branding**. + 4. Enter the created domain name into the **Custom Domain** field and click **Update**. + + + + +For security reasons, new users will be redirected to Crowdin to login and stay at the default address, but when a logged-in users enter your domain, they will be able to access the project from your own domain. + +### Projektlogo + +The project logo allows you to customize the appearance of your project's main page. + +Logo + + + +## Badges + +With badges, you can share the localization progress of your Crowdin project by embedding them into your website or README. + +To embed badges, follow these steps: + + + 1. Open your Crowdin project and go to **Settings > General > Badges**. + 2. Enable **Display badges**. + 3. Copy the badge code using Markdown, HTML, or Image URL. + 4. Paste the badge code on your website or README. + + +Badges + + + +## Slet projekt + +This option is accessible exclusively to the project owner. You can delete your Crowdin project with all the translations and related localization resources if necessary. + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/glossaries.mdx b/src/content/docs/da/crowdin/project-management/project-settings/glossaries.mdx new file mode 100644 index 00000000..3fc7cdf0 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/glossaries.mdx @@ -0,0 +1,34 @@ +--- +title: Glossary Settings +description: Configure and manage glossaries for your project +slug: project-settings/glossaries +sidebar: + order: 6 + label: Ordlister +--- + +import { Image } from 'astro:assets'; +import { Icon } from 'astro-icon/components'; +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import assigning from '!/crowdin/project-management/settings/glossary_assigning.png'; + +Med en ordliste kan der oprettes, gemmes og håndteres hele projektterminologien på ét sted. Hovedsigtet med terminologi er at forklare visse specifikke termer eller dem, som ofte benyttes i projektet, så de kan oversættes korrekt og ensartet. + + + Read more about [Glossary](/glossary/). + + +## Ordlistetildeling + +To assign a glossary to your project, in the **Glossaries** section, select the needed glossaries from the list. + +Ordlistetildeling + +## Skift af Standardordliste + +To change your project's default glossary, in the **Glossaries** section, click the icon next to the needed glossary in the list. + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/import.mdx b/src/content/docs/da/crowdin/project-management/project-settings/import.mdx new file mode 100644 index 00000000..7b81137c --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/import.mdx @@ -0,0 +1,119 @@ +--- +title: Import Settings +description: Configure how placeholders, duplicates, and word counts are handled +slug: project-settings/import +sidebar: + order: 11 + label: Import +--- + +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +In the **Import** section of the Project Settings, you can configure how Crowdin should handle placeholders, duplicate strings, and word counts in your project. + +## Kildestrenge + +Improve the translation consistency and streamline your workflow by unifying placeholders and handling duplicate strings. + +### Parameterunificering + +Enable this option to transform placeholders into a unified format within the Editor (e.g., displaying both Android `%s` and iOS `%@` as `[%s]`). This improves Translation Memory efficiency by making suggestions completely interchangeable across platforms. + +On export, placeholders are converted back to the original syntax. This feature applies only to Android XML, iOS strings, iOS XLIFF, and Apple Strings Catalog. + +### Dubletstrenge + +You can save time by translating all duplicates with the same translation and hiding these instances from translators. This can affect accuracy. + +Crowdin's localization process is based on translating source strings to the defined target languages. Kildestrenge uploades til systemet i lokaliseringsfiler. Each unique source string first uploaded or added (for CSV and other formats supporting [string editing](/string-management/#string-editing)) in Crowdin is considered a master string. Alle andre strenge identiske med hovedstrengen, men uploadet/oprettet senere, betragtes som dubletstrenge. + + + +#### Dubletstrenghåndtering + +If your project contains duplicated strings, you can choose how the system should treat them using the following options: + +* **Show** – translators will translate each instance (string) separately. Dubletstrenge skjules ikke. +* **Show, but auto-translate them** – duplicate strings will be automatically translated but remain visible to translators. Når hovedstrengen er oversat, deles dens oversættelse automatisk med alle dubletter. Oversættere kan dog gennemgå og selv genoversætte hver dublet, om nødvendigt. Foretages en unik oversættelse af én bestemt dublet, tilsidesættes den spejlede oversættelse for denne streng alene, hvilket muliggør præcise kontekstspecifik oversættelse uden at påvirke øvrige dubletter. Fjernes en dublets unikke oversættelse, får den automatisk spejlet master-strengsoversættelsen. +* **Show within a version branch (regular detection)** – duplicates will be hidden only between [version branches](/version-management/). +* **Show within a version branch (strict detection)** – duplicates will be hidden only between version branches. +* **Hide (regular detection)** – all duplicates will share the same translation. +* **Hide (strict detection)** – all duplicates will share the same translation. + +Regular duplicate detection – when comparing strings, Crowdin considers only source texts. + +Strict duplicate detection – when comparing strings, Crowdin considers both string identifiers (keys) and source texts. + + + +#### Vis alle dubletter + +Ved valg af denne indstilling, vil alle dubletstrenge være synlige for oversættere. Hver dublet kræver separat oversættelse. + +💡 **Use case**: works perfectly for projects where the same words might have various meanings depending on the context. + +#### Vis, men auto-oversæt dubletter + +Ved valg af denne indstilling vises og auto-oversættes alle dubletstrenge. Når master-strengen er oversat, gør alle dubletterne automatiske brug af oversættelsen. Dette lader oversættere tjekke og genoversætte dubletstrenge, hvis nødvendigt. + +💡 **Use case**: works excellently if you want to save time but still require automatic translations to be reviewed. + +To better illustrate how the **Show, but auto-translate them** option works, consider the following five-string JSON file: two strings are unique, and three strings have identical source text. + +```json +{ + "hello": "Hej", + "welcome": "Velkommen!", + "save1": "Gem", + "save2": "Gem", + "save3": "Gem" +} +``` + +Upon importing this file, the system marks the first of these identical strings (`"save1": "Save"`) as the master string with the "Master" marking, while the subsequent two identical strings (`"save2": "Save"` and `"save3": "Save"`) are labeled as duplicates of this master string with the "Duplicate" marking. + +Once you set the Duplicate strings option to **Show, but auto-translate them**, the system keeps all five strings visible to translators and for the master string and its two duplicates, automatic translation propagation is enabled. Det betyder, at master-strengoversættelser automatisk spejles til eksisterende dubletter. + +Overvej flg. scenarier: + +* *Master string is translated first* – the system immediately propagates the translation of the master string to its duplicates. Som et resultat vises samme oversættelse for alle tre identiske strenge (master-strengen og dens to dubletter). Oversættere kan dog gennemgå og efter behov genoversætte hver dublet. Foretages en unik oversættelse af én bestemt dublet, tilsidesættes den spejlede oversættelse for denne streng alene, hvilket muliggør præcise kontekstspecifik oversættelse uden at påvirke øvrige dubletter. Fjernes en dublets unikke oversættelse, får den automatisk spejlet master-strengsoversættelsen. + +* *One of the duplicates is translated first* – the system does not propagate the translation of the duplicate to the master string or the other duplicate. Derfor vises én dubletstreng med en oversættelse, mens master-strengen og eksisterende dubletter forbliver uoversatte. + +#### Vis i en versionsgren. Dubletter skjules kun mellem versionsgrene + +Når denne indstilling er valgt, vil kun master-strengene, som oprindeligt blev uploadet til systemet, være tilgængelige for oversættelse. Alle dubletstrenge får automatisk de oprindelige strenges oversættelser og skjules i alle versionsgrene. Denne indstilling er tilgængelig i to versioner: Regulær dubletdetektion og Striks dubletdetektion. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + +Et par af ting at huske på: + +* Systemet tjekker altid stien til strengen i grenenes fulde udstrækning. For example, even if the strings are the same in different version branches (`branch1` and `branch2`), but their paths are different (branch1 - `/localization/android.xml` and branch2 - `/localization/apps/android.xml`), they won’t be recognized as duplicates. +* Denne indstilling fungerer kun for strenge placeret i filer med samme format. For example, if there is the same string in `android.xml` and `ios.strings` files, it won’t be recognized as a duplicate. + +💡 **Use case**: works perfectly for continuous projects with various version branches. Lader oversættere arbejde med unikke strenge i separate grene. + +#### Skjul alle dubletter + +Når denne indstilling er valgt, spotter systemet dubletstrenge i alle filer. Kun de oprindeligt uploadede master-strenge er synlige og skal oversættes. Master-strengoversættelser spejles automatisk til de korresponderende skjulte dubletstrenge. Denne indstilling er tilgængelig i to versioner: Regulær dubletdetektion og Striks dubletdetektion. If your source files contain strings with apparent identifiers (keys), it's better to use a *strict* version of this option. In other cases, feel free to use a *regular* one. + +💡 **Use case**: works great for projects with narrow scopes where all duplicates share the same context. + +## Ordtælling + +You can set the preferred way Crowdin should count words in your project. Konkret gælder det, hvorvidt HTML-tags skal tælles som almindelige ord eller ej. By default, Crowdin considers HTML tags as regular words for most of the supported formats, excluding the following ones: HTML, Front Matter HTML, HAML, MD, Front Matter MD, XML, WEBXML, IDML, XLIFF, XLIFF 2.0, ADOC, DOCX, DITA. + +* **Auto (default)** – HTML tags will be counted as regular words or skipped depending on the source file format. +* **Count tags** – all HTML tags will be counted as regular words. +* **Skip tags** – all HTML tags won't be counted. + + + + + More information about Crowdin [Word Counter](/word-counter/). + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/labels.mdx b/src/content/docs/da/crowdin/project-management/project-settings/labels.mdx new file mode 100644 index 00000000..42256357 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/labels.mdx @@ -0,0 +1,40 @@ +--- +title: Label Settings +description: Use labels in your project to easily organize your resources +slug: project-settings/labels +sidebar: + order: 13 + label: Etiketter +--- + +import { Image } from 'astro:assets'; +import { Steps, CardGrid, LinkCard, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import projectLabels from '!/crowdin/project-management/settings/project_labels.png'; + +Use labels in your project to easily organize resources (e.g., screenshots, strings, etc.) by specific topics. Once you add labels, you can filter items by those labels. If you already use labels for your source strings, you can use the same labels for screenshots. + +## Projektetikethåndtering + +Følg disse trin for at oprette, redigere eller fjerne projektetiketter: + + + 1. Open your project **Settings** tab. + 2. Select the **Labels** section. + 3. In the appeared screen, add new labels and edit or remove existing ones. + + +Manage project labels + +To edit or remove a label, click on the label you want to edit or remove and select the appropriate action. Use the **Search** field above the label list to quickly find specific labels. + + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/languages.mdx b/src/content/docs/da/crowdin/project-management/project-settings/languages.mdx new file mode 100644 index 00000000..6a2cd9b2 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/languages.mdx @@ -0,0 +1,95 @@ +--- +title: Language Settings +description: Manage your project source and target languages +slug: project-settings/languages +sidebar: + order: 3 + label: Languages +--- + +import { Aside, Steps, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import targetLanguagesUpdating from '!/crowdin/project-management/settings/target_languages_updating.png'; +import targetLanguagesCopying from '!/crowdin/project-management/settings/target_languages_copying.png'; +import customLanguageAdding from '!/crowdin/project-management/settings/custom_language_adding.png'; +import customLanguageSaving from '!/crowdin/project-management/settings/custom_language_saving.png'; +import languageMapping from '!/crowdin/project-management/settings/language_mapping.png'; + +In the Languages section, you can manage your project source and target languages and configure language mapping to use custom language codes. + +## Kildesprog + +The source language is the language you're translating from. If you want to change the source language for your project, select a new language from the drop-down list and click **Update**. + +Her er et par punkter, som der bør være fokus på ved skift af projektkildesproget: + +* Bemærk, at der kan optræde flertalsformsuoverensstemmelser for importerede strenge afhængigt af det nye kildesprog. Visse flertalsformer kan f.eks. ikke vises i Redigeringsværktøjet, eller visse flertalsoversættelser anvendes måske i andre ifm. oversættelseseksport. Det anbefales at opdatere kildefilerne, hvis det nye kildesprog har andre flertalsformer end det oprindelige. +* Havde Editor en åben webbrowserfane under kildesprogopdateringen, kan det være nødvendigt at opfriske den for at effektuere ændringerne og fortsætte med oversættelsen på det nye kildesprog. + +## Målsprog + +The **Target Languages** section allows you to add or remove target languages in your project, copy the target languages list from one project to another, and add custom languages. + +Målsprog kan til enhver tid opdateres. Følg disse trin for at tilføje/fjerne projektmålsprog: + + + 1. Open your project and go to **Settings > Languages**. + 2. In the **Target Languages** section, you can make the following changes: + * Select the languages you want to add to the project in the left panel. + * Click on the languages you want to remove from the project in the right panel. + 3. Click **Save**. + + +Målsprog + + + +### Kopiering af målsprog + +If you translate multiple projects into the same target languages, you can copy the target languages list from one project to another in a few clicks: + + + 1. Open your project and go to **Settings > Languages**. + 2. In the **Target Languages** section, click **Pre-fill** and select **Copy From Project…**. + 3. Select the project you'd like to copy target languages from and click **Choose**. Copying Target Languages + 4. Click **Save**. + + +### Tilføjelse af Tilpassede sprog + +Ønskes et projekt oversat til sjældne eller mindre almindelige målsprog, som pt. ikke understøttes officielt, kan disse stadig tilføjes som tilpassede sprog. + +Følg disse trin for at tilføje et tilpasset målsprog: + + + 1. Open your project and go to **Settings > Languages**. + 2. In the **Target Languages** section, click **Custom Languages**. Adding Custom Language + 3. Click **Add**. + 4. Specify a language name. + 5. If your custom language is a dialect of any of the supported languages, select it from **The dialect of** drop-down menu. + 6. Fill in language code fields. + 7. Set the preferred text direction and plural forms options. + 8. Click **Save**. Saving Custom Language + + +### Tilføjelse af tilpassede sprogkoder + +Følg disse trin for at tilføje sprogassociering: + + + 1. Open your project and go to **Settings > Languages**. + 2. Scroll down to the **Add custom language codes** section. + 3. Click **Language Mapping**. + 4. Vælg relevante sprog og variabel. + 5. Tilføj tilpasset kode. + 6. Der kan associeres så mange sprog, som ønsket. Click **Add Mapping** to add another custom code. + 7. Click **Save**. + + +Sprogtilknytning + +## Se også + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/machine-translation.mdx b/src/content/docs/da/crowdin/project-management/project-settings/machine-translation.mdx new file mode 100644 index 00000000..94e2a0bf --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/machine-translation.mdx @@ -0,0 +1,27 @@ +--- +title: Machine Translation Settings +description: Configure machine translation settings for your project +slug: project-settings/machine-translation +sidebar: + order: 7 + label: Machine Translation +--- + +import { LinkCard, CardGrid, Aside } from '@astrojs/starlight/components'; + +In the **Machine Translation** section, you can manage the following settings: + +* **Show machine translation suggestions** – enable MT suggestions from machine translation engines such as Microsoft Translator, Google Translate, and others to be displayed in the Editor. + + + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/parser-configuration.mdx b/src/content/docs/da/crowdin/project-management/project-settings/parser-configuration.mdx new file mode 100644 index 00000000..27857fbb --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/parser-configuration.mdx @@ -0,0 +1,79 @@ +--- +title: Parser Configuration Settings +description: Configure import and export behavior for supported file formats +slug: project-settings/parser-configuration +sidebar: + order: 14 + label: Fortolkeropsætning +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import Include from '~/components/Include.astro'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import parsersConfiguration from '!/crowdin/project-management/settings/parser_configuration.png'; + +By default, Crowdin uses a predefined set of import and export parameters for each supported file format. + +The Parser configuration feature lets you change the default import and export behavior predefined for file formats supported by Crowdin. Fortolkeropsætning i et bestemt projekt anvendes kun på filer gemt i dette projekt. + +Fortolkeropsætningen kan angives for alle filer af et bestemt format eller enkeltfiler. Once you save the parser configuration for some file format, you can upload source files to your project, and Crowdin will apply your settings accordingly. + +Import- og eksportadfærd kan opsættes for flg. formater: Adobe FrameMaker, Adobe InDesign, AsciiDoc, DITA, Generic XML, HTML, Java Properties, MadCap Flare, Markdown, Media Wiki, Office-dokumenter, Simpel tekst. + +Fortolkeropsætning + + + +## Fortolkeropsætningsparametre + +Visse parametre er fælles for alle formater, andre er formatspecifikke. I tabellen nedenforr fremgår de tilgængelige fortolkerparametre og formater, de kan opsættes til. + + + +## Fortolkeropsætning for alle projektfiler i et specifikt format + +Følg disse trin for at indstille den foretrukne fortolkeropsætning for alle filer i et bestemt format: + + + 1. Open your project and go to **Settings > Parser configuration**. + 2. Choose the needed file format and click Edit. + 3. Indstil de foretrukne indstillinger. + 4. Click **Save**. + + +To add a new file format, click **Add Apps** and install the required format. + +## Fortolkeropsætning for en enkelt fil + +I visse tilfælde kan det være nødvendigt at indstille fortolkeropsætningen til et bestemt filformat for kun én enkelt fil, ikke alle filerne. Følg disse trin for at indstille fortolkeropsætningen for én enkelt fil: + + + 1. Open your project and go to **Sources > Files**. + 2. Dobbeltklik på en ønskede fil. + 3. In the appeared dialog, switch to the **Parser configuration** tab. + 4. Indstil de foretrukne indstillinger. + 5. Click **Save**. + + +Once you save the file parser configuration, Crowdin will reimport this file and apply your settings. + + + Read more about [file management](/file-management/) in Crowdin. + + +## Post-processing Files with Nested Content + +Sometimes, you might work with files that contain strings in a different format. A common example is a JSON file where some string values contain HTML content. The standard parser configuration isn't designed for these nested or cascading scenarios. + +To properly process such files, you need to implement a custom Crowdin App that uses the File Post-Import Processing Module. This method, sometimes referred to as cascade processing, allows your app to intercept imported strings and instruct Crowdin to re-process specific ones using a different parser. For instance, you can tell Crowdin to parse a string from a JSON file as HTML, ensuring that HTML tags are correctly handled and not exposed to translators as plain text. + +To handle files with nested content, you can install the Cascade Importer from the Crowdin Store or, for more custom scenarios, build your own. + + + + + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/pre-translate.mdx b/src/content/docs/da/crowdin/project-management/project-settings/pre-translate.mdx new file mode 100644 index 00000000..b044147b --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/pre-translate.mdx @@ -0,0 +1,56 @@ +--- +title: Pre-Translate Settings +description: Configure the automatic pre-translation of new content in project +slug: project-settings/pre-translate +sidebar: + order: 10 + label: Pre-Translate +--- + +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import preTranslate from '!/crowdin/project-management/settings/pre_translate.png'; + +In the **Pre-translate** section of the Project Settings, you can configure the automatic pre-translation of new content uploaded to the project. You can choose to use translation memory, machine translation engines, or AI-powered translations to pre-translate the content. + +Pre-translate + +When the **Pre-translate New Content Automatically** is enabled, Pre-translate will be triggered when new content is uploaded, when target languages are changed, and when file settings are changed. + +## TM Pre-translate + +You can enable and configure the automatic pre-translation via TM. When enabled, the system will automatically apply translations from your TM in the following cases: when there is newly uploaded content, when target languages change, or after file settings are modified. + +* **Match Ratio** – select TM Match type of TM suggestions that should be applied during automatic pre-translation: + * 100% Match + * Perfect Match +* **Approve Added Translations** – select whether to approve new translations. Further configure it with the following options: + * With perfect match – approves only Perfect match translations. + * With perfect match (approved previously) – approve Perfect match translations that were previously approved. + * All (skip auto-substituted suggestions) – approve all except auto-substituted translations. + * All – approve all new translations added during the pre-translation. + + + Read more about [Translation Memory](/translation-memory/). + + +## MT Pre-translate + +Enable and configure the automatic pre-translation via MT. When enabled, the system will automatically apply translations provided by the selected MT engine in the following cases: when there is newly uploaded content, when target languages change, or after file settings are modified. + +You can configure the automatic pre-translation via MT by selecting the preferred MT engine and specifying all or selected project languages. + + + Read more about [Machine Translation](/machine-translation/). + + +## AI Pre-translate + +Enable and configure automatic pre-translation via AI. When enabled, the system will automatically apply translations provided by the selected AI engine in the following cases: when new content is uploaded, when target languages change, or after file settings are modified. + +You can choose your preferred AI prompt and specify all or selected project languages. You can configure several different prompts for different languages. Click the plus button to configure a new prompt for AI Pre-translation. + + + Read more about [Crowdin AI](/crowdin-ai/). + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/privacy-collaboration.mdx b/src/content/docs/da/crowdin/project-management/project-settings/privacy-collaboration.mdx new file mode 100644 index 00000000..b3179dfd --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/privacy-collaboration.mdx @@ -0,0 +1,59 @@ +--- +title: Privacy & Collaboration Settings +description: Configure your project's privacy, access, and collaboration rules. +slug: project-settings/privacy-collaboration +sidebar: + order: 2 + label: Privacy & Collaboration +--- + +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +In the **Privacy & collaboration** section of the project **Settings** tab, you can configure your project's security and access rules, set glossary permissions, and manage team notifications. + +## Fortrolighed + +This section controls your project's visibility, member access, and general collaboration settings. + +* **Two-factor authentication** – Define which roles are required to have two-factor authentication (2FA) enabled to access the project. Users can enable 2FA in their **Account Settings > Account** tab. This role-based option provides the following configurations: + * **Turned off** – Two-factor authentication is not required (default). + * **All project members** – Requires all project members to enable 2FA. + * **Managers** – Requires only members with the Manager role to enable 2FA. + * **Developers / Translation Requestors** – Requires only members with the Developer / Translation Requestor role to enable 2FA. + You can select the **Managers** and **Developers / Translation Requestors** options individually or together. After selecting your preferred categories, click **Update** to save changes. +* **Project Visibility** – Set the preferred visibility for your project: + * **Public project** – Visible to everyone. The project will appear in the global Crowdin search results and be indexed by search engines. + * **Private project** – Visible only to the invited project members. +* **Moderated project joining** – When enabled, users can become translators for a specific language only after their join request is approved by a manager or language coordinator. + * For **Public projects**, this setting is optional. You can enable it to review and approve new members before they can start contributing. + * For **Private projects**, this setting is enabled by default and cannot be changed. All project members must be invited, and this setting ensures their access to specific languages is properly managed upon joining. +* **Task-based access control** – Restricts translators and proofreaders to read-only access in the Editor, allowing them to work only with strings included in their assigned translation or proofreading tasks. + + + Read more about [Task-based access control](/tasks/#task-based-access-control). + +* **Allow offline translation** – Allows translators to download source files to their machines and upload translations back into the project. Project owner and managers can always download sources and upload translations. +* **Allow proofreaders to access hidden strings** – Allows proofreaders to work with hidden strings. Project owner and managers can always access hidden strings. + +## Glossary Access Settings + +Control the level of access that project members have over glossary terms. Project owner and managers always have full control, regardless of these settings. + +* **Read only** – Members can view existing glossary terms but cannot make any changes. This option provides access for reference only. +* **Manage drafts** – Members can view, add, edit, and delete draft glossary terms, and can also view approved terms. This allows members to contribute to drafts without altering the official, approved terminology. +* **Full access** – Members can view, add, edit, and delete glossary terms and edit concept details. This provides members with full control over the project glossary. + +## Notifikationer + +Enable email notifications to keep project members informed about new content and progress, which helps you avoid creating a separate task for each update. + +* **Notify translators about new strings** – Translators will receive an email notification whenever new content for translation is added to the project. + +* **Notify project managers and developers about new strings** – Project managers will receive an email notification whenever new content for translation is added to the project. +* **Notify project managers and developers about language translation/proofreading completion** – Project managers will receive a notification when a target language is fully translated or proofread. diff --git a/src/content/docs/da/crowdin/project-management/project-settings/qa-checks.mdx b/src/content/docs/da/crowdin/project-management/project-settings/qa-checks.mdx new file mode 100644 index 00000000..8123b6d3 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/qa-checks.mdx @@ -0,0 +1,168 @@ +--- +title: QA Check Settings +description: Configure QA checks to ensure the quality of translations +slug: project-settings/qa-checks +sidebar: + order: 4 + label: QA-tjek +--- + +import { Steps, Aside, Badge } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import qaChecksInEditor from '!/crowdin/project-management/settings/qa_checks_in_editor.png'; +import qaChecksSettings from '!/crowdin/project-management/settings/qa_checks_settings.png'; +import qaSaveSettings from '!/crowdin/project-management/settings/qa_checks_save_settings.png'; +import qaChecksView from '!/crowdin/project-management/settings/qa_checks_view.png'; +import qaChecksDetails from '!/crowdin/project-management/settings/qa_checks_details.png'; +import qaChecksAddToIgnoreList from '!/crowdin/project-management/settings/qa_checks_add_to_ignore_list.png'; + +The main aim of quality assurance (QA) checks is to help you efficiently handle different language-specific aspects in translations and ensure they are formatted the same way as the source strings and will fit the UI just as well. Nogle typiske KS-tjeksparametre omfatter manglende kommaer, ekstra mellemrum eller skrivefejl. + +With QA checks, issues that should be fixed are highlighted in the Editor. QA-tjek vil nemt og hurtigt bidrage med at finde nogle de almindeligste fejl. Det anbefales at gennemgå og løse alle QA-tjekproblematikker, inden projektet bygges og oversættelser downloades. + +QA Checks in Editor + + + +In the **QA Checks** section, you can manage the types of QA issues to be highlighted in the Editor during the translation process. + +## Opsætning af QA-tjek + +Som standard er QA-tjek aktiveret. Følg disse trin for at aktivere QA-tjek i det relevante projekt: + + + 1. Open your project and go to **Settings > QA Checks**. + 2. Ensure that **Enable QA Checks** is selected. QA Check Settings + 3. Vælg QA-tjektyperne iht. ønskede præferencer. + 4. For each selected QA check type, choose whether it should be possible to save translations with QA issues by selecting one of two options: **Error** and **Warning**. + * **Warning** – translators are notified about QA issues with suggestions for fixes, but they can still save the translation using the **Save anyway** button. + * **Error** – translators are notified about QA issues with suggestions for fixes, and they cannot save the translation until all issues are resolved. + 5. Scroll down to the bottom of the QA Checks list and click **Save**. QA Checks Save Settings + + +Once enabled, QA checks will work in the background and scan the translations for potential QA issues. + +## Revalidate QA Checks + +Use the **Revalidate** button to re-run enabled QA checks for all project translations and update issue statuses. This is useful after modifying settings, AI prompts, or terminology. + + + +Once revalidation starts, the button is disabled and a **Cancel** button appears. When the process is complete, a confirmation notification is shown. + +## KS-tjekparametre + +**Empty translation** – strings that lack translation. + +**Length issues** – translated strings that are longer than the limit of characters you set. + + + +**Tags mismatch** – strings containing HTML tags might lack some opening or closing tags in translations. + +**Spaces mismatch** – multiple spaces in a row, missing spaces. + +**Variables mismatch** – placeholders that lack some parts of code or have the odd ones. + +**Punctuation mismatch** – punctuation mistakes or differences in the punctuation marks. + +**Character case mismatch** – lower or upper case used differently in source and translated strings. + +**Special characters mismatch** – new paragraphs, currency signs, and other special characters used differently in source and translated strings. + +**“Incorrect translation” issues** – created issues with the "current translation is wrong" tag. + +**Spelling mistakes** – words that aren’t present in the dictionaries Crowdin supports. + + + +**ICU syntax** – the correct usage of ICU message syntax in translations. + +**Consistent terminology** – checks whether the source words are translated accordingly to the respective glossary terms. + + + +**Duplicate translation** – translations that duplicate already existing translations. + +**FTL syntax** – the correct usage of the FTL syntax in translations. + +**Android syntax** – the correct usage of the Android syntax in translations. + +**Numbers mismatch** – checks for inconsistencies or missing numbers between the source and translations. + +**AI-powered check** – uses AI to detect translation issues, improving accuracy and ensuring translations meet project-specific quality standards. Requires configuring an AI prompt with defined evaluation criteria. + + + Read more about [Configuring AI-powered check](/crowdin-ai/#setting-up-ai-qa-check). + + +**Outdated translation** – flags translations that may need to be revised after their corresponding source strings have been modified. + +## Stavekontrol Ignorér-liste + +Indeholder projektet nogle ualmindelige ord, som ikke genkendes af stavekontrollen, kan disse føjes til Ignorér-listen, så de ikke bliver tjekket. + +This is useful for project-specific terminology, like brand names or proper nouns (e.g., `MyApp`), which you might expect not to be flagged as errors. Since the Spell checker and Glossary are separate features, adding terms to the Glossary does not automatically add them to the Spellcheck ignore list. Adding them here is the correct way to prevent them from being flagged. + +QA Checks Add to Ignore list + +Følg disse trin for at gennemgå de ord, som er føjet til stavekontrollens Ignorér-liste: + + + 1. Open your project and go to **Settings > QA Checks**. + 2. Click **Spellcheck Ignore list** at the bottom of the page. + + +In the opened window you can see the list of words added to the ignore list. You can filter or remove them from the list if necessary. + +## QA Issue Indicators + +When QA checks detect issues, visual indicators appear across the project interface to help you quickly spot and navigate to translation quality problems. + +### KS-statusmuligheder + +OFF – when it's not enabled. + + – while it’s working. + + – when no issues are found. + + – when issues are found. + +### Viewing Issue Details + +When the QA check status is , it appears in the **Details** panel on the right side of the project Dashboard. Click on it to reveal two action buttons: + +* **View Issues** – expands the language row on the Dashboard to show the number of suggestions with QA issues. +* **Settings** – takes you directly to **Settings > QA Checks**. + +QA Checks View + +In the expanded language row, click the **N suggestions with QA issues** link to open the Editor with the QA issues filter applied. + +QA Checks Details + +In the Editor, you can review strings with QA issues in the [Side-by-Side mode](/online-editor/#side-by-side-mode). You can approve the existing translations if they are correct, or make changes and then approve them. + +### Per-Language Indicators + +Languages with unresolved QA issues are marked with a indicator on the project Dashboard. This is an informational indicator that shows at a glance which languages contain unresolved QA issues. + +### Per-File Indicators + +You can also identify files with QA issues directly on the language page. Any file containing unresolved QA issues is marked with a indicator. This is an informational indicator that shows at a glance which files contain unresolved QA issues. Hover over the indicator to see the number of issues found in that file. diff --git a/src/content/docs/da/crowdin/project-management/project-settings/style-guides.mdx b/src/content/docs/da/crowdin/project-management/project-settings/style-guides.mdx new file mode 100644 index 00000000..4bfcc4e2 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/style-guides.mdx @@ -0,0 +1,30 @@ +--- +title: Style Guide Settings +description: Configure and manage style guides for your project +slug: project-settings/style-guides +sidebar: + order: 8 + label: Style Guides + badge: New +--- + +import { Image } from 'astro:assets'; +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import assigning from '!/crowdin/project-management/settings/style_guides_assigning.png'; + +With a style guide, you can create, store, and manage all your project's formatting and tone rules in one place. The main aim of a style guide is to ensure consistency in voice, style, and terminology usage across translations, helping translators understand exactly how your brand should sound in different languages. + + + Read more about [Style Guide](/style-guide/). + + +## Assigning Style Guides + +To assign a style guide to your project, in the **Style Guides** section, select the checkboxes next to the needed style guides from the list. + +Assigning Style Guides + + diff --git a/src/content/docs/da/crowdin/project-management/project-settings/translation-memories.mdx b/src/content/docs/da/crowdin/project-management/project-settings/translation-memories.mdx new file mode 100644 index 00000000..e2cdd723 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/project-settings/translation-memories.mdx @@ -0,0 +1,68 @@ +--- +title: Translation Memory Settings +description: Configure and assign Translation Memories for your project +slug: project-settings/translation-memories +sidebar: + order: 5 + label: Oversættelseshukommelser +--- + +import { Image } from 'astro:assets'; +import { Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import tmPenalties from '!/crowdin/project-management/settings/tm_penalties.png'; +import tmAssigning from '!/crowdin/project-management/settings/tm_assigning.png'; +import tmPrioritizing from '!/crowdin/project-management/settings/tm_prioritizing_tm.png'; + +Projekt TM'en oprettes automatisk for hvert projekt. By default, every approved or last added translation is saved to the project TM. This behavior can be customized to save only approved translations. + +* **Enable Auto-Substitution** – the feature substitutes the non-translatable elements (such as tags, HTML entities, placeholders, numbers, and more) in TM translation suggestions with the ones used in the source text. The feature improves the TM suggestions applied during pre-translation and those shown as translation suggestions in the Editor. Improved suggestions are included in the Translation Costs report, and improvable ones are included in the Costs Estimation report. +* **TM Suggestions for Dialects** – the feature allows you to display and use TM suggestions from the primary language for dialects if no dialect-specific suggestions are available. +* **Use global Translation Memory** – translators will have access to the Global Translation Memory, where all translations from the projects with this feature enabled are stored. + +* **Save only approved suggestion to Translation Memory** – when selected, translations are saved to the project default TM only after they are approved. This option is especially useful for public or crowdsourced projects where you want to ensure only reviewed translations are stored in the TM. +* **TM Match Context Type** – the feature allows you to choose what should be considered as string context when suggesting Perfect (101%) match Translation Memory (TM) suggestions. You can choose between the following options: + * Key and Context – when selected, the system considers both the key and context of strings for suggesting Perfect match TM suggestions. This mode is particularly useful for key-value file formats. + * Auto – when selected, the system automatically applies the most suitable context consideration mode based on your file format. + * Previous and next segment – when selected, the system considers the segments immediately preceding and following the current segment for context. Most applicable to HTML-based and other formats without a defined key-value structure. + + + Read more about [TM Auto-Substitution](/translation-memory/#tm-auto-substitution). + + +## Penalties + +In the **Penalties** section, you can configure penalties that decrease the match percentage of TM suggestions based on specific conditions. This feature helps when you want to fine-tune the relevance of TM suggestions to your specific requirements. + +Translation Memory Penalties + +You can configure the penalties using the following options: + +* **Auto-substitution Applied** – penalize TM suggestions to which an auto-substitution was applied. +* **Multiple Identical TM Matches** – penalize TM suggestions where multiple identical TM matches are found. +* **TM Priority Less Than** – penalize TM suggestions that originate from a TM with a priority lower than a specified value. Besides a penalty value, you can also set the preferred TM priority threshold. +* **TM Suggestion Last Modified More Than** – penalize TM suggestions that were last modified more than a specified number of months ago. Besides a penalty value, you can also set the threshold in months. +* **TM Suggestion Last Used More Than** – penalize TM suggestions that were last used more than a specified number of months ago. Besides a penalty value, you can also set the threshold in months. + +## Tildeling af TM + +To assign a TM to your project, in the **Assigned Translation Memories** section, select the needed TMs from the list. + +Tildeling af TM + +## TM-prioritering + +Når et par TM'er er tildelt et projekt, kan den ønskede prioritet for hver af disse opsættes. Følgelig vil forslag fra den højere prioriterede TM blive vist først. + +Standard TM-prioritetsværdien er 1. Et større tal betyder højere prioritet. Tildeles et projekt f.eks. fire TM'er, kan prioriteten angives som 4 til den vigtigste, hvis forslag skal vises først. Og hhv. angive lavere prioriteter for øvrige TM'er. + +To set the priority for TMs, in the **Assigned Translation Memories** section, set the preferred priority for assigned TMs from the respective drop-down list. + +TM-prioritering + +## Ændring af Standard TM + +To change your project's default TM, in the **Assigned Translation Memories** section, click the icon next to the needed TM in the list. diff --git a/src/content/docs/da/crowdin/project-management/screenshots.mdx b/src/content/docs/da/crowdin/project-management/screenshots.mdx new file mode 100644 index 00000000..d51ff1bd --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/screenshots.mdx @@ -0,0 +1,218 @@ +--- +title: Skærmfotos +description: Provide translators with additional context for the source strings +slug: screenshots +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import KBD from '~/components/KBD.astro'; +import screenshotsInEditor from '!/crowdin/project-management/screenshots_in_editor.png'; +import screenshotsListInProjectSettings from '!/crowdin/project-management/screenshots_list_in_project_settings.png'; +import screenshotsAutoTag from '!/crowdin/project-management/screenshots_auto_tag.png'; +import screenshotsTextRecognition from '!/crowdin/project-management/screenshots_text_recognition.gif'; +import screenshotsManualTagging from '!/crowdin/project-management/screenshots_manual_tagging.png'; +import addingLabelsToSingleScreenshot from '!/crowdin/project-management/adding_labels_to_single_screenshot.png'; +import addingLabelsToMultipleScreenshots from '!/crowdin/project-management/adding_labels_to_multiple_screenshots.png'; + +Skærmfotos er en fantastisk måde, hvormed oversættere kan gives yderligere kontekst til kildestrengene i projektet, og som et resultat, få mere relevante og konsekvente oversættelser. Med skærmfotos vil teamet kunne se, hvilke strenge, som bruges sammen på samme side, om korte tekster står for titler, knapper mv. + + + +Tag kildestrenge til skærmfotoene, så de vil fremgå i Editor i kontekstafsnittet under kildestrengen. + +Skærmfotos i Editor + +## Upload af skærmfotos + +Følg disse trin for at uploade skærmfotos til det relevante projekt: + + + 1. Open your project and go to the **Screenshots** tab. + 2. Drag images from your machine, or click **Upload**. + + + + +Screenshots List + +## Tag strenge + +Tag strenge på skærmfotos for at vise oversættere, hvor visse strenge er placeret i UI'en. I Crowdin kan strenge tagges via flg. metoder: + +* Auto-tagning +* Tekstgenkendelse +* Træk og slip + +### Tag strenge automatisk + +Tekster på et foto detekteres automatisk. Derefter vil de matchende strenge blive søgt i projektet iht. det valgte filter. De fundne strenge tagges så på skærmfotoet. + + + 1. Åbn skærmfotoet med et dobbeltklik. + 2. Click . + 3. Once the strings are tagged on the screenshot, click **Save**. Auto Tag + + +For at auto-tagge strenge på et enkelt skærmfoto uden at åbne det: + + + 1. Click on the needed screenshot. + 2. Select **Auto tag**. + + +Strenge kan også auto-tagges på flere skærmfotos på ad gangen: + + + 1. Select multiple screenshots by holding Ctrl or Shift. + 2. Click **Auto tag**. + + +Anvendes In-Context, kan dens integrerede funktion til at tage skærmfotos af webstedssider findes nyttig. + + + +### Tagge strenge vha. tekstgenkendelse + +Systemet gennemsøger alle projektstrenge efter en streng matchende den valgte tekst. Findes flere lignende strenge, vises de alle, så den bedst matchende kan vælges. + + + 1. Åbn skærmfotoet med et dobbeltklik. + 2. Fremhæv teksten på skærmfotoet. + 3. Once finished tagging all the strings, click **Save**. + + +Tekstgenkendelse + +If text highlighting is inactive, the **Text recognition** feature might be unavailable for your project's source language. + +### Manuel tagning af strenge + +Træk manuelt de listede strenge til teksterne på skærmfotoet. + + + 1. Åbn skærmfotoet med et dobbeltklik. + 2. Click **Strings** to open the string list panel. + 3. Sortér og filtrér de viste strenge. Alle eller bestemte filer kan vælges, og strenge kan gennemsøges efter tekst/kontekst. + 4. Træk den relevante streng fra listen i højre panel til den korresponderende tekst på skærmfotoet. Alternativt, klik på strengene for at tagge dem til skærmfotoet uden at angive nøjagtig visningsposition. + 5. *(Optional)* To view additional string details or edit them: + * Click the button above the string list to show more details (file name and string context). + * Hover over a string and click the to open the **Edit String** dialog. You can: + * Update the identifier. + * Update the source text. + * Add or update the context. + * Add or update the labels. + * Set the **Max. length of the translated text**. + * Click **Save** after making the changes. + 6. Click **Save** when you finish tagging. + + + + Read more about [String Editing](/string-management/#string-editing). + + +Manuel tagning + +Følg disse trin for at tagge alle strenge fra den valgte fil til skærmfotoet: + + + 1. Vælg den relevante fil. + 2. Click **Tag All** > **Save**. + + +### Træk og rul skærmfotos + +When tagging high-resolution screenshots, you can hold Ctrl to drag and scroll the screenshot with a mouse revealing the remaining part. + +Alternatively, click to drag and scroll the screenshot without holding Ctrl. + +### Fjernelse af taggde strenge fra skærmfoto + +If you need to remove all the strings tagged on the screenshot, click . + +## Etiketter + +Benyt etiketter i projektet for på en nem måde at organisere skærmfotos efter bestemte emner. Når etiketter er tilføjet skærmfotos, kan de filtreres efter disse etiketter. Benyttes allerede etiketter til kildestrengene, kan de samme etiketter også bruges til skærmfotos. + + + +### Tilføjelse af etiketter til skærmfotos + +Der er et par mulige måder at føje etiketter til skærmfotos på. + +##### Add labels to one screenshot at a time + + + 1. Åbn skærmfotoet med et dobbeltklik. + 2. Click . + 3. Select needed labels in the **Labels** field. + 4. Click **Save**. + + +Tilføjelse af etiketter til et enkelt skærmfoto + +##### Føje etiketter til flere skærmfotos + + + 1. Select multiple screenshots you want to add the same labels to holding Ctrl or Shift. + 2. Click **Labels**. + 3. Select needed labels in the **Labels to be added** field. + 4. Click **Save**. + + +Tilføjelse af etiketter til flere skærmfotos + +## Opdatere skærmfotos + +Et nyt skærmfoto kan uploades som erstatning for et aktuelt. De allerede taggede strenge, som er relevante, forbliver taggede. Har teksten på skærmfotoet skiftet position, forbliver strengene taggede, men på de nye positioner. + +Følg disse trin for at uploade skærmfotos: + + + 1. Åbn skærmfotoet med et dobbeltklik. + 2. Click and select a new screenshot from your machine or use Drag&Drop. + 3. Click **Save**. + + +## Omdøb skærmfotos + +Følg disse trin for at omdøbe skærmfotos: + + + 1. Click on the needed screenshot and select **Rename**. + 2. Angiv et nyt navn. + 3. Press Enter. + + +## Download skærmfotos + +Skærmfotos kan downloades og genbruges andetsteds (projekter mv.). + +Følg disse trin for at downloade skærmfotos: + + + 1. Select one or multiple screenshots holding Ctrl or Shift. + 2. Click **Download**. + + +Alternatively, click on the needed screenshot and select **Download**. + +## Slette skærmfoto + +Følg disse trin for at slette et skærmfoto: + + + 1. Select one or multiple screenshots holding Ctrl or Shift. + 2. Click **Delete screenshot**. + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/project-management/sources/asset-localization.mdx b/src/content/docs/da/crowdin/project-management/sources/asset-localization.mdx new file mode 100644 index 00000000..1b1caa2a --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/asset-localization.mdx @@ -0,0 +1,45 @@ +--- +title: Lokalisering af aktiver +description: Localize project content with all the graphics in one place +slug: asset-localization +--- + +import { Steps, Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +Lokalisér projektindhold med al grafik (billeder, logoer, ikke-tekstfiler) på ét sted. Uunderstøttede filformater i Crowdin (f.eks. .png, .pdf, .jpeg) uploades som aktiver. + + + +## Brugsstudier + +Der kan uploades aktiver, og alle lokaliseringsdata kan tilgængeliggøres for oversættere i Crowdin. Dette bidrager til at: + +* Opbevar alle oversættelsesdata under samme tag +* Undgå fejlkommunikation, da der kan gives detaljerede oversættelsesvejledninger til projektmedlemmer via konteksttilføjelse +* Gør integrationen af oversat indhold tilbage online lettere, da oprindelige filformater bevares + +## Typisk arbejdsgang + +Følg disse trin for at arbejde med aktiver: + + + 1. Upload filer til Crowdin-projektet. + 2. Add necessary [references](#typical-asset-references) for the translators to understand how the translations should be done. Use *Context* for additional details. + 3. Lader oversættere downloade filerne. For this, open your project and go to **Settings > Privacy & collaboration > Translations** and enable **Allow offline translation**. + Read more about [offline translation](/offline-translation/). + 4. Oversættere downloader filerne, oversætte dem offline og uploader de oversatte versioner retur igen. + + +## Typiske Aktiverreferencer + +* Adobe Photoshop PSD-fil (en redigerbar kildefil, som oversættere kan ændre jf. lokaliseringskravene). +* Skrifttypefiler, da visse aktiver kan benytte tilpassede skrifttyper. +* Stilguide (vises i Editor som en kontekst eller en ekstra downloadbar fil). +* Manual/vejledning, der trin for trin guider gennem lokaliseringsprocessen. + +## Aktiver i TXT-format + +Visse uunderstøttede tekstformater (f.eks. .toc, .gitignore) importeres til Crowdin som .txt-filer. Brugere kan oversætte sådanne filer direkte i Crowdin. diff --git a/src/content/docs/da/crowdin/project-management/sources/csv-xlsx-configuration.mdx b/src/content/docs/da/crowdin/project-management/sources/csv-xlsx-configuration.mdx new file mode 100644 index 00000000..30eab9b8 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/csv-xlsx-configuration.mdx @@ -0,0 +1,154 @@ +--- +title: Opsætning af CSV-/XLSX-filer +description: Configure CSV or XLSX files before importing their contents +slug: csv-xlsx-configuration +--- + +import { Steps, Aside, Tabs, TabItem, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import { Icon } from 'astro-icon/components'; +import csvFileConfigure from '!/crowdin/project-management/sources/csv_file_configure.png'; +import csvFileConfigureSb from '!/crowdin/project-management/sources/csv_file_configure_sb.png'; +import xlsxInitialOptions from '!/crowdin/project-management/sources/xlsx_initial_options.png'; +import csvFileConfiguration from '!/crowdin/project-management/sources/csv_file_configuration.png'; + +After CSV or XLSX files are uploaded to the project, they require configuration before the system can correctly parse and import their content. + +## File Configuration + +To start the configuration, follow these steps: + + + + + 1. Open your project and go to **Sources > Files**. + 2. Click **Configure** next to the file to open the configuration dialog. + + Opsætningsfil + + + + + 1. Open your project and go to the **Upload** tab. + 2. Drag and drop your files or click **Select Files**. + 3. Click **Configure** next to the file you wish to set up. + + Configure File (String-based) + + + +De samme opsætninger, som nævnt i denne artikel, gælder også for TSV-filformatet. The main difference between CSV and TSV files is that they use different delimiters between columns (commas in CSV and tabs in TSV). + +### Initial Setup for XLSX Files + +When configuring an XLSX file, you will first see a dialog with two primary options that determine how the file is processed: + +* **Import all cells** - Imports the content of each cell as a separate source string. If you select this option, you can also enable **Content segmentation** to automatically split text into smaller translation units, such as sentences or short paragraphs. Dette er nyttigt under oversættelse af indholdsenheder bestående af flere sætninger, da det er lettere at oversætte mindre tekststykker. Segmenteringsregler eXchange (SRX) bruges til automatisk indholdssegmentering. +* **Configure columns for import** - This option opens the detailed configuration dialog, allowing you to manually map columns for sources, translations, context, and more. + +Initial configuration options for XLSX files + +The detailed configuration dialog appears immediately for CSV files, or for XLSX files after you select **Configure columns for import**. + +### Columns Configuration + +The main area of the dialog is for mapping the columns from your file to the appropriate data type in Crowdin. The interface includes the following controls directly above the column mapping: + +* **Detect** - Re-runs the [automatic detection of the column scheme](#automatic-column-detection) based on the headers in the first row. +* **Reset** - Clears the current column configuration and resets all columns to **Not selected**. +* and - Use these buttons to add a new language column or remove a selected one. This is useful if your multilingual source file is missing columns for some of your project's target languages. These buttons are active only when you select the **Multilingual spreadsheet** option in the **Import Options** section. + +You can define the purpose of each column by assigning a type from the dropdown menu above it. The available column types are: + +* *Key* – Column contains string identifiers. Typically, an alphanumeric value. +* *Source string* – Column contains source strings that should be translated. +* *Source string/Translation* – Column contains source strings, but the same column will be filled with translations when the file is exported. Når eksisterende oversættelser uploades, bruges dataene fra denne kolonne som oversættelser. +* *Translation* – Column for resulting translations added on export. Under import samt upload af eksisterende oversættelser, tjekker systemet denne kolonne for eksisterende oversættelser og uploade disse til projektet. +* *Context* – Column contains comments or context information for the source strings. +* *Labels* – Column contains labels for the source strings. Der kan tilføjes flere etiketter til hver streng, adskilt med kommaer. +* *Max. Length* – Column contains max.length limit values for the translations of the strings. +* *Not selected* – Column will be skipped on import. + +Detailed configuration dialog for a CSV file + +#### Automatic Column Detection + +When you open the configuration dialog, the system automatically detects the file scheme based on the column names in the first row. The identification is case-insensitive. Columns that aren’t detected automatically will be left as **Not selected** for manual configuration. + +Automatic column detection is especially helpful when you upload multiple multilingual spreadsheets that contain many languages and additional columns (e.g., Context, Labels, Max. Length). + +By default, the system initially treats spreadsheets as monolingual. To correctly autodetect columns containing translations for multiple languages, select **Multilingual spreadsheet** in the [**Import Options**](#import-options) section, and then click **Detect**. + +To get the most out of automatic column detection, name the columns in your CSV or XLSX files using the values from the table below: + +| Column type | Expected value | +| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Nøgle | `identifier`, `key` | +| Source String | `source phrase`, `source_phrase`, `source string`, `source_string` | +| Source String/Translation | `source or translation`, `source_or_translation`, `source/translation` | +| Oversættelse | `translation` | +| Context | `context` | +| Etiketter | `labels` | +| Max. Length | `max. length`, `max_length` | +| Language (for multilingual files) | Language name (e.g., Ukrainian), Crowdin language code (e.g., uk-UA), Locale (e.g., uk-UA), Locale with underscore (e.g., uk_UA), Language code ISO 639-1 (e.g., uk), Language code ISO 639-2/T (e.g., ukr) | + + + +### Import Options + +The sidebar on the right allows you to define how the file structure is handled. + +* **Do not import the first row (header)** - Select this option if the first row of your file contains column headers that should not be imported for translation. +* **Multilingual spreadsheet** - Select this option if your file contains source texts in one column and translations into different languages in other columns. This enables the system to correctly map languages to the appropriate columns and unlocks the **Translations** section. +* **Import hidden sheets** (XLSX only) - Import content from hidden sheets within your XLSX file. +* **Import hidden rows** (XLSX only) - Import content from hidden rows within your XLSX file. + +### Oversættelser + +This set of options, also in the right sidebar, allows you to fine-tune how existing translations from your file are processed. These options become available when **Multilingual spreadsheet** is selected. + +* **Import translations** - By default, Crowdin imports any translations present in the file. Clear this checkbox if you only want to import source strings. +* **Allow translation to match source** – Enable this if a translation is intentionally the same as the source text (e.g., for product names, brands, or code terms). +* **Approve added translations** – Automatically approve the uploaded translations. This is useful when you are confident in the accuracy of the translations in your file. +* **Translate hidden strings** – Import translations for strings that are marked as hidden in Crowdin. Hidden strings are typically not visible to translators in the Editor and are used for system purposes or placeholders. +* **Add to TM** - Add the imported translations to the project's primary Translation Memory (TM). + + + +### Opsætningsskabeloner + +Located at the bottom of the dialog, this option allows you to manage configurations for files with the same column structure. + +* To save your current setup as a template, click **Templates** > **Save as template**, specify a template name, and click **Save**. +* You can then apply this template to newly imported files. To find a specific template from a long list, use the **Search** field available in the templates dropdown. + +## Skift af skema til CSV- og XLSX-filer + +You might want to update CSV or XLSX files and change the initially configured scheme. The scheme update might be needed when you add a new target language to your Crowdin project. + +To change the scheme for your source file, follow these steps: + + + 1. Right-click on the needed files and select **Change scheme**. + 2. Select the new file on your machine. + 3. Set the new configuration/template for the file correspondingly. + + + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/project-management/sources/custom-segmentation.mdx b/src/content/docs/da/crowdin/project-management/sources/custom-segmentation.mdx new file mode 100644 index 00000000..7ee6fba2 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/custom-segmentation.mdx @@ -0,0 +1,85 @@ +--- +title: Tilpasset segmentering +description: Define your own segmentation rules for each source file individually +slug: custom-segmentation +sidebar: + order: 5 +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import Include from '~/components/Include.astro'; +import fileContextMenuSettings from '!/crowdin/project-management/sources/files_context_menu_settings.png'; +import fileParserConfiguration from '!/crowdin/project-management/sources/files_parser_configuration.png'; + +Each time you upload XML, HTML, MD, or any other source files without a key-value structure, the predefined segmentation rules (SRX 2.0) are used for automatic content segmentation. Although, there might be situations when the default segmentation rules segment source files in contrast to the desired expectations. + +In this case, you can define your own segmentation rules for each source file individually using the [SRX 2.0 standard](https://www.gala-global.org/srx-20-april-7-2008). + +## Ændr segmentering + +You can change segmentation in **Sources > Files**. + + + 1. Open the project where you’d like to adjust the segmentation rules and go to **Sources > Files**. + 2. Click (or right-click) on the needed file and select **Settings**. File Context Menu + 3. In the appeared dialog, switch to the **Parser configuration** tab. + 4. Select **Enable content segmentation** and **Use custom segmentation rules**. + 5. Paste your SRX segmentation rules and click **Save**. File Segmentation Rules + + +After you save your new segmentation rules, your source file will be automatically reimported and segmented according to these new rules. + +## Segmenteringseks. + + + +En typisk SRX-fil vil ligne flg. eks.: + + + +### Ændre sætningsseparator til asiatiske sprog + +Normalt bruges punktum som sætningsseparator. Although, for some Asian languages, it's not the case. For example, the typical sentence separator in Chinese is an ideographic full stop (`。`). For such cases, you may want to use the following ruleset: + +```xml + + [\x3002]+ + + +``` + +### Bryd tekst op i kortere dele + +In the following simple sentence, we'll break down a case when segmenting one text piece into two (or more) strings is necessary. + +Tekst med standardsegmenteringsregler: + +`This is the first part of the sample sentence and this is the second part.` + +Tekst med nye segmenteringsregler: + +`This is the first part of the sample sentence` + + and this is the second part. + +For this particular case, the following ruleset will break the initial sentence into two parts: + +```xml + + sentence + \u0020 + +``` + +## Opret segmenteringsregler med SRX Editors + +The SRX segmentation rules can be created and maintained with the help of tools like [Ratel](http://okapiframework.org/wiki/index.php?title=Ratel). Det har en visuel grænseflade, hvor segmenteringsregler kan generere fra bunden eller eksisterende kan redigeres. + + + + + diff --git a/src/content/docs/da/crowdin/project-management/sources/file-management.mdx b/src/content/docs/da/crowdin/project-management/sources/file-management.mdx new file mode 100644 index 00000000..b51fec70 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/file-management.mdx @@ -0,0 +1,205 @@ +--- +title: Filhåndtering +description: Manage and configure source files in your project +slug: file-management +sidebar: + order: 2 +--- + +import { Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import filesPrioritizing from '!/crowdin/project-management/sources/files_prioritizing.png'; +import filesContextMenuSettings from '!/crowdin/project-management/sources/files_context_menu_settings.png'; +import filesSettings from '!/crowdin/project-management/sources/files_settings.png'; +import filesParserConfiguration from '!/crowdin/project-management/sources/files_parser_configuration.png'; +import filesFileTargetLanguages from '!/crowdin/project-management/sources/files_file_target_languages.png'; +import filesFileContext from '!/crowdin/project-management/sources/files_file_context.png'; +import filesRename from '!/crowdin/project-management/sources/files_rename.png'; +import filesManagementProgresses from '!/crowdin/project-management/sources/files_management_progresses.png'; +import filesUpdating from '!/crowdin/project-management/sources/files_updating.png'; +import filesUpdating2 from '!/crowdin/project-management/sources/files_updating_2.png'; +import filesRestore from '!/crowdin/project-management/sources/files_restore.png'; +import filesFolderBranch from '!/crowdin/project-management/sources/files_folder_branch.png'; + +You can manage all the project's files via **Sources > Files**. Here you can manually upload files for localization using various [supported formats](/supported-formats/). +When the files are uploaded, you'll be able to take a glance at how many *Strings* your files include and how many *Revisions* (changes) were done to each of them. + +If you want to configure an automatic files' synchronization with your project, use the **Integrations** tab. + +## Filprioriteringer + +En bestemt prioritet kan angives for hver fil ved at klikke på pil-ikonet ved siden af den. Oversættere vil derefter kunne se filer sorteret efter prioritet på sprogsiden og i Editor. + +Tilgængelige filprioriteter: + +* – low +* – normal +* – high + +Files Prioritizing + +## Filindstillinger + +To access the configurations of specific files, right-click on the necessary file or click next to it and then select **Settings**. Alternatively, just double-click on the file. + +File Context Menu + +### Title as it Appears to Translators + +Show descriptive file titles to translators. For example: use *About Us Dialog* instead of *abt_us.xml*, or *In-app texts* instead of *Localizable.strings*. + + + +### Fileksport + +Angiv et filnavn eller en fuld sti til det resulterende arkivet. Benyt tilgængelige variabler til at angive eksportindholdsstrukturen. + +For example, you want the source file `Overview.csv` with Ukrainian translation to be named `Overview.ukrainian.csv` before integrating it with the application. In this case, you'd need to set the *Resulting file after translations export* to the following: `Overview.%language%.csv`. + +By default, Crowdin adds [Crowdin language codes](/developer/language-codes/) during the file export. To use custom ones for specific languages in the whole project, set up [Language Mapping](/project-settings/languages/#adding-custom-language-codes). + +Files settings + +### Fortolkeropsætning + +Visse filformater muliggør opsætning af import/eksport-adfærd. In this case, file's Settings dialog will also contain the **Parser configuration** tab. + +File Parser Configuration + + + Read more about [Parser configuration](/project-settings/parser-configuration/). + + +### Filmålsprog + +Kildefilerne er som standard tilgængelige for oversættelse til alle projektmålsprog. Clear the checkboxes in the *File target languages* list next to the languages your file shouldn't be translated into, and click **Save**. + +Filmålsprog + +### Filkontekst + +Add additional information or instructions to help translators better understand how to translate a file. File context can be added as plain text or Markdown in **File Settings > Context** or directly in the Editor. The provided context will be visible to translators in the Editor in the [File Context](/online-editor/#file-context) tab. The icon appears next to files that have file context added, helping you quickly identify which files include helpful notes for translators. + +Filkontekst + + + + + +## Pre-translating Files and Folders + +To quickly run pre-translation for one or more files or folders, right-click on the necessary item or click next to it and select **Pre-translate**. + + + Read more about [pre-translating selected files or folders](/pre-translation/#pre-translating-files-and-folders-via-context-menu). + + +## Viewing Strings + +To view all strings from a specific file, right-click on the file and select **View strings**. This opens the **Strings** tab with a pre-applied filter that displays only the strings from the selected file. + + + Read more about [String Management](/string-management/). + + +## Omdøbning af filer + +To change the file's name, right-click on the necessary file or click next to it and select **Rename**. + +File Rename + +## Udgiftsestimering + +To estimate the cost of translation or proofreading for a specific file, right-click on the file and select **Cost Estimate**. + + + Read more about [generating Cost Estimate report](/project-reports/#generating-cost-estimate). + + +## Creating a Task + +To create a task for a specific file, right-click on the file and select **Add task**. This allows you to assign translation or proofreading work for just that file to selected contributors or translation vendors. + + + Read more about [Project Tasks](/tasks/). + + +## Opening in Editor + +To open a file directly in the Editor, right-click on the file and select **Open in Editor**. This allows you to review translations and approvals, answer string comments, and more. + +## Kontrol af fremskridt + +Oversættelses- og godkendelsesfremskridt kan tjekkes for en gren, mappe eller fil. Right-click on the needed branch, folder or file, and select the **Progress**. Hold markøren over statusbjælken for at se antallet af oversatte og godkendte ord for hvert sprog. Klik på det ønskede sprog for at åbne den valgte fil i Redigeringsværktøjet. + +To download translations for the chosen file, select the required languages, and click **Build & Download**. Optionally, you can select **Preserve folder hierarchy for export** to export translation files along with the folders they're stored in Crowdin. + +File Progress + +## Previewing Source Files + +To preview the raw structure and content of a source file, right-click the file and select **Preview source**. This opens a read-only modal showing the file’s contents exactly as Crowdin received them. + +## Downloading Source Files + +To download a source file stored in your Crowdin project, right-click on the file and select **Download source**. This can be useful for reviewing the original content outside Crowdin, sharing it with teammates, or making offline edits before reuploading. + +## Opdatering af kildefiler + +If you have added new strings to a source file, you'll need to update the file in Crowdin to make the new content available to translators. To do this, click **Update** next to the needed file and select the new file from your machine. + +File Updating + +If any source strings were modified in the updated file, Crowdin will display the **Keep Translations for Updated Strings** dialog. This dialog allows you to decide which existing translations to keep for the modified strings. + +The dialog lists each modified string, displaying its **Key** (identifier) and allowing you to compare the **Current Strings** (original text) with the **New Strings** (updated text, with additions highlighted in green and deletions in red). + +File Updating Options + +To keep the current translations for a modified string, select the checkbox next to it. For any string you don't select, its existing translations will be deleted after the file update. + +Additionally, select the **Keep Approvals** option at the bottom of the dialog to preserve approvals for the translations you choose to keep. + +Once you've made your selections, click **Update File**. + + + +After the update is complete, Crowdin may indicate changes by displaying a blue dot next to the **Refresh** button in the upper-right corner of the **Files** tab. Click this button to refresh the file list and display the most up-to-date information. + +## Gendannelse af foregående versioner + +Hver gang kildefilen opdateres, oprettes en ny revision. To restore your file to the previous revision, click the number on the needed file in the *Revision* column. In the appeared dialog, select the revision you want to restore your file to and click **Restore** next to it. + +File Restoring + +## Grene og Mapper + +You can create folders and branches in **Sources > Files** with **New Folder** and **New Version Branch** buttons. + +Mapper repræsenterer indholdsstrukturen, mens grene er til håndteringen af forskellige indholdsversioner. + +Usually, branches in Crowdin are created automatically if you use GitHub, GitLab, or other VCS integration. Ønskes grene fortsat oprettet manuelt, sørg for først at uploade hovedgrenen, da alle de efterfølgende vil blive betragtet som funktionsgrene. + +Duplicates might be managed in **Settings > Import > Source Strings** by choosing the corresponding option for *Duplicate Strings*. + +Grene og Mapper + + + Read more about [Version Management](/version-management/). + + +## Skift af skema til CSV- og XLSX-filer + +Filformater såsom CSV og XLSX kan kræve ændring af det oprindeligt opsatte skema. Dette kan ofte være nødvendigt, når et nyt målsprog tilføjes Crowdin-projektet. + + + Read more about [changing the scheme for CSV and XLSX files](/csv-xlsx-configuration/#changing-scheme-for-csv-and-xlsx-files). + diff --git a/src/content/docs/da/crowdin/project-management/sources/string-management.mdx b/src/content/docs/da/crowdin/project-management/sources/string-management.mdx new file mode 100644 index 00000000..3961301c --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/string-management.mdx @@ -0,0 +1,142 @@ +--- +title: String Management +description: Manage source strings in your translation project +slug: string-management +sidebar: + order: 3 +--- + +import { Steps, Aside, Tabs, TabItem, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import stringHide from '!/crowdin/project-management/sources/string_hide.png'; +import stringFilter from '!/crowdin/project-management/sources/string_filter.png'; +import stringEdit from '!/crowdin/project-management/sources/string_edit.png'; +import labelsAddingToOneString from '!/crowdin/project-management/sources/labels_adding_to_one_string.png'; +import labelsAddingToMultipleStrings from '!/crowdin/project-management/sources/labels_adding_to_multiple_strings.png'; + +You can view all the project's strings and manage strings settings via **Sources > Strings**. + +## Ændring af strengsynlighed + +Strenge, hvis indehold ikke skal oversættes (f.eks. variabler, øvrigt tekniske indhold), kan skjules for oversættere. For at gøre dette: + + + 1. Open your project and go to **Sources > Strings**. + 2. Select the necessary strings by clicking the checkbox next to each one. + 3. Click **Hide**. Changing visibility + + +## Strengefiltrering + +By default, all source strings of the project are displayed in **Sources > Strings**. If necessary, you can filter out strings using the available filter options (Issues: Show All, With Unresolved Issues, Without Unresolved Issues; Comments: Show All, With Comments, Without Comments; Screenshots: Show All, With Screenshots, Without Screenshots; Visibility: Show All, Hidden and Visible) and project labels. + +Filter Strings + +## Adding Strings + +You can add strings to your projects directly in Crowdin. + +To add a new string, follow these steps: + + + + + 1. Open your project and go to **Sources > Strings**. + 2. Click **Add String**. + 3. In the appeared dialog, enter the necessary details for the string: + * *String* – specify the text that needs translation. + * *(Optional)* *Plurals* – select this option to add plural forms and enter the text for each form based on the project’s source language requirements. + * *Identifier* – specify a unique key for the string, often used for referencing the translated text in the application. + * *(Optional)* *Context* – add additional information to help translators understand the intended meaning. + * *(Optional)* [*Labels*](#labels) – specify labels to organize strings or provide extra context. + * *(Optional)* *Maximum Translation Length* – set a character limit for the translation. + * *(Optional)* File-specific identifiers – specify unique keys for each file format when adding the string to multiple files. This ensures that the string meets the different identifier requirements based on the file formats it will be used in. + * *Files* – choose the source files where this string should be added. + 4. Click **Add** to add the new string to your project. + + + + + + 1. Open your project and go to the **Strings** tab. + 2. Click **Add String**. + 3. In the appeared dialog, enter the necessary details for the string: + * *Branches* – choose the branches where this string should be added. + * *String* – specify the text that needs translation. You can leave this field empty to create placeholder strings for future content or development purposes. + * *(Optional)* *Plurals* – select this option to add plural forms and enter the text for each form based on the project’s source language requirements. + * *Identifier* – specify a unique key for the string, often used for referencing the translated text in the application. + * *(Optional)* *Context* – add additional information to help translators understand the intended meaning. + * *(Optional)* [*Labels*](#labels) – specify labels to organize strings or provide extra context. + * *(Optional)* *Maximum Translation Length* – set a character limit for the translation. + * *(Optional)* File-specific identifiers – specify unique keys for each branch when adding the string to multiple branches. This ensures that the string meets the different identifier requirements based on the file formats it will be used in. + 4. Click **Add** to add the new string to your project. + + + + + + Read more about [project types](/creating-project/#project-types). + + + + +## Strengredigering + +You can add context to the string, add or remove labels, set the max. length of the translation. Once the translation limits are exceeded, the system notifies the contributor that the translation should be shorter. + +Strengredigering + +To edit some particular word or phrase that appears in multiple source strings, you can use the **Find & Replace** feature in **Sources > Strings**. + + + +### Formats That Support Online Editing + +Some file formats allow editing (adding, deleting, and modifying) of the source text and string identifiers directly in Crowdin, so you can make the necessary corrections without having to update the source file via **Sources > Files**. + +The following file formats support editing the source text and string identifiers directly in Crowdin: + + + +### Etiketter + +Brug etiketter i projektet som en nem måde at føje kontekst til strengene på eller organisere dem efter bestemte emner. Labels are also useful while creating translation and proofreading tasks or searching for specific strings in the Editor with the help of [Advanced Filter](/online-editor/#advanced-filter). + + + +Der er et par mulige måder at føje etiketter til strenge på. + +##### Add labels to one string at a time via the *Edit String* dialog + + + 1. Click **Edit** on the string in the list. + 2. Select needed labels in the *Labels* field. Add Labels + 3. Click **Save**. + + +##### Add labels to multiple strings via the *Manage Strings Labels* dialog + + + 1. Select a few strings you want to add the same labels to. + 2. Click **Labels**. + 3. Select needed labels in the *Labels to be added* field. Add Labels + 4. Click **Save**. + + +##### Add labels to the source strings in CSV and XLSX files using a dedicated column for labels + + + Read more about [Configuring Columns for Import](/csv-xlsx-configuration/#columns-configuration). + + + diff --git a/src/content/docs/da/crowdin/project-management/sources/uploading-files.mdx b/src/content/docs/da/crowdin/project-management/sources/uploading-files.mdx new file mode 100644 index 00000000..3a523676 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/uploading-files.mdx @@ -0,0 +1,123 @@ +--- +title: Uploading Source Files +description: Learn how to upload source files to your project for translation +slug: uploading-files +sidebar: + order: 0 +--- + +import { Aside, Tabs, TabItem, Steps, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import ReadMore from '~/components/ReadMore.astro'; +import Include from '~/components/Include.astro'; +import uploadFiles from '!/crowdin/project-management/sources/upload_files.png'; +import uploadFilesSB from '!/crowdin/project-management/sources/upload_files_sb.png'; +import baseHtmlEditor from '!/crowdin/project-management/sources/base_html_editor.png'; + +Once you've [created a project](/creating-project/), the next step would be preparing source files for upload. Crowdin supports a wide range of [file formats](/supported-formats/), including Android XML, iOS Strings, JSON, etc. When you have your files prepared, you can add them to your Crowdin project for translation. + +Crowdin offers a few options for adding content to a project: + +* Manuelt via web-UI'en. +* Integrate your Crowdin project with the tools you already use. Explore available integrations on the [Crowdin Store](https://store.crowdin.com/). +* Use the [API](/developer/api/) or [Developer Tool](/developer/dev-tools/) of your choice. + +Usually, this task is accomplished by developers. You can [invite your colleague developer](/inviting-people/) to assist you with this step. + +You can also use Crowdin sample files to test the translation workflows before starting your project with the actual source files. + + + +## Upload af filer + +To upload files via the web interface, follow these steps: + + + + + 1. Open your project and go to **Sources > Files**. + 2. Drag and drop files from your machine anywhere within the **Files** tab — to the root of the project or directly into an existing folder. You can upload ZIP archives if you want to add a structured set of folders and files. + 3. *(Optional)* Click **Upload Files** or **Add File** to add files, **Use Samples** to test translation workflows, **Set Up Integration** to synchronize content automatically, or **Invite Developer / Translation Requestor** if content uploads will be handled by your developer teammate. You can also click the drop-down arrow next to the **Add File** button to access additional options, such as **Create String Vault** (adds an empty CSV file) or another **Set Up Integration** shortcut. Files tab in the project settings + + + + + 1. Open your project and go to the **Upload** tab. + 2. Select the target branch to which you're uploading source files. By default, the `main` branch is selected. Create new branches if needed. + 3. Drag and drop files from your machine, or click **Select Files**. You can also upload ZIP archives if you want a set of files to be added. + 4. Crowdin automatically tries to detect whether you're uploading source content or translations. Verify the detection is correct and adjust the language settings if needed (e.g., English (source) should be selected for source files if the project's source language is English). + 5. *(Optional)* In the **Source files** section, to the right of the uploaded file list, configure [advanced source file import settings](#advanced-import-settings). + 6. Click **Upload** to finish uploading the source content. Files tab in the project settings + + + + + + + Read more about [project types](/creating-project/#project-types). + + + + +### XML-, CSV- og XLSX-filer + +Some file formats, such as XML, CSV, XLSX, and others, might require additional configuration. + +* [CSV/XLSX File Configuration](/csv-xlsx-configuration/) +* [XML File Configuration](/xml-configuration/) +* [Parser Configuration](/project-settings/parser-configuration/) + + + +### HTML-filer med relative URL'er + +To display images and styles in the HTML file used outside of the website, where it belongs, add the `` tag to specify the base URL/target for all relative URLs in a document. + +```html wrap + + + + + +

StickmanPlease note that we only specified a relative address for the image. Since we specified a base URL in the head section, the browser will look for the image at "https://www.w3schools.com/images/stickman.gif".

+ + +``` + +Once you add the `` tag, translators will see images in the HTML files when translating in the Editor. + +HTML file with a base tag displayed in the Editor + + + +## Avancerede importindstillinger + +You can configure the desired system behavior for uploaded source files in string-based projects using the available options: + +* **Update strings** – update strings with the same identifiers. Denne indstilling er som standard valgt. +* **Cleanup mode** – remove previously uploaded strings not present in the newly uploaded file. By default, this option is cleared. +* **Add labels** – tag uploaded strings with the selected labels. When uploading source files, Crowdin also adds system labels that include the source file name. + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/project-management/sources/version-management.mdx b/src/content/docs/da/crowdin/project-management/sources/version-management.mdx new file mode 100644 index 00000000..bd6924bd --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/version-management.mdx @@ -0,0 +1,328 @@ +--- +title: Versionsstyring +description: Learn how to manage different versions of your project +slug: version-management +sidebar: + order: 4 +--- + +import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import branchesStructure from '!/crowdin/project-management/sources/branches_structure.png'; +import versionsDuplicateStrings from '!/crowdin/project-management/sources/versions_duplicate_strings.png'; +import branchesWorkflow from '!/crowdin/project-management/sources/branches_workflow.png'; +import branchMerging from '!/crowdin/project-management/sources/branch_merging.png'; +import branchTranslationVerification from '!/crowdin/project-management/sources/branch_translation_verification.png'; + +Opretholde en fleksibel lokaliseringsproces og undgå oversættelsesforsinkelser ved tilføjede tekster eller nye produktfunktioner. Integrér projektgrene med Crowdin og giv straks oversættere adgang til alle nye tekster. + +When several people work on product development, branches help manage different content versions. If you have a continuous project, you can add project branches to Crowdin and allow translators to translate the texts in parallel with development to prevent deployment delays. + +Branches in Crowdin look like regular folders marked with a specific icon and have special behavior for duplicate strings. + +Example of branch structure in the version control system (VCS) and Crowdin: + +Grenstruktur + +## Managing Branches + +You can create, clone, merge, rename, prioritize, protect, or delete branches in Crowdin to streamline localization alongside development. Use the available UI options, API, or CLI depending on your workflow and project type. + +### Creating Branches + +You can create branches manually using the web interface (UI), automatically by connecting your project to a version control system, or by using CLI or API. The method you choose may depend on your project type or integration preferences. + +#### Creating Branches via VCS Integration + +Integrate Crowdin projects with [GitLab](/gitlab-integration/), [GitHub](/github-integration/), [Bitbucket](/bitbucket-integration/), or [Azure Repos](/azure-repos-integration/). When you select branches for localization in your VCS, they’ll be created automatically in Crowdin. + +#### Creating Branches via Web Interface + +To create branches via the web interface (UI), follow these steps: + + + + + 1. Open your project and go to **Sources > Files**. + 2. Click **New Version Branch**. + 3. In the appeared dialog, enter the branch name. + 4. In the **Duplicate Strings** section, select how duplicated strings should be handled. + 5. Click **Create** to finish. + + + + + 1. Open your project and go to the **Branches** tab. + 2. Click **New Version Branch**. + 3. In the appeared dialog, enter the branch name. + 4. Select **Create empty branch** or **Clone existing branch**. + 5. If cloning, select the source branch from the dropdown that appears. + 6. Click **Create** to finish. + + + + +#### Grenoprettelse vha. API + +You can use the Crowdin API to programmatically create branches. The available method depends on the project type: + +* [Add Branch (File-based)](https://support.crowdin.com/developer/api/v2/#tag/Source-Files/operation/api.projects.branches.post) +* [Add Branch (String-based)](https://support.crowdin.com/developer/api/v2/string-based/#tag/Branches/operation/api.projects.branches.post) + +#### Grenhåndtering vha. CLI + +With the Crowdin CLI, you can manage branches directly from your local environment, using the dedicated commands. You can also create a branch automatically during file upload. + + + Read more about [Branch Management with CLI](https://crowdin.github.io/crowdin-cli/commands/crowdin-branch). + + +### Protected Branches + +For string-based projects, you can make specific branches protected (e.g., your `main` or `production` branch) to ensure content stability. When the **Enable Protection** option is active for a branch, direct modifications to its content are restricted. + +The following actions are not allowed in a protected branch: + +* Uploading new source content. +* Deleting existing source content. +* Adding translations or approvals directly to strings in that branch. + +#### Working with Protected Branches + +The primary workflow for protected branches involves performing all content updates and translations in a separate branch (e.g., a cloned `dev` branch) and then merging those changes into the protected branch. + +Crowdin provides visual indicators when you are viewing a protected branch: + +* **Upload Tab**: If you select a protected branch as the target, a blue note appears: "The uploading of files to protected branches is not allowed." +* **Strings Tab**: A yellow note appears: "You have currently selected a protected branch. No operations with strings are allowed." +* **Editor**: If you attempt to edit a string, the input fields will be disabled. Hovering over the translation field displays the tooltip: "Not allowed for strings from protected branch." + +To update a protected branch, follow these steps: + + + 1. [Clone](#cloning-branches) the protected branch (e.g., create `dev` from `main`). + 2. Perform necessary actions in the cloned branch (upload source files, add translations, approve strings). + 3. [Merge](#merging-branches) the cloned branch back into the protected branch. + + + + +### Cloning Branches + +You can create a copy of an existing branch using the **New Version Branch** dialog or the **Clone** option in the context menu. + +To clone a branch, follow these steps: + + + 1. Open your project and go to the **Branches** tab. + 2. Do one of the following: + * Click **New Version Branch**. + * Hover over the needed branch, click (or right-click), and select **Clone**. + 3. In the appeared dialog, enter the name for the new branch. + 4. If cloning via **New Version Branch**, select **Clone existing branch** and choose the source branch from the dropdown. + 5. Click **Create** to finish. + + + + +### Grenfletning + +You can merge one branch into another directly from the **Branches** tab using the context menu. During the merge process, Crowdin displays a summary of changes (i.e., source text updates and new translations), allowing you to select exactly which changes to accept before completing the merge. + + + 1. In the **Branches** tab, hover over the source branch you want to merge. + 2. Click (or right-click), and select **Merge**. + 3. In the appeared dialog, choose the target branch to merge into. + 4. Click **Continue** to proceed to the **Merge summary** page. + + +#### Understanding the Merge Summary + +The **Merge summary** page displays a two-column comparison of all differences between the target branch (e.g., `main`) and the source branch (e.g., `dev`). + +At the top, you'll see a summary: **You requested to merge `{source_branch}` into `{target_branch}`. Select the changes you accept before merging:**. The branch titles in this message are clickable links that open all strings for that specific branch in the Editor. + +In the upper-right corner, next to the filter, you'll also see a high-level summary of the changes, with counters for: + +* **Deleted strings** +* **Added strings** +* **Changed strings** +* **Conflicted strings** + +**Reviewing Translation Changes** + +If a string has no changes to the source text but includes new translations, it will appear in the list. You can expand the string details using the arrow icon to view the specific translation changes: + +* **New Translations**: Highlighted in green with a sign. +* **Deleted Translations**: If a translation was removed in the source branch, it will appear highlighted in red. +* **Approvals**: If a translation is approved in the source branch, it will display a **Approved** label. +* **Metadata**: You can see the vote rating and the **Date added** for the translation. + +**Key features of this page:** + +* **Selective Merging**: You must manually select each change (added, changed, or removed string) that you want to apply to the target branch. A counter (e.g., **1 of 4 selected**) in the upper-left corner tracks your selections. +* **No Implicit Merges**: Only the strings you manually select on the Merge summary page will be merged. If you do not select a string, no changes (neither source nor translation) will be applied to the target branch. +* **String Details**: Each string in the list displays its context, maximum length (if set), and a timestamp shows when that string was last modified. +* **Open in Editor**: Hover over a string to see the **Open in Editor** link, which opens that string in a new tab. + +#### Filtering Changes + +To filter the list to review specific types of changes, click in the upper-right corner and select the preferred filter option. + +Tilgængelige filterindstillinger: + +* **All changes**: Shows all differences (source and translation) between the branches. +* **Added strings**: Shows only strings that exist in the source branch but not the target. +* **Deleted strings**: Shows only strings that exist in the target branch but were removed in the source. +* **Changed strings**: Shows strings that were modified in the source branch (including translation updates). +* **Conflicted strings**: Shows strings where the content differs between branches in a way that requires attention. This includes strings modified in both branches, or strings that are newer in the target branch than in the source branch. + + + +#### Completing the Merge + +Once you have selected all the changes you want to apply, you can finalize the merge. + +At the bottom of the page, you'll find: + +* **Delete \{source_branch} after merge** (Optional): Select this to automatically delete the source branch (e.g., `dev`) after its changes are successfully merged. This is useful for cleaning up temporary feature branches. Leave it unselected if you plan to continue working on the source branch. +* **Merge**: Click this to apply all selected changes to the target branch. This button remains disabled until you select at least one change (an added, changed, or deleted string, or changes to translations) from the list. + +Once the merge is complete, translations, approvals, and votes from both branches will be combined for the strings you selected. + + + +### Grenprioritering + +You can set priorities to branches in file-based projects to help translators focus on the most important content first. Branches appear sorted by priority on the language page and in the Editor. + +Available priorities: + +* – low +* – normal +* – high + +Følg disse trin for at angive prioriteter for de relevante grene: + + + 1. Open your project and go to **Sources > Files**. + 2. Click the arrow icon next to the needed branch to set the preferred priority. + + + + +### Other Actions from the Context Menu + +In addition to cloning and merging, the context menu for each branch includes the following options: + +* **Rename** – Allows you to change the name of the selected branch. +* **Add Task** – Opens the task creation dialog with the branch preselected. +* **Cost Estimate** – Opens the cost estimation dialog scoped to the branch. +* **Delete** – Permanently deletes the branch from the project. Use with caution. + +## Dubletter + +Because branches are different versions of the same product feature, their localization content is usually duplicated. To help translators translate versions consistently and avoid additional translation costs, Crowdin offers the **Show within a version branch** option, which hides duplicate strings between branches. + +When this option is applied, only the original strings (usually from the master branch) need to be translated. All duplicates in other branches automatically receive translations from those originals. + + + + In file-based projects, you can configure how duplicates are handled in **Settings > Import > Source Strings**. If your source files contain clear identifiers (keys), it's recommended to use the *Strict* version of the **Show within a version branch** option. Otherwise, the *Regular* option will work well for most use cases. + Dubletter + + + In string-based projects, the **Show within a version branch (regular detection)** behavior is applied automatically and cannot be changed. This ensures translations are reused between branches without requiring any additional configuration. + + + + + Read more about [Duplicates settings](/project-settings/import/#duplicate-strings). + + +## Foreslået arbejdsgang + +To ensure smooth collaboration between developers and translators, version branches in Crowdin can be used in different ways depending on how you manage source content and what project type you're using. + +### Managing Content Outside Crowdin + +In both file-based and string-based projects, you can treat your external system (e.g., file storage or version control) as the source of truth. In this setup: + +* Source files are managed and updated outside of Crowdin. +* You upload project content using the web interface (UI), API, CLI, or integrations. +* Selected branches are created in Crowdin accordingly. +* Translations are delivered back to your system once completed. + +To implement this approach for your Crowdin project, we recommend the following workflow: + + + 1. Upload your project files to the Crowdin project using one of the [available methods](#creating-branches). + 2. In file-based projects, open your project and go to **Settings > Import > Source Strings**. + 3. Set the **Duplicate Strings** option to **Show within a version branch**. + + +The screenshot below visualizes how this workflow works in practice. All texts from *Master*, *Branch 1*, and *Branch 2* are transferred to the translation server immediately after they appear, even though the branches are not merged into the *Master* branch yet. + +Branches Workflow + +### Managing Content in Crowdin (String-based Projects Only) + +For string-based projects, you can also manage branches directly in Crowdin without relying on an external system to define structure or content updates. In this setup: + +* Source content can be added the web interface (UI), API, CLI, or integrations. +* Version branches are created, cloned, and merged within Crowdin using the UI or API. +* Translations are optionally synced back to any connected integration, if used. + +This approach gives more flexibility for teams who prefer to organize content and manage version flows entirely within Crowdin. + +### Oversættelsesdownload + +Oversættelser fra alle versionsgrene placeres i én ZIP-fil, når de downloades via webgrænsefladen. Benyt CLI'en eller API'en til at downloade oversættelserne for hver gren individuelt. + +#### Oversættelsesdownload via API + +To download translations of the specific version branch with API, you can use the following API methods: + +* [Build Project Translation](/developer/api/v2/#operation/api.projects.translations.builds.post) - make sure to use the `CrowdinTranslationCreateProjectBuildForm` schema. +* [Check Project Build Status](/developer/api/v2/#operation/api.projects.translations.builds.get). +* [Download Project Translations](/developer/api/v2/#operation/api.projects.translations.builds.download.download). + +#### Oversættelsesdownload via CLI + +Download translations of the specific version branch: + +```shell +crowdin download -b branch_name +``` + + + Read more about [`crowdin download` command](https://crowdin.github.io/crowdin-cli/commands/crowdin-download). + + +### Merging Branches Outside Crowdin + +The *Master* branch will contain new texts from the *Feature* branches as soon as they are merged. While synchronizing with Crowdin, texts in the *Master* branch are populated with translations from the appropriate branch. + +After synchronizing the updated *Master* branch with Crowdin, you can remove the *Feature* branch from Crowdin. All translations stored in the *Master* branch will remain. + +This approach is commonly used in file-based projects but can also apply to string-based ones if content is managed outside of Crowdin. + +Grenfletning + +### Grenoversættelsesbekræftelse + +You can verify translations on production using only the *Feature* branch before changes are merged with your *Master* branch. Such test deployment allows you to quickly revert to the original Master branch version if needed. + +Grenoversættelsesbekræftelse diff --git a/src/content/docs/da/crowdin/project-management/sources/xml-configuration.mdx b/src/content/docs/da/crowdin/project-management/sources/xml-configuration.mdx new file mode 100644 index 00000000..c7939ffd --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/sources/xml-configuration.mdx @@ -0,0 +1,81 @@ +--- +title: XML File Configuration +description: Configure XML files to import the content for translation +slug: xml-configuration +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import xmlFileConfigure from '!/crowdin/project-management/sources/xml_file_configure.png'; +import xmlFileBasic from '!/crowdin/project-management/sources/xml_file_basic.png'; +import xmlFileAdvanced from '!/crowdin/project-management/sources/xml_file_advanced.png'; + +XML-filer kræver, ligesom CSV- og XLSX-filer, yderligere opsætning efter upload til projektet, så systemet kan importere indholdet af disse filer. + +Følg disse trin for at opsætte XML-filer: + + + 1. Open your project and go to **Sources > Files**. + 2. Click **Configure** next to the file to open the configuration window. + 3. Select which content should be translated and click **Save & Import** to proceed. + + +Opsæt XML-filer + + + + + +## Opsætningsmuligheder for XML-filer + +When configuring XML files, you’ll have the following options: **Basic Configuration** and **Advanced Configuration**. Additionally, you can use the **Content Segmentation**, which is available for both configuration options. + +### Basisopsætning + +Basisopsætning muliggør at vælge alle noder og/eller alle attributter, som skal være tilgængelige for oversættelse. + +XML Basisopsætning + +### Avanceret opsætning + +Basisopsætning muliggør at vælge de bestemte noder og de bestemte attributter, som skal være tilgængelige for oversættelse. + +XML Avanceret opsætning + +Filstrukturen er afbildet vha. ikoner: + +* – Node +* – Attribute + + + +### Opsæt alle XML-filer på samme tid + +To configure all XML files at once, click **Configure All** at the top of the **Files** tab. + +When using **Configure All**, ensure that all XML files contain the same structural elements. Ellers kan nogle noder, som kræver oversættelse, være utilgængelige under opsætningen og importeret dermed ikke til projektet. I så tilfælde vil det være nødvendigt at opsætte hver XML-fil individuelt. + +I opsætningsvinduet kan skiftes mellem de valgte filer for at forhåndsvise og tjekke, om den anvendte opsætning er korrekt for alle filer. + +## Indholdssegmentering + +You can use **Content Segmentation** to split the source file's content into shorter text pieces, mostly sentences and short paragraphs. Dette er nyttigt under oversættelse af indholdsenheder bestående af flere sætninger, da det er lettere at oversætte mindre tekststykker. Segmenteringsregler eXchange (SRX) bruges til automatisk indholdssegmentering. + + + + + Read more about [Custom segmentation](/custom-segmentation/). + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/project-management/translations/bundles.mdx b/src/content/docs/da/crowdin/project-management/translations/bundles.mdx new file mode 100644 index 00000000..b6932cf0 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/translations/bundles.mdx @@ -0,0 +1,271 @@ +--- +title: Målfil-pakker +description: Export sets of strings or files in any format you select +slug: bundles +sidebar: + order: 2 +--- + +import { Steps, Aside, LinkCard, Tabs, TabItem, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import createBundle from '!/crowdin/project-management/translations/bundles_create_bundle.png'; +import createBundleSb from '!/crowdin/project-management/translations/bundles_create_bundle_sb.png'; +import downloadBundles from '!/crowdin/project-management/translations/bundles_download.png'; +import downloadBundlesSb from '!/crowdin/project-management/translations/bundles_download_sb.png'; +import bundlesVcs from '!/crowdin/project-management/translations/bundles_vcs.png'; + +Target file bundles (or simply Bundles) allow you to export sets of strings or files in the formats you select, regardless of the original file format. By default, you can choose from the following three formats: XLIFF, Android XML, and iOS Strings. You can add more target file formats by installing respective applications from the Crowdin [Store](https://store.crowdin.com/tags/string-exporter). + +You can work with bundles in several ways: + +* Manage bundles manually via the project's **Downloads** section. +* Connect a VCS integration in **Target file bundles mode**. +* Manage bundles using **CDN Distributions**. +* Manage bundles using Crowdin CLI and API. + +## Brugsstudier + +The most common use cases include: + +* **Cross-Platform Export:** Upload a single source file (e.g., Android XML), translate it, and export translations for multiple platforms (e.g., iOS Strings for iOS, JSON for Web) using bundles. +* **Unified Source Management:** Upload a unified spreadsheet (e.g., XLSX or CSV) with source strings for all platforms. Use bundles to export separate files for each platform by filtering strings based on labels or paths. +* **Design Tools Integration:** Send strings from design tools (Figma, Sketch, Adobe XD) directly to Crowdin and export translations in development-ready formats using bundles. +* **Offline Translation:** Export specific string sets in XLIFF format for offline translation and [upload finished translations](/offline-translation/#uploading-translations) back to Crowdin. + + + + + + +## Managing Bundles in UI + +To work with bundles manually, you can configure and download them from the **Downloads** section of your project. + +### Configuring Bundles + +To configure a bundle, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Expand the **Downloads** section and click **Add**. + 3. In the **Create bundle** dialog, enter a **Bundle name**. + 4. Configure the **Content** (Left Panel): + * **Select files/directories**: Browse your project tree. You can select specific files, folders, or the **Root folder** to include the entire project. Select **Include new files added to selected folders** to automatically include future files. + * **Use pattern (Advanced)**: Define a **Source files path** pattern (e.g., `*.xml`) to dynamically include files. You can also specify **Ignore files or folders** to exclude specific items. + 5. *(Optional)* Set **String filters**: + * **Include labels**: Only export strings containing specific labels. + * **Exclude labels**: Skip strings containing specific labels. + * You can adjust the logic for multiple labels (e.g., *All selected labels* (AND) vs *Any selected label* (OR)). + 6. Configure **Languages**: + * **All target languages**: Selected by default. This option is dynamic and will automatically include any new languages added to the project in the future. + * **Source language**: Select to include the source language content in the bundle. + * **In-context pseudo-language**: Select to export your files with the metadata required for the [In-Context](/developer/in-context-localization/) integration. + * **Specific languages**: Remove the *All target languages* chip to select specific languages manually. + 7. Configure **Target files** (Right Panel): + * **File format**: Select the format you want to export. You can select **Original format** to export files as-is, or choose a target format like iOS Strings, XLIFF, etc. + * **Add more formats**: To add other target formats, install the respective applications from the [Crowdin Store](https://store.crowdin.com/tags/string-exporter). + * *(Optional)* **Format configuration**: Some formats (e.g., XLIFF, Android XML) support advanced options configured in **[Settings > Parser configuration](#configuring-format-settings)**. + * **Export pattern**: + * **For Original format**: This field is optional. Leave it empty to use the default export pattern defined in your file settings. Enter a pattern to override the default path or name. + * **For other formats**: This field is required. + * *Single file per language*: Use language placeholders (e.g., `%two_letters_code%.xliff`) to create one translation file for each language. + * *Multi-file export*: Use placeholders like `%file_name%` or `%original_path%` to export translations separated by files, matching the source file structure. + * *(Optional)* Set a **Source language export pattern**. + 8. Check the **Preview** panel to ensure the structure looks correct. + 9. Click **Save**. Create Bundle + + + + + 1. Open your project and go to the **Download** tab. + 2. Expand the **Downloads** section and click **Add**. + 3. In the **Create bundle** dialog, enter a **Bundle name**. + 4. Configure the **Content** (Left Panel): + * **Select branches**: Select specific source branches to include. Select **Include new branches** to automatically include future branches. + * **Use pattern (Advanced)**: Define a **Source branches path** pattern (e.g., `main`, `feat/*`) to dynamically include branches. + 5. *(Optional)* Set **String filters**: + * **Include labels**: Only export strings containing specific labels. + * **Exclude labels**: Skip strings containing specific labels. + * You can adjust the logic for multiple labels (e.g., *All selected labels* (AND) vs *Any selected label* (OR)). Read more about [Labels](/string-management/#labels). + 6. Configure **Languages**: + * **All target languages**: Selected by default. This option is dynamic and will automatically include any new languages added to the project in the future. + * **Source language**: Select to include the source language content in the bundle. + * **In-context pseudo-language**: Select to export your files with the metadata required for the [In-Context](/developer/in-context-localization/) integration. + * **Specific languages**: Remove the *All target languages* chip to select specific languages manually. + 7. Configure **Target files** (Right Panel): + * **File format**: Select the format you want to export (e.g., Android XML, iOS Strings). + * **Add more formats**: To add other target formats, install the respective applications from the [Crowdin Store](https://store.crowdin.com/tags/string-exporter). + * *(Optional)* **Format configuration**: Some formats (e.g., XLIFF, Android XML) support advanced options configured in **[Settings > Parser configuration](#configuring-format-settings)**. + * **Export pattern**: Define the resulting file name using language placeholders (e.g., `%two_letters_code%.strings`). This will create one file per language. + * *(Optional)* Set a **Source language export pattern**. + 8. Check the **Preview** panel to ensure the structure looks correct. + 9. Click **Save**. Create Bundle + + + + + + +### Configuring Format Settings + +Some file formats (e.g., XLIFF, Android XML) have additional configuration options, such as **Copy source to empty target** or **Convert placeholders**. + +You can manage these settings globally for the project in the **Parser configuration**. + +To configure these options, follow these steps: + + + 1. Open your project and go to **Settings > Parser configuration**. + 2. Locate the format marked with the **Exporter** badge (e.g., **Android XML** or **XLIFF**). These are the specific formats used for bundle generation. + 3. Click next to the format you want to configure and select **Edit**. Alternatively, just double-click on the needed format. + 4. Adjust the file format exporter settings by selecting the needed options. + 5. Click **Save**. + + +### Searching, Filtering, and Sorting Bundles + +By default, all bundles are displayed in the **Downloads** section. To find a specific bundle, you can use the **Search bundles** field. + +To filter the list of bundles, click **Filters** and use the available options: + +* **Format**: Filter by file format (**All**, **Original format**, or specific target formats like **macosx**, **xml**, etc.). +* **Last modified**: Filter by modification date (**All**, **Today**, **Yesterday**, **Last 7 days**, **Last 30 days**, **This month**, **Last month**, **Custom Range**). + +To sort bundles, click the column header you want to sort by: + +* **Bundle name** +* **Format** +* **Last modified** + +Click once to sort in ascending order and click again to sort in descending order. + +If a bundle is used in one or more [CDN Distributions](#bundles-in-cdn-distributions), a **cloud** icon will appear next to its name. Click this icon to automatically navigate to the **CDN Distributions** section with a filter applied to show only the distributions containing that bundle. + +### Downloading Bundles + +To download bundles, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Expand the **Downloads** section. + 3. *(Optional)* Use the search or filters to locate the bundles you need. + 4. Download the bundles using one of the following methods: + * **Single bundle**: Click **Download** next to the specific bundle. + * **Multiple bundles**: Select the checkboxes next to the bundles you want to download, then click **Download** in the upper-right corner of the list. Download Bundle + + + + + 1. Open your project and go to the **Download** tab. + 2. Expand the **Downloads** section. + 3. *(Optional)* Use the search or filters to locate the bundles you need. + 4. Download the bundles using one of the following methods: + * **Single bundle**: Click **Download** next to the specific bundle. + * **Multiple bundles**: Select the checkboxes next to the bundles you want to download, then click **Download** in the upper-right corner of the list. Download Bundle + + + + +The system will build and download a ZIP archive containing folders for each selected language with the translation files in your chosen format. + + + +### Editing Bundles + +To edit a bundle, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Expand the **Downloads** section. + 3. Click next to the bundle and select **Edit**. Alternatively, just double-click on the needed bundle. + 4. Make your changes in the configuration dialog and click **Save**. + + + + + 1. Open your project and go to the **Download** tab. + 2. Expand the **Downloads** section. + 3. Click next to the bundle and select **Edit**. Alternatively, just double-click on the needed bundle. + 4. Make your changes in the configuration dialog and click **Save**. + + + + +### Deleting Bundles + +To delete bundles, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Expand the **Downloads** section. + 3. Delete the bundles using one of the following methods: + * **Single bundle**: Click next to the bundle and select **Delete**. + * **Multiple bundles**: Select the checkboxes next to the bundles you want to delete, then click **Delete** in the upper-right corner of the list. + 4. Confirm the deletion in the confirmation dialog. + + + + + 1. Open your project and go to the **Download** tab. + 2. Expand the **Downloads** section. + 3. Delete the bundles using one of the following methods: + * **Single bundle**: Click next to the bundle and select **Delete**. + * **Multiple bundles**: Select the checkboxes next to the bundles you want to delete, then click **Delete** in the upper-right corner of the list. + 4. Confirm the deletion in the confirmation dialog. + + + + +## Bundles in VCS Integrations + +In file-based projects, VCS integrations allow you to work with bundles using **Target file bundles mode**. + +To configure a VCS integration in **Target file bundles mode**, follow these steps: + + + 1. Select **Target file bundles mode** when setting up your VCS integration and authorize the connection. + 2. Select the repository and branches where you want to send translations. + 3. Click to configure the selected branch. + 4. In the **Branch Configuration** dialog, enter the preferred name for your configuration file or keep the default. Click **Continue**. + 5. Select the bundles you want to sync from the list. You can use the **Search bundles** field to find specific ones, or click **Create new** to set up a new bundle. + 6. Click **Save** in the **Branch Configuration** dialog. + 7. Click **Save** in the main integration dialog to complete the VCS integration setup. VCS Target File Bundles Mode + + + + + + Read more about [configuring VCS integrations online](/configuring-vcs-integrations-online/). + + +## Bundles in CDN Distributions + +In both file-based and string-based projects, **CDN Distributions** allow you to deliver translated content to your application via a Content Delivery Network (CDN). Distributions work by using bundles to package and serve your files. + + + +## Bundles in CLI/API + +You can also export translations using bundles when working with Crowdin CLI and API. + + + + + diff --git a/src/content/docs/da/crowdin/project-management/translations/downloading-translations.mdx b/src/content/docs/da/crowdin/project-management/translations/downloading-translations.mdx new file mode 100644 index 00000000..58787ce1 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/translations/downloading-translations.mdx @@ -0,0 +1,120 @@ +--- +title: Download af oversættelser +description: Learn how to download translations from your project +slug: downloading-translations +sidebar: + order: 0 +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import KBD from '~/components/KBD.astro'; +import { Image } from 'astro:assets'; +import buildProject from '!/crowdin/project-management/translations/build_project.png'; +import buildLanguage from '!/crowdin/project-management/translations/build_language.png'; +import downloadFileEditor from '!/crowdin/project-management/translations/download_file_editor.png'; +import downloadFileLanguagePage from '!/crowdin/project-management/translations/download_file_language_page.png'; +import downloadLanguage from '!/crowdin/project-management/translations/download_language.png'; +import previewTranslations from '!/crowdin/project-management/translations/preview_translations.png'; + +You can download translations from your Crowdin project using and combining various options like the Web UI, Console Client (CLI), API, and integrations. + +## Projektoversættelses-download + +To download translations for the whole project, follow these steps: + + + 1. Open your project and go to the **Translations** tab. + 2. Click **Download as ZIP** to expand the respective section. + 3. Click **Build & Download**. Build project + + + + +By default, the downloaded ZIP archive contains separate folders for each language. These folders are named with the corresponding [Language Codes](/developer/language-codes/). + + + +## Sprogoversættelses-download + +To download translations for a separate target language, follow these steps: + + + 1. Open your project and go to the **Translations** tab. + 2. Click **Download as ZIP** to expand the respective section. + 3. Select the needed language from the drop-down menu. + 4. Click **Build & Download**. Build Language + + +Alternatively, you can also do this in the **Dashboard** tab: + + + 1. Open your project and go to the **Dashboard** tab. + 2. Click on the drop-down toggle toward the needed language to open language details. + 3. Click **Download**. Download Language + + +## Filoversættelses-download + +You can download translations for a separate file either on the language page or in the Editor. To download translations for a separate file on the language page, follow these steps: + + + 1. Open your project and select the target language. + 2. Click toward the needed file. + 3. Select **Download**. Download File on Language Page + + +To download translations for a separate file in the [Editor](/online-editor/), follow these steps: + + + 1. Open your project and select the target language. + 2. Click on the needed file to open it in the Editor. + 3. Go to **File** in the main menu, and select **Download**. Download File Translations in Editor + + + + +## Målfil-pakker + +The Downloads section allows you to manage bundles for exporting sets of strings in one of the selected formats. + + + Read more about [configuring bundles](/bundles/#managing-bundles-in-ui). + + +## CDN Distributions + +The CDN Distributions section allows you to set up and manage instant translation delivery to your mobile (iOS, Android), server, web, or desktop apps via CDN. + + + Read more about [CDN Distributions](/cdn-distributions/). + + +## Preview Translations + +To preview translations for a whole project, follow these steps: + + + 1. Open your project and go to the **Translations** tab. + 2. Choose one of the available options in the **Preview translations** section: + * **CSV** – download all project translations in a single CSV file. + * **XLSX** – download all project translations in a single XLSX file. + + +Preview Translations + +## Se også + + + + + + + diff --git a/src/content/docs/da/crowdin/project-management/translations/uploading-translations.mdx b/src/content/docs/da/crowdin/project-management/translations/uploading-translations.mdx new file mode 100644 index 00000000..212382e4 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/translations/uploading-translations.mdx @@ -0,0 +1,149 @@ +--- +title: Upload af eksisterende oversættelser +description: Learn how to upload existing translations to your project +slug: uploading-translations +sidebar: + order: 1 +--- + +import { Aside, CardGrid, LinkCard, Tabs, TabItem, Steps } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import uploadTranslations from '!/crowdin/project-management/translations/upload_translations.png'; +import uploadTranslationsSb from '!/crowdin/project-management/translations/upload_translations_sb.png'; +import uploadTranslationsConfigure from '!/crowdin/project-management/translations/upload_translations_configure.png'; +import uploadTranslationsLanguagePage from '!/crowdin/project-management/translations/upload_translations_language_page.png'; +import uploadTranslationsXliff from '!/crowdin/project-management/translations/upload_translations_xliff.png'; +import uploadTranslationsEditorMenu from '!/crowdin/project-management/translations/upload_translations_editor_menu.png'; +import uploadTranslationsEditorGrid from '!/crowdin/translation-process/download_upload_grid.png'; + +If you have existing translations ready to integrate into your Crowdin project, you can upload them directly. + +For [file-based](/creating-project/#file-based-project) projects, this can be done through the **Translations** tab or directly from a specific file in the Editor. For [string-based](/creating-project/#string-based-project) projects, use the **Upload** tab or access the target language in the Editor to upload XLIFF translations. + +Bedste praksis er at uploade oversatte filer med nøgleværdistrukturer. + + + +## Uploading Translations via Project page + +To upload translations to your project, follow these steps: + + + + + 1. Open your project and go to the **Translations** tab. + 2. Click **Upload existing translations** to expand the respective section. Upload Translations + 3. Drag and drop files from your machine, or click **Select Files**. You can upload ZIP archives to add multiple folders and files. + 4. Crowdin matcher automatisk uploadede oversættelser med de korrekte kildefiler og sprog. Tjek det manuelt for at sikre, at alt er matchet korrekt. Match Files + 5. *(Optional)* Click the button under the uploaded file list to view the advanced import settings. + + 6. Click **Import** to apply the translations to the source files. + + + + + 1. Open your project and go to the **Upload** tab. + 2. Drag and drop files from your machine, or click **Select Files**. You can also upload ZIP archives if you want a set of files to be added. + 3. Crowdin automatically tries to detect the target language to which you're uploading translations. Check it manually to make sure target languages are matched correctly towards translation files. + 4. *(Optional)* In the **Translations** section, to the right of the uploaded file list, configure advanced translation import settings. + + 5. Click **Upload** to apply translations to the source strings. + + Upload oversættelser + + + +## Uploading Translations via Language Page + + + + + 1. Vælg sprog på projektsiden. + 2. Click next to the file translations should be uploaded to. + 3. Select **Upload Translations**. Upload Translations + + + + + + + +## Uploading Translations via Editor + +To upload a file with translations via [Online Editor](/online-editor/), go to **File** in the main menu, and select **Upload Translations**. + +Upload Translations in Editor + +If you are in the [Multilingual (Grid)](/online-editor/#multilingual-mode-grid) mode of the Editor, click the drop-down arrow next to a target language’s column and select **Upload Translations**. Upload Translations from the Multilingual (Grid) mode + +## Uploading XLIFF Translations + +You can do the offline translation for all file formats and strings by downloading existing content in the XLIFF format; once the offline translations are finished, use **Upload XLIFF Translations**. + +To upload XLIFF translations for a specific target language, follow these steps: + + + 1. Vælg sprog på projektsiden. + 2. Click and select **Upload XLIFF Translations**. Upload Translations XLIFF + + +For string-based projects, you can upload XLIFF translations using the [Online Editor](#uploading-translations-via-editor). + +## Nøgleværdiformater + +You can easily upload translations for source files with a key-value structure. + +This includes the following file formats: Android XML, macOS/iOS Strings, Stringsdict, JSON, Chrome JSON, GO JSON, i18next JSON, FBT JSON, XLIFF, XLIFF 2.0, Java Properties, Play Properties, Java Properties XML, RESX, RESW, RES JSON, YAML, INI, Joomla INI, JS, FJS, PO, TS, QT TS, TOML, Coffee, XAML, SRT, VTT, VTT2, SBV, SVG, DTD, CSV, RC, WXL, Haml, XLSX, PLIST, PHP, ARB, VDF. + +The system maps uploaded translations according to the string keys. + +## Tekst- og HTML-baserede formater + +For files that do not have a defined structure, translation upload is handled by an experimental machine learning technology. + +This includes the following file formats: HTML, Front Matter HTML, Markdown, Front Matter Markdown, TXT, Generic XML, Web XML, DOCX, HAML, IDML, DITA, Wiki, and ADOC. + +To achieve the best results, we recommend uploading translation files with the same or as close as possible file structure as in source files. + +Denne funktion er p.t. tilgængelig for flg. sprog (uafhængigt af sprogparkombinationen): arabisk, engelsk, fransk, hollandsk, italiensk, japansk, kinesisk forenklet/traditionel, koreansk, polsk, portugisisk-brasiliansk, russisk, spansk, thailandsk, tysk og tyrkisk. + + + + + + +## Upload Summary + +After uploading a translation file, an initial summary appears showing the basic import statistics (e.g., Imported, Approved, Skipped). + +Depending on where you upload the file, this initial summary will look slightly different: + +* **From the Translations tab:** A pop-up notification will appear with a **View Detailed Report** button. +* **From a language page or the Editor:** A dialog window will appear with **Close**, **View Detailed Report**, and **Reload** buttons. Click **Reload** to update the translation progress displayed on the page. + +### Detailed Report (Import Translations Statistic) + +From the initial summary, click **View Detailed Report** to open the **Import Translations Statistic** dialog. This report provides a full breakdown of the import and is organized into three clickable tabs at the top: + +* **Translations added** +* **Translations approved** +* **Translations skipped** + +You can click on each tab to view details for the affected files and languages. + +The **Translations skipped** tab provides a categorized breakdown of all translations that were not imported. Common reasons for skipped translations include: + +* **Translation equals source** – The translation was identical to the source text. +* **Hidden strings** – The translations were for strings that are currently hidden in the project. +* **QA check** – The translation failed one or more quality assurance checks. The report will show a sub-list of the specific QA issue types (e.g., *Duplicate translation*, *Numbers mismatch*, etc.) based on the QA checks configured in [**Settings > QA Checks**](/project-settings/qa-checks/#qa-check-parameters). + +For advanced troubleshooting, click the **Service Logs** link in the top-right corner of the **Import Translations Statistic** dialog. This will redirect you to the **Upload translations Log Details** page (located in **Tools > Service Logs**), which displays the technical details of the import, including a message, date/time, and details in JSON format. diff --git a/src/content/docs/da/crowdin/project-management/webhooks.mdx b/src/content/docs/da/crowdin/project-management/webhooks.mdx new file mode 100644 index 00000000..8c109057 --- /dev/null +++ b/src/content/docs/da/crowdin/project-management/webhooks.mdx @@ -0,0 +1,117 @@ +--- +title: Webhooks +description: Integrate Crowdin with your services by configuring webhooks +slug: webhooks +--- + +import { Image } from 'astro:assets'; +import { Aside, Steps } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import webhooksAdd from '!/crowdin/project-management/webhooks_add.png'; +import webhooksEditDelete from '!/crowdin/project-management/webhooks_edit_delete.png'; +import webhooksCallsHistory from '!/crowdin/project-management/webhooks_calls_history.png'; + +Webhooks allow you to receive information about the key events that happen in your Crowdin project, like completed translations or proofreading. After you configure a webhook, Crowdin will start sending POST or GET requests with data to the webhook URL via HTTP. + + + +## Brugsstudier + +Webhooks kan tilføjes til at bygge integrationer med tjenesterne eller en backend. F.eks.: + +* Opsæt en webhook for at sende notifikationer til systemet, der bruges. +* Pass information to the third-party services with the specific request requirements (for example, HTTP method, content type). +* Opret tilpassede integrationer med Crowdin. + +## Events + +You can configure webhooks for different events that occur in the project, e.g., when a file is translated, proofread, or when a string is added or updated. + + + Read more about [Webhook Events](/developer/webhooks/#events) on Crowdin Developer Portal. + + +## Tilføjelse af Webhooks + +To configure webhooks in Crowdin, follow these steps: + + + 1. Open your project and go to the **Tools** tab (for Account-level webhooks, open your **Account Settings**). + 2. Select **Webhooks** and click **Add Webhook**. + + +Tilføj Webhook + +Flg. oplysninger skal angives til registrering af en webhook: + +* The webhook name (for example, “App Project Translated”). +* Begivenhederne, som skal overføres URL'en. Der kan enten vælges én begivenhed eller et bestemt sæt af begivenheder. +* The URL to which the webhook callbacks are sent as direct requests. Redirects are not supported and will result in a failed delivery. The endpoint must return a `2XX` response within **30 seconds**. +* The request method that indicates the desired action to be performed for a given resource (use either `GET` or `POST`). +* The content type for the POST request method (`multipart/form-data`, `application/json`, or `application/x-www-form-urlencoded`). + * For the `application/json` content type, you can select **Batch webhooks** to merge multiple events into a single request. + +Alternativt kan der føjes særlige headers til webhook'en. De kan bruges til ekstra sikkerhed som en godkendelsesmetode og meget mere. For example, if you add headers, your webhook endpoint can check them to ensure that information is coming from Crowdin. + + + + + +Depending on your approach to webhook management, you might need to add dedicated Crowdin IP addresses to your firewall to allow Crowdin to open the pre-configured webhook URLs. + + + Read more about [IP Addresses](/developer/ip-addresses/#webhooks-ai-providers-and-mt-engines). + + +## Tilpassede payloads + +Each event type in Crowdin has a specific payload format with the relevant event information. Webhook-indholdsdata kan tilpasses for at tilføje og organisere elementerne jf. aktuelle systemtkrav. + +To check the event's possible variables, hover over the *Info* icon in the *Payload* section's right upper corner. + +## Redigere eller Slette Webhooks + +Within a specific project, you can access and manage configured webhooks by editing or deleting them directly from the displayed list. + +Redigere eller Slette Webhooks + +## Kaldhistorik + +In the **Calls History** section, you can view the list of calls of all the configured webhooks. Use the filter to view all or only unsuccessful webhook notifications. + +Kaldhistorik + +## Failing Webhooks + +Webhooks that fail 100 or more times in the last 24 hours with response codes in the 4xx or 5xx ranges are automatically disabled. + +### Disabled Webhooks + +Disabled webhooks are listed in the **Webhooks** section with a cleared check mark, indicating that they are currently inactive due to persistent failures. To discover more about failed webhooks, navigate to the **Calls History > Unsuccessful** section. Here you can explore detailed information about the issues encountered by each failed webhook. + +### Manual Re-enabling + +Once you have identified and resolved the cause of the webhook failures, you can manually re-enable the webhooks to restore their functionality. In the **Webhooks** section, locate the disabled webhook and select it for re-enabling. + +## Sende Webhooks til Slack + +With the help of Crowdin webhooks, you can send notifications about pre-configured event types directly to a specific Slack channel. + +Opret en simpel Slack-app for at opsætte afsendelse fra webhooks til Slack. + + + Read more about [Sending messages to Slack using Incoming Webhooks](https://api.slack.com/messaging/webhooks). + + +As soon as you create and configure your Slack app, you'll have a Webhook URL that should be used for the Webhooks configuration in Crowdin. + + diff --git a/src/content/docs/da/crowdin/reports/contributor-reports.mdx b/src/content/docs/da/crowdin/reports/contributor-reports.mdx new file mode 100644 index 00000000..94f59813 --- /dev/null +++ b/src/content/docs/da/crowdin/reports/contributor-reports.mdx @@ -0,0 +1,473 @@ +--- +title: Bidragsyderrapporter +description: Estimate and count the price of your contribution to the project +slug: contributor-reports +sidebar: + order: 1 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import translatorsProjectStatus from '!/crowdin/reports/reports_translators_project_overview.png'; +import translatorsDashboard from '!/crowdin/reports/reports_translators_dashboard.png'; +import costEstimateGenerating from '!/crowdin/reports/reports_translators_cost_estimate_generating.png'; +import addTmMatchType from '!/crowdin/reports/reports_cost_estimate_add_tm_match_type.png'; +import addCustomRates from '!/crowdin/reports/reports_add_custom_rates.png'; +import myContributionGenerating from '!/crowdin/reports/reports_my_contribution_generating.png'; +import addMtMatchType from '!/crowdin/reports/reports_add_mt_match_type.png'; +import topMembers from '!/crowdin/reports/reports_translators_top_members.png'; +import archiveViewing from '!/crowdin/reports/reports_translators_archive_viewing.png'; + +As a translator or a proofreader, you can estimate and count the price of your contribution to the project and view your position in the Top Members list. You can also view the progress of the project and track contributions over a specific period of time. For this, open the project and go to the **Reports** tab. + +Projektoversigt + +## Projektoversigt + +Use this section to get a summary of the project's volume and monitor translation and proofreading activities over selected time periods. In the upper-right corner, you can select a report unit (*words*, *strings*, *characters*, or *characters with spaces*) that will apply to all reports in this section. The comparisons shown in percentage are counted by comparing the chosen period of time to the same previous period of time (e.g., if you select a month, the current month is compared to the previous one). + +To download reports for further analysis or record-keeping, click **Export** and select the preferred format (CSV, XLSX, or JSON). + +In the reports that feature interactive graphs, you can hover over data points for more detailed information, such as daily or monthly totals for each category. + +The top of the page displays the primary statistics for the project's volume: + +* *Translatable*: The total amount of text available for translation. +* *Hidden*: The total amount of text in hidden strings. +* *Total*: The total amount of text in the project (*Translatable* + *Hidden*). +* *Translation to*: The number of target languages in the project. + +Below the main statistics, the **Overview** section contains the following report: + +### Activity Summary + +This report tracks the overall translation and proofreading activity in the project. You can filter the data by **Date Range** and **Language**. The report is split into two main parts: **Translation** and **Proofreading**. + +Each part displays the total work completed during the selected period with a percentage comparison to the previous period. You can expand the **Breakdown by Language** section in each part to view a table of the same metrics broken down by target language. + + + +#### Oversættelse + +This section shows the volume of translated text, broken down by the following key metrics: + +* *Total (end of period)* +* *Human Translation* +* *Translation Memory* +* *Machine Translation* +* *AI* + +The **Translation** graph below the metrics displays multiple lines simultaneously for each translation type. By hovering over the data points, you can view daily or monthly totals for each category. + +#### Korrekturlæsning + +This section shows the volume of approved text and voting activity. The main metric displayed is *Approved* words. + +The **Proofreading** graph visualizes the approval and voting activity over time, showing two distinct lines: *Approved Words* and *Votes*. By hovering over the data points, you can view the daily or monthly totals for both approved texts and votes cast. + +## Udgiftsestimering + +The Cost Estimate report allows you to calculate the approximate price of your contribution (i.e., translation or proofreading) to the project based on all or specific tasks to which you were assigned. + + + +Set the translation and approval rates to see the cost for untranslated and not approved strings within selected tasks. + +You can generate a Cost Estimate report based on the following filter parameters: + +* Task: All tasks, or a specific task. + + + +### Rapportgenerering {#generating-cost-estimate} + +To generate the Cost Estimate report, follow these steps: + + + 1. Select the preferred currency and the report unit (words, strings, characters without spaces, or characters with spaces). + 2. Set your [rates](#rates-cost-estimate) for translations and approvals. + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. Click **Generate**. + + +Generating Cost Estimate + + + +#### Cost Estimate Queue {#queue-cost-estimate} + +After you click **Generate**, the Cost Estimate report is added to a shared report queue for the project and processed in the background. This ensures that multiple reports generated with different filters don’t override one another. Each report is generated separately and appears in the **Reports > Archive** section once completed. + +Reports generated by managers have higher priority in the queue. If a manager starts generating a report while a contributor’s report is still in the queue, the manager’s report will be processed first. + +When a report is added to the queue, a notification appears confirming that the report generation has been queued, with quick access to view the queue or close the message. + +While the report is being generated, a pop-up in the lower-right corner of the screen shows the queue status. The status updates automatically as the report progresses: + +* **Pending** – the report is waiting in the queue and has not started processing yet. +* **In progress** – the report generation has started. A progress bar shows the current percentage. +* **Completed** – the report has been generated successfully and can be accessed via the [Archive](#archive). +* **Failed** – an error occurred during report generation. + +Each report runs independently, so you can safely generate multiple Cost Estimate reports with different filters without affecting those that might have been started earlier and are still in progress. + +### Satser {#rates-cost-estimate} + +Der kan angives priser for Basissatser (fuld oversættelse, korrekturlæst) og opsættes Nettosatsplaner (procentdel af den fulde oversættelsessats betalt for oversættelse vha. TM-forslag). + +#### Basissatser {#base-rates-cost-estimate} + +I afsnittet Basissatser kan indstilles priser for flg. typer af arbejde: + +* **Full translation** – for each translation made by a person. + +* **Proofread** – for each approved translation. + +#### Nettosatsplaner {#net-rate-schemes-cost-estimate} + +I afsnittet Nettosatsplaner kan der ud over basissatserne indstilles procentdelen af den fulde oversættelsessats til betaling for oversættelser foretaget vha. TM-forslag fra forskellige TM-matchtyper. Som standard kan procentdelen af den fulde oversættelsessats indstilles for flg. TM-matchtyper: + +* **101 (perfect)** – for translations made using Perfect match TM suggestions (source strings are identical to TM suggestion by text and context). +* **100** – for translations made using 100% match TM suggestions (source strings are identical to TM suggestion only by text). + +Der kan også tilføjes egne TM-matchtyper med angivelse af den foretrukne procentdel af tekstlighed og procentdelen af den fulde oversættelsessats, der skal betales for en sådan oversættelse. + +Følg disse trin for at tilføje egne TM-matchtyper: + + + 1. Click in the Net Rate Schemes section. + 2. Click on the appeared button. + 3. Angiv TM-matchområdet og procentdelen af den fulde oversættelsessats. + 4. Click to save the settings. + + +Tilføjelse af TM-matchtype + +#### Tilføjelse af Tilpassede satser {#custom-rates-cost-estimate} + +If you are multilingual and work with different languages, in addition to base rates that are applied to all languages by default, you can add custom rates for specific languages. To add custom rates, click **Add custom rates**. + +To select the languages for custom rates, click **Edit Languages** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +Tilføjelse af Tilpassede satser + +#### Rate Templates + +If project managers saved multiple rate configurations, you can use them for report generation. Saved templates allow you to quickly switch between different configurations. + +Click **Templates** to view and select saved rate templates. + +### Medtag præoversatte strenge + +Select **Include pre-translated strings** if you want to include pre-translated strings in a Cost Estimate report. Denne indstilling er som standard valgt. + +For example, there is an untranslated string `Validate your username` in the project. You generate a Cost Estimate report with the **Include pre-translated strings** option selected. Denne streng medregnes så i omkostningsestimatet. Then a project manager pre-translates this string via TM or MT engine and you once again generate a Cost Estimate report with the **Include pre-translated strings** option selected. This time, the pre-translated string `Validate your username` won't be included in the Cost Estimate report. + +On the other hand, with the **Include pre-translated strings** option cleared, the string `Validate your username` will be included in the Cost Estimate report both times, when untranslated and when pre-translated via TM or MT engine. + +### Beregn Interne Fuzzy-matchninger + +Internal Fuzzy Matches are partial (fuzzy) TM matches found among untranslated strings in your project that can potentially be added to the Translation Memory. For example, if the first string in a file is `Validate your username` and the last one is `Validate your username again`, there is an internal fuzzy match. + +To include fuzzy (99% and less) internal matches, as well as perfect (101%) and 100% matches, in your Cost Estimate report and get a more comprehensive prediction of how many strings can be added to the TM if translated in sequence, select **Calculate Internal Fuzzy Matches**. Note that these calculations are approximate because the actual translation order may differ. + +If you clear **Calculate Internal Fuzzy Matches**, the Cost Estimate report will only show perfect (101%) and 100% internal matches (repetitions), and will not include any fuzzy matches. + + + +### Resultatanalyse {#result-analysis-cost-estimate} + +Når rapporten er genereret, vil flg. beløb fremgå: + +* **Total** - General cost estimate for all tasks. +* **Subtotals** - Cost estimate for each task: + * **Translation** – Cost for strings requiring new or updated translations (no high–percentage match leverage). + * **Proofreading** – Cost for reviewing translations. + * **TM Savings** – Savings from existing translations (in TM or within the project). + * **Weighted Words / Strings / Characters / Characters with Spaces** – Final word count for cost calculations after applying TM/internal match discounts. +* The main table with details on match categories and statuses. +* The second table showing data for each folder or file included in the task. + +To download the Cost Estimate report, click **Export** and select the preferred export format (CSV, XLSX, or JSON). + + + +## Topmedlemmer + +The Top Members report allows you to check your position on the list of project members and see who contributed the most to the project's translation over time. This list includes all users who have ever contributed, even if they are no longer current project members. + +Standardparametre: + +* *Text unit*: words +* *Time period*: Last 30 days +* *Sorted by*: translated text units. A member who translated the most is placed at the top of the list. +* *Languages*: all languages +* *Contributors*: all + +The **YOU** label appears next to your own username in the report table, making it easier to identify your personal contribution. + +Omsortér medlemmerne ved at klikke på den relevante parameter. For example, if you are a proofreader, you might want to know who approved most of the strings. For this, click on the *Approved* parameter to redo sorting. + +### Generating a Custom List of Top Members + +To generate a custom list of top members, follow these steps: + + + 1. Vælg den foretrukne rapportenhed (ord, strenge, tegn med eller uden mellemrum). + 2. Select the time period for which you want to see the activity of contributors. + 3. To make a list of contributors for a specific language, select the language you need from the drop-down menu above the list. Alternatively, select **All languages**. + 4. Click **Generate**. + + +To look for your account or account of any other contributor, use the search field. + +The Top Members list includes the following columns: + +* *Rank* – contributor’s position in the list based on the currently selected sorting criteria (e.g., *Translated*, *Approved*, etc.). +* *Name* – contributor's first name, last name and username. +* *Languages* – project languages. +* *Translated* – the number of translated source content units. +* *Target* – the number of translated content units in a target language. +
This parameter is not available for the *Strings* content unit because the number of source and translated strings is always the same. +* *Approved* – the number of approved content units. +* *Voted* – the number of votes a contributor made. +* *"+" votes received* – the number of upvotes a contributor received for translations. +* *"-" votes received* – the number of downvotes a contributor received for translations. +* *Winning* – the number of approvals a contributor received for translations. +* *Given access* – indicates when a member was granted access to a project. + +To customize the visibility of columns in the report, click at the upper-right side of the table and select the preferred ones. + +Topmedlemmer + +## Mit bidrag + +The My Contribution report allows you to calculate the price of your contribution (i.e., translation or proofreading) to the project. + +You can generate a My Contribution report based on the following filter parameters: + +* Task: Not selected, All Tasks, or specific task. +* Date Range: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. +* Files: All files (including deleted files and strings) or Selected files (including deleted strings). + +### Rapportgenerering {#generating-my-contribution} + +Følg disse trin for at generere Min Bidragsrapport: + + + 1. Select the preferred currency and the report unit (words, strings, characters without spaces, or characters with spaces). + 2. Set your [rates](#rates-my-contribution) for translations and approvals. + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. Click **Generate**. + + +Generating My Contribution + + + + + +### Satser {#rates-my-contribution} + +Der kan angives priser for Basissatser (fuld oversættelse, korrekturlæst) og opsættes Nettosatsplaner (procentdel af den fulde oversættelsessats betalt for oversættelse vha. TM- og MT-forslag samt eksisterende oversættelser). + +#### Basissatser {#base-rates-my-contribution} + +I afsnittet Basissatser kan indstilles priser for flg. typer af arbejde: + +* **Full translation** – for each translation you made. + +* **Proofread** – for each approved translation. + +#### Nettosatsplaner {#net-rate-schemes-my-contribution} + +I afsnittet Nettosatsplaner kan der ud over basissatserne angives procentdelen af den fulde oversættelsessats til betaling for oversættelser foretaget vha. TM- og MT-forslag samt andre oversættelser af forskellige matchtyper. + +By default, you can configure the percentage of the full translation rate for the following match type categories: + +**TM Match types:** + +* **101 (perfect)** – for translations made using Perfect match TM suggestions (source strings are identical to TM suggestion by text and context). +* **100** – for translations made using 100% match TM suggestions (source strings are identical to TM suggestion only by text). + +**MT Match types:** + +* **100** – for translations made using 100% match MT suggestions (new suggested translations are identical to MT suggestion). + +**AI Match types:** + +* **100** – for translations made using 100% match AI suggestions (new suggested translations are identical to AI suggestion). + +**Other translations types:** + +* **100** – for translations made using existing translations (new suggested translations are identical to the existing translations). + +Har en streng en kombination af TM-/MT-forslag og eksisterende oversættelser, medregnes den nye oversættelse med den laveste Nettosatsplanværdi. Har en streng f.eks et 101% (perfekt) TM-matchforslag (10% af den fulde oversættelsessats) og et 100% MT-matchforslag (5% af den fulde oversættelsessats), medregnes nye oversættelse føjet til denne streng med 5% af den fulde oversættelsessat. + +Der kan også tilføjes egne TM-, MT- og Andre oversættelsesmatchtyper med angivelse af den foretrukne procentdel af tekstlighed og procentdelen af den fulde oversættelsessats til betaling for en sådan oversættelse. + +Følg disse trin for at tilføje egne matchtyper: + + + 1. Click in the Net Rate Schemes section. + 2. Click on the appeared button. + 3. Angiv matchområdet og procentdelen af den fulde oversættelsessats. + 4. Click to save the settings. + + +Tilføjelse af MT-/Anden matchtype + +#### Tilføjelse af Tilpassede satser {#custom-rates-my-contribution} + +If you are multilingual and work with different languages, in addition to base rates that are applied to all languages by default, you can add custom rates for specific languages. To add custom rates, click **Add custom rates**. + +To select the languages for custom rates, click **Edit Languages** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +Tilføjelse af Tilpassede satser + +### Using Additional My Contribution Options + +* **Exclude Approvals for Edited Translations:** select this option to exclude approvals when the same user has translated the string. + +* **Pre-Translated Strings Categorization Adjustment:** select this option to have repetitive translations of pre-translated strings categorized under TM or MT match rates, rather than the default Other suggestion match rates. + +### Resultatanalyse {#result-analysis-my-contribution} + +Når rapporten er genereret, vil flg. beløb fremgå: + +* **User Information** - profile picture, full name, and username. +* **Total** - General cost for all contributions. +* **Language Subtotals** - A breakdown of costs for each target language: + * **Savings** - The amount saved with leveraged matches from TM, MT, or AI. + * **Weighted Words / Strings / Characters / Characters with Spaces** – Shows the adjusted metric after applying repetitions and fuzzy matches, reflecting the actual translation effort. + * **Pre-translated Words / Strings / Characters / Characters with Spaces** - Shows how many units were pre-translated. +* The table containing a further breakdown of work types (Translation & Post-editing and Proofreading) and match types (No Match, TM Match, MT Match, AI Match, Other translations Match). + +To download the My Contribution report, click **Export** and select the preferred export format (CSV, XLSX, or JSON). + +If you want to regenerate the report with other rates, edit the rates and follow the procedure again. + +## Time Spent + +The **Time Spent** report allows you to calculate the price of your contribution (i.e., translation or proofreading) to the project based on the time you spend on tasks. + +The report uses the [time you logged](/user-tasks/#logging-time-spent-on-a-task) directly in a task's comments. + +You can generate a **Time Spent** report based on the following filter parameters: + +* **Task**: Not selected, All Tasks, or multiple specific tasks. +* **Date Range**: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. +* **Language**: All or specific target language. +* **Task Type**: All types, Translate, Proofread, Translate by vendor, or Proofread by vendor. +* **Group by**: Member, Language, or Task. + +### Rapportgenerering {#generating-time-spent} + +To generate the **Time Spent** report, follow these steps: + + + 1. Select the preferred currency. + 2. Set your [rates](#rates-time-spent). + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. Click **Generate**. + + + + +### Satser {#rates-time-spent} + +You can set the hourly prices for your work. Unlike the **My Activity** report, the unit for the **Time Spent** report is fixed to **hour**. + +#### Base Rate {#base-rate-time-spent} + +In the **Base Rate** section, you can set the hourly rate that will be applied to all work types (translation and proofreading) you do in the project. + +#### Tilføjelse af Tilpassede satser {#custom-rates-time-spent} + +If you are multilingual and work with different languages, you can add custom rates for specific languages. To add custom rates, click **Add custom rates**. + +To select the languages for custom rates, click **Edit Languages** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +#### Rate Templates {#rate-templates-time-spent} + +If project managers have saved multiple rate configurations, you can use them for report generation. Click **Templates** to view and select saved rate templates. + + + +### Resultatanalyse {#result-analysis-time-spent} + +Når rapporten er genereret, vil flg. beløb fremgå: + +* **User Information** - profile picture, full name, and username. +* **Total** - The total calculated cost and total time spent for your contribution during the selected time period. +* **Language Subtotals** - The report shows a breakdown of costs for each target language: + * **Time Spent** - The total time you logged for the work in a specific language. + * **Rate per hour** - The hourly rate applied (based on your configured [Base Rate](#base-rate-time-spent) and [Custom Rates](#custom-rates-time-spent)). + * **Price** - The total cost calculated for the work in that language. + +To download the **Time Spent** report, click **Export** and select the preferred format (CSV, XLSX, or JSON) for further analysis or record-keeping. + + + +## Arkiv + +The Archive section allows you to access the records of previously generated Cost estimate and My Contribution reports, providing a convenient way to review historical data. + +Dette afsnit eliminerer også behovet for at vente på, at en rapportgenerering bliver færdig. Man kan indlede en rapportgenerering, og så vende tilbage til den senere, når belejligt. I Arkiv kan rapportresuméet gennemgås og om ønsket downloades i forskellige understøttede filformater. + +Each project has its own independent archive section. As a contributor, you can view, export, and delete only the reports you generated yourself. + +### Visning af Tidligere genererede rapporter + +Følg disse trin for at se resuméerne af de tidligere genererede rapporter (dvs. arkivposter): + + + 1. Open the project and go to **Reports > Archive**. + 2. Klik på navnet på den ønskede arkivpost. + 3. Når arkivrapportposten åbnes, kan alle ønskede data ses. + + +Visning af Tidligere genererede rapporter + +### Eksport af Tidligere genererede rapporter + +Følg disse trin for at eksportere tidligere genererede rapporter: + + + 1. Open the project and go to **Reports > Archive**. + 2. Click on the needed report in the list. + 3. Klik på det foretrukne fileksportformat. + + +### Sletning af Tidligere genererede rapporter + +Følg disse trin for at slette tidligere genererede rapporter: + + + 1. Open the project and go to **Reports > Archive**. + 2. Click on the needed report in the list. + 3. Click **Delete**. + diff --git a/src/content/docs/da/crowdin/reports/project-reports.mdx b/src/content/docs/da/crowdin/reports/project-reports.mdx new file mode 100644 index 00000000..26689001 --- /dev/null +++ b/src/content/docs/da/crowdin/reports/project-reports.mdx @@ -0,0 +1,858 @@ +--- +title: Projektrapporter +description: View your project status and various localization reports +slug: project-reports +sidebar: + order: 0 +--- + +import { Image } from 'astro:assets'; +import Include from '~/components/Include.astro'; +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import projectOverview from '!/crowdin/reports/reports_project_overview.png'; +import costEstimateGenerating from '!/crowdin/reports/reports_cost_estimate_generating.png'; +import addTmMatchType from '!/crowdin/reports/reports_cost_estimate_add_tm_match_type.png'; +import addCustomRates from '!/crowdin/reports/reports_add_custom_rates.png'; +import translationCostGenerating from '!/crowdin/reports/reports_translation_cost_generating.png'; +import addMtMatchType from '!/crowdin/reports/reports_add_mt_match_type.png'; +import addCustomRatesTranslationCost from '!/crowdin/reports/reports_translation_cost_add_custom_rates.png'; +import costEstimateGenerated from '!/crowdin/reports/reports_cost_estimate_generated.png'; +import translationCostGenerated from '!/crowdin/reports/reports_translation_cost_generated.png'; +import preTranslationAccuracyGenerated from '!/crowdin/reports/reports_pre_translation_accuracy_generated.png'; +import translatorAccuracyGenerated from '!/crowdin/reports/reports_translator_accuracy_generated.png'; +import topMembers from '!/crowdin/reports/reports_top_members.png'; +import archiveViewing from '!/crowdin/reports/reports_archive_viewing.png'; + +To view your project status, assess the effectiveness of pre-translation methods, estimate and count the translation cost, keep track of the most active members, and view historical data of previously generated reports, open your project and go to the **Reports** tab. + +Projektoversigt + +## Projektoversigt + +Use this section to get a comprehensive summary of your project's health, monitor key activities, and track progress over selected time periods. In the upper-right corner, you can select a report unit (*words*, *strings*, *characters*, or *characters with spaces*) that will apply to all reports in this section. The comparisons shown in percentage are counted by comparing the chosen period of time to the same previous period of time (e.g., if you select a month, the current month is compared to the previous one). + +To download reports for further analysis or record-keeping, click **Export** and select the preferred format (CSV, XLSX, or JSON). + +In the reports that feature interactive graphs, you can hover over data points for more detailed information, such as daily or monthly totals for each category. + +The top of the page displays the primary statistics for your project's volume: + +* *Translatable*: The total amount of text available for translation. +* *Hidden*: The total amount of text in hidden strings. +* *Total*: The total amount of text in the project (*Translatable* + *Hidden*). +* *Translation to*: The number of target languages in the project. + +Below the main statistics, the **Overview** section contains the following reports: + +### Activity Summary + +This report tracks the overall translation and proofreading activity in the project. You can filter the data by **Date Range**, **Language**, and **Member**. The report is split into two main parts: **Translation** and **Proofreading**. + +Each part displays the total work completed during the selected period with a percentage comparison to the previous period. You can expand the **Breakdown by Language** section in each part to view a table of the same metrics broken down by target language. + + + +#### Oversættelse + +This section shows the volume of translated text, broken down by the following key metrics: + +* *Total (end of period)* +* *Human Translation* +* *Translation Memory* +* *Machine Translation* +* *AI* + +The **Translation** graph below the metrics displays multiple lines simultaneously for each translation type. By hovering over the data points, you can view daily or monthly totals for each category. + +#### Korrekturlæsning + +This section shows the volume of approved text and voting activity. The main metric displayed is *Approved* words. + +The **Proofreading** graph visualizes the approval and voting activity over time, showing two distinct lines: *Approved Words* and *Votes*. By hovering over the data points, you can view the daily or monthly totals for both approved texts and votes cast. + +### Translation Savings Summary + +Use this report to review the savings achieved by using Translation Memory (TM), Machine Translation (MT), and Artificial Intelligence (AI). + +You can filter the data by **Date Range**, **Language**, **Member**, and **Files** or **Branches** depending on the project type. Clicking the **Files/Branches** filter opens a dialog with two options: **All files/branches** (selected by default) and **Selected files/branches**. When you choose **Selected files/branches**, a file tree appears in the dialog where you can browse and adjust your selection, then click **Save** to confirm. The report uses a **Rates template** to calculate savings. By default, it uses the **Default Net Rate Scheme**, but you can select a custom template to reflect specific agreements. + +Using the **Mode** dropdown, you can switch between viewing the data as **%** (percentage) or **currency**. + + + +The **Translation Savings** section displays the **Total** savings as a percentage or in currency for the selected period, along with a breakdown of savings from **Translation Memory**, **Machine Translation**, and **AI**. + +The bar chart below visualizes these savings over time. Savings are calculated for each string only once, upon the first manual contribution (a new translation or an approval). This also includes approving a translation that originated from a Pre-translation (in this case, the saving is attributed to the date and method of the pre-translation). + +If a string has a combination of TM and MT/AI suggestions available, the new contribution is counted towards the category with the highest potential saving value. + +Hovering over the bars provides detailed information on savings per method on a daily or monthly basis. For a more granular view, you can also expand the **Breakdown by Language** section to see a table of savings for each specific language. + +#### Default Net Rate Scheme + +The **Default Net Rate Scheme** is the standard, built-in template used for calculation if no custom template is selected. This scheme defines savings based on a tiered "Net Rate" model, which reflects industry standards where not all matches provide equal value. + +For example, a low-percentage fuzzy match (e.g., below 75%) is often reworked entirely by a translator. Therefore, this scheme considers such matches to provide **0%** savings, even though a match was suggested. + +The default scheme is divided into two categories, each with its own rates: + +**Saving Rates: TM** + +| Match Type | Net Rate | Saving | +| ---------------------------------------- | -------- | ------ | +| Perfect Match / Approval Without Changes | 5% | 95% | +| 100% / Approval Without Changes | 15% | 85% | +| 95-99% Fuzzy Match | 35% | 65% | +| 85-94% Fuzzy Match | 55% | 45% | +| 75-84% Fuzzy Match | 75% | 25% | +| \< 75% Fuzzy Match | 100% | 0% | + +**Saving Rates: MT / AI** + +| Match Type | Net Rate | Saving | +| ------------------------ | -------- | ------ | +| Approval Without Changes | 10% | 90% | +| 99-90% | 30% | 70% | +| 89-70% | 50% | 50% | +| 69-50% | 75% | 25% | +| \< 50% | 100% | 0% | + +Here are a few examples of how savings are calculated based on these default rates: + +* **TM Example:** A 10-word string is translated using a **95-99% Fuzzy Match** from your TM. According to the table, this match type has a saving of **65%**. Therefore, the report will count **6.5 words** (10 words \* 65%) as saved. +* **MT/AI Example (Approval):** A 10-word string is pre-translated by an MT engine. A proofreader reviews and approves it without making any changes. This action falls into the **Approval Without Changes** category, which has a saving of **90%**. The report will count **9 words** (10 words \* 90%) as saved. +* **MT/AI Example (Manual Edit):** A 10-word string has an MT suggestion. A translator edits the suggestion (or writes their own translation). The system compares the translator's *final saved translation* to the *original MT suggestion* and finds they are **80% similar**. This action falls into the **89-70%** match category, which has a saving of **50%**. The report will count 5 words (10 words \* 50%) as saved. +* **No Savings Example:** A 10-word string has a **\< 75% Fuzzy Match**. According to the TM table, this provides **0%** saving. Even though there was a match, it's not counted as a saving in the report, as it likely required a full re-translation. + +### Source Content Updates + +This report tracks changes made to the source content over a selected time frame. You can filter the data by **Date Range**. The report displays the **Total (end of period)** volume of text, along with specific metrics for content that has been **Added**, **Deleted**, or **Modified**. + + + +The bar graph helps you visualize when the most significant content updates occurred. By hovering over the bars, you can see the specific changes that occurred each day or month. + +### QA Check Issues + +This report provides insights into the automated Quality Assurance (QA) checks, highlighting potential inconsistencies in translations. You can filter the data by **Date Range** and **Language**. + + + +Key metrics include: + +* *New (Period)*: The number of new QA issues found within the selected period. +* *Total (end of period)*: The total number of unresolved QA issues at the end of the selected period. +* *Per 1000 words*: The density of QA issues relative to the word count. This metric includes approved content and is only shown if the total word count is greater than 1000. +* *Content with Issues*: The volume of text that contains QA issues, including approved content. +* *Content with Issues Rate*: The percentage of text that has QA issues, including approved content. + +Below the metrics, the report also features several additional components: + +* **Breakdown by Language**: An expandable section that shows a table of the key metrics broken down by each target language. +* **Issues Trend**: A line graph that monitors the total number of QA issues over time. You can hover over data points to see the total number of issues for a specific day. +* **Issues by languages**: A heatmap-style table that visualizes the distribution of QA issue types (e.g., *Spelling mistakes*, *Consistent terminology*) across all target languages. You can hover over a cell to see the precise number of issues for that specific language and type. + +### Anmeldte problemer + +This report tracks issues manually created by project members to report problems or ask questions. You can filter the data by **Date Range** and **Issue Type**. The main metrics show the *Total*, *Created*, and *Resolved* issues, each with a comparison to the previous period. + +This report consists of the following components: + +* **Issues by Type**: A table showing the total, created, and resolved counts for each issue category (e.g., *General question*, *Current translation is wrong*). +* **Incorrect Translations by Language**: A table focusing on the *Current translation is wrong* issue type, breaking down the numbers by language. +* **Cumulative Created vs Resolved Issues**: A line graph that visualizes the cumulative number of created versus resolved issues. +* **Average Resolution Time by Issue Type**: A bar chart showing the average time in days it takes to resolve each type of issue. +* **Top Reporters & Resolvers**: A leaderboard of members who have reported and resolved the most issues, with sortable columns for *Name*, *Issues Reported*, and *Issues Resolved*. + +### Project Members + +This report helps you monitor the activity and changes among your project members, which can help managers assess the level of engagement. You can filter the data by **Date Range**. The report displays key metrics about your member base for the selected period, including: + +* *Total (end of period)*: The total number of members in the project. +* *Active*: The number of members who were active during the period. + +* *New*: The number of newly joined members. +* *Pending (end of period)*: The number of users with pending join requests (including both incoming and outgoing invitations). +* *Blocked (end of period)*: The number of blocked members. + +A graph below the metrics displays the trend of the total member count over time. + +## Udgiftsestimering + +Brug denne rapport til budgetplanlægning og opgørelse af de omtrentlige oversættelsesomkostninger. Set the translation and approval rates to see the cost for untranslated and not approved strings in the project. + +You can generate a Cost Estimate report based on the following filter parameters: + +* Task: Not selected, All tasks, or multiple specific tasks. +* Strings Added: Today, Last 7 days, Last 30 days, This month, All time, or Custom range. +* Files: All or specific files. +* Labels (Specific to [projects with labels](/project-settings/labels/)): Not selected, Strings with selected labels, or Strings without selected labels. +* Language: All languages or a specific target language. + + + +### Rapportgenerering {#generating-cost-estimate} + +To generate the Cost Estimate report, follow these steps: + + + 1. Select the preferred currency and the report unit (words, strings, characters without spaces, or characters with spaces). + 2. Set your [rates](#rates-cost-estimate) for translations and approvals. + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. Click **Generate**. + + +Generating Cost Estimate + + + +#### Cost Estimate Queue {#queue-cost-estimate} + +After you click **Generate**, the Cost Estimate report is added to a queue and processed in the background. This ensures that multiple reports generated by different users or with different filters don’t override one another. Each report is generated separately and appears in the **Reports > Archive** section once completed. + +When a report is added to the queue, a notification appears confirming that the report generation has been queued, with quick access to view the queue or close the message. + +While the report is being generated, a pop-up in the lower-right corner of the screen shows the queue status. The status updates automatically as the report progresses: + +* **Pending** – the report is waiting in the queue and has not started processing yet. +* **In progress** – the report generation has started. A progress bar shows the current percentage. +* **Completed** – the report has been generated successfully and can be accessed via the [Archive](#archive). +* **Failed** – an error occurred during report generation. + +Each report runs independently, so you can safely generate multiple Cost Estimate reports with different filters without affecting those that might have been started earlier and are still in progress. + +### Satser {#rates-cost-estimate} + +Der kan angives priser for Basissatser (fuld oversættelse, korrekturlæst) og opsættes Nettosatsplaner (procentdel af den fulde oversættelsessats betalt for oversættelse vha. TM-forslag). + +#### Basissatser {#base-rates-cost-estimate} + +I afsnittet Basissatser kan indstilles priser for flg. typer af arbejde: + +* **Full translation** – for each translation made by a person. + +* **Proofread** – for each approved translation. + +#### Nettosatsplaner {#net-rate-schemes-cost-estimate} + +I afsnittet Nettosatsplaner kan der ud over basissatserne indstilles procentdelen af den fulde oversættelsessats til betaling for oversættelser foretaget vha. TM-forslag fra forskellige TM-matchtyper. Som standard kan procentdelen af den fulde oversættelsessats indstilles for flg. TM-matchtyper: + +* **101 (perfect)** – for translations made using Perfect match TM suggestions (source strings are identical to TM suggestion by text and context). +* **100** – for translations made using 100% match TM suggestions (source strings are identical to TM suggestion only by text). + +Der kan også tilføjes egne TM-matchtyper med angivelse af den foretrukne procentdel af tekstlighed og procentdelen af den fulde oversættelsessats, der skal betales for en sådan oversættelse. + +Følg disse trin for at tilføje egne TM-matchtyper: + + + 1. Click in the Net Rate Schemes section. + 2. Click on the appeared button. + 3. Angiv TM-matchområdet og procentdelen af den fulde oversættelsessats. + 4. Click to save the settings. + + +Tilføjelse af TM-matchtype + +#### Tilføjelse af Tilpassede satser {#custom-rates-cost-estimate} + +In addition to base rates that are applied to all languages by default, you can add custom rates for specific languages. To add custom rates, click **Add custom rates**. + +To select the language or languages for custom rates, click **Edit Languages** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +Tilføjelse af Tilpassede satser + +#### Rate Templates + +If you plan to work with multiple rate configurations, save them as templates by clicking **Save as > New rates template**, then specify the template name and click **Save**. + +Når en ny skabelon gemmes, kan skabelonsynligheden vælges via flg. indstillinger: + +* **Share with all project members** – makes the template visible to all translators within the project. Uanset antallet af oversættere eller deres forskellige satser, vil de alle have adgang til skabelonen. It can include both general rates and custom rates for specific languages and translators, along with a net rate scheme. Denne gennemsigtighed fremmer klarheden i prissætningen, giver oversætterne mulighed for at gennemgå satserne, udarbejde rapporter for deres oversættelser og beregne omkostningsskøn. Den vigtigste fordel er, at oversættere forstår nettosatsplanen og kan anvende deres basissats, selv hvis den ikke er indbefattet i skabelonen. + +* **Share with managers within the owner’s projects** – makes the template global, visible only to managers across all projects of an owner. Denne indstilling strømliner satskonsistens på tværs af forskellige projekter. + +Vælges ingen af mulighederne, forbliver skabelonen kun synlig for lederene i det aktuelle projekt med begrænset adgang til en udvalgt gruppe projektmedlemmer. Disse muligheder giver fleksibilitet til at styre, hvem som kan se og bruge satsskabelonen for at imødekomme forskellige organisatoriske præferencer. + +Gemte skabeloner muliggør hurtige skift mellem forskellige opsætninger til rapportgeneration. + +Click **Templates** to view and manage your saved rate templates. + +### Medtag præoversatte strenge + +Select **Include pre-translated strings** if you want to include pre-translated strings in a Cost Estimate report. Denne indstilling er som standard valgt. + +For example, you have an untranslated string `Validate your username` in your project. You generate a Cost Estimate report with the **Include pre-translated strings** option selected. Denne streng medregnes så i omkostningsestimatet. Then you pre-translate this string via TM or MT engine and once again generate a Cost Estimate report with the **Include pre-translated strings** option selected. This time, the pre-translated string `Validate your username` won't be included in the Cost Estimate report. + +On the other hand, with the **Include pre-translated strings** option cleared, the string `Validate your username` will be included in the Cost Estimate report both times, when untranslated and when pre-translated via TM or MT engine. + +### Beregn Interne Fuzzy-matchninger + +Internal Fuzzy Matches are partial (fuzzy) TM matches found among untranslated strings in your project that can potentially be added to the Translation Memory. For example, if the first string in a file is `Validate your username` and the last one is `Validate your username again`, there is an internal fuzzy match. + +To include fuzzy (99% and less) internal matches, as well as perfect (101%) and 100% matches, in your Cost Estimate report and get a more comprehensive prediction of how many strings can be added to the TM if translated in sequence, select **Calculate Internal Fuzzy Matches**. Note that these calculations are approximate because the actual translation order may differ. + +If you clear **Calculate Internal Fuzzy Matches**, the Cost Estimate report will only show perfect (101%) and 100% internal matches (repetitions), and will not include any fuzzy matches. + + + +### Resultatanalyse {#result-analysis-cost-estimate} + +When the Cost Estimate report is generated, it displays the following details: + + + +##### Cost Summary + +* **Total** - General cost estimate for all languages (including translation, proofreading, and any TM savings). +* **Subtotals** - Cost estimate for each target language: + * **Translation** – Cost for strings requiring new or updated translations (no high–percentage match leverage). + * **Proofreading** – Cost for reviewing translations. + * **TM Savings** – Savings from existing translations (in TM or within the project). + * **Weighted Words / Strings / Characters / Characters with Spaces** – Final word count for cost calculations after applying TM/internal match discounts. + +##### Categories + +Each row in the main table represents a match category or status: + +* **Total** – Summarizes all strings, words, and characters, as well as the weighted units after match discounts and percentage of the total. + +* **TM Match (total)** – Untranslated strings matching entries in Translation Memory, often split into: + * **101% (perfect)** – Exact text and context match. + * **100%** – Exact text match, but context differs. + +* **Repetitions (total)** or **Internal Match (total)** – Untranslated strings matching other strings within the project. Displaying depends on whether **Calculate Internal Fuzzy Matches** is enabled. Subcategories (e.g., 101%, 100%, and fuzzy) depend on your Net Rate Schemes. + + + + If an untranslated string has both a 101% TM match and a 100% internal match, it counts toward TM match. + +* **No Match** – Strings with no TM or internal matches, requiring translation from scratch. + +* **Not Approved** – Translated strings that still awaiting approval. + +* **Not Translated** – Completely untranslated strings requiring full translation. + +##### Columns + +* **Strings / Words / Characters / Characters with Spaces** – Basic volume metrics. + +* **Weighted Words / Strings / Characters / Characters with Spaces** – Shows the adjusted metric after factoring in repetitions and fuzzy matches, reflecting the actual translation effort. +* **%** – Share of weighted units in each category. + +##### Folder/File Breakdown + +After the main table, each language subtotal also includes a table showing data for each folder or file, indicating how many strings are **Not Approved**, **Not Translated**, match the **TM**, match **Internal**, or have **No Match**. This helps identify where to focus your translation efforts and budget. + +##### Eksport + +To download the Cost Estimate report, click **Export** and select the preferred format (CSV, XLSX, or JSON) for further analysis or record-keeping. + +Omkostningsestimat genereret + +## Oversættelsesomkostning + +Use this report to calculate the actual translation and proofreading costs based on the volume of units completed by contributors (e.g., words). + +En Oversættelsesomkostningsrapport kan genereres baseret på flg. filterparametre: + +* Task: Not selected, All Tasks, or multiple specific tasks. +* Date Range: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. +* Files: All files (including deleted files and strings) or Selected files (including deleted strings). +* Branches (Specific to [string-based projects](/creating-project/#string-based-project)): All branches or Selected branches. +* Labels (Specific to projects with [labels](/project-settings/labels/)): Not selected, Strings with selected labels, or Strings without selected labels. +* Language: All or specific target language. +* Member: All or specific users. +* Group by: Member or language. + +### Rapportgenerering {#generating-translation-cost} + +To generate the Translation Cost report, follow these steps: + + + 1. Select the preferred currency and the report unit (words, strings, characters without spaces, or characters with spaces). + 2. Set your [rates](#rates-translation-cost) for translations and approvals. + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. *(Optional)* Clear **Save to archive** if you don't want to save the report to the [Archive](#archive). + 5. Click **Generate**. + + +Generering af Oversættelsesomkostninger + + + + + +### Satser {#rates-translation-cost} + +Der kan angives priser for Basissatser (fuld oversættelse, korrekturlæst) og opsættes Nettosatsplaner (procentdel af den fulde oversættelsessats betalt for oversættelse vha. TM- og MT-forslag samt eksisterende oversættelser). + +#### Basissatser {#base-rates-translation-cost} + +I afsnittet Basissatser kan indstilles priser for flg. typer af arbejde: + +* **Full translation** – for each translation made by a person. + +* **Proofread** – for each approved translation. + +#### Nettosatsplaner {#net-rate-schemes-translation-cost} + +I afsnittet Nettosatsplaner kan der ud over basissatserne angives procentdelen af den fulde oversættelsessats til betaling for oversættelser foretaget vha. TM- og MT-forslag samt andre oversættelser af forskellige matchtyper. + +By default, you can configure the percentage of the full translation rate for the following match type categories: + +**TM Match types:** + +* **101 (perfect)** – for translations made using Perfect match TM suggestions (source strings are identical to TM suggestion by text and context). +* **100** – for translations made using 100% match TM suggestions (source strings are identical to TM suggestion only by text). + +**MT Match types:** + +* **100** – for translations made using 100% match MT suggestions (new suggested translations are identical to MT suggestion). + +**AI Match types:** + +* **100** – for translations made using 100% match AI suggestions (new suggested translations are identical to AI suggestion). + +**Other translations types:** + +* **100** – for translations made using existing translations (new suggested translations are identical to the existing translations). + +Har en streng en kombination af TM-/MT-forslag og eksisterende oversættelser, medregnes den nye oversættelse med den laveste Nettosatsplanværdi. Har en streng f.eks et 101% (perfekt) TM-matchforslag (10% af den fulde oversættelsessats) og et 100% MT-matchforslag (5% af den fulde oversættelsessats), medregnes nye oversættelse føjet til denne streng med 5% af den fulde oversættelsessat. + +Der kan også tilføjes egne TM-, MT- og Andre oversættelsesmatchtyper med angivelse af den foretrukne procentdel af tekstlighed og procentdelen af den fulde oversættelsessats til betaling for en sådan oversættelse. + +Følg disse trin for at tilføje egne matchtyper: + + + 1. Click in the Net Rate Schemes section. + 2. Click on the appeared button. + 3. Angiv matchområdet og procentdelen af den fulde oversættelsessats. + 4. Click to save the settings. + + +Tilføjelse af MT-/Anden matchtype + +#### Tilføjelse af Tilpassede satser {#custom-rates-translation-cost} + +Ud over basissatser, anvendt for alle sprog og brugere som standard, kan tilpassede satser for bestemte sprog og brugere tilføjes. To add custom rates, click **Add custom rates**. + +To select the languages and users for custom rates, click **Edit Languages** and **Edit Users** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +Tilføjelse af Tilpassede satser + +### Using Additional Translation Cost Options + +* **Exclude Approvals for Edited Translations:** select this option to exclude approvals when the same user has translated the string. This helps ensure that your cost reporting is more accurate by avoiding the duplication of approval costs. + +* **Pre-Translated Strings Categorization Adjustment:** select this option to have repetitive translations of pre-translated strings categorized under TM or MT match rates, rather than the default Other suggestion match rates. This is useful because post-editing translations from MT engines usually requires more effort than post-editing translations from human translators, leading to a more precise and fair measure of costs related to your translators. + +### Resultatanalyse {#result-analysis-translation-cost} + +When the Translation Cost report is generated, it displays the following details: + +##### Cost Summary + +* **Total** - General translation cost (including TM, MT, and AI savings, weighted words, and pre-translated words). +* **User and Language Totals** - Below the general translation cost, the report shows totals for each user or language, depending on the selected **Group by** filter: + * **Group by Member** - Shows each translator or proofreader general translation cost (including TM, MT, and AI savings, weighted words, and pre-translated words), along with language subtotals within. + * **Group by Language** - Shows each target language general translation cost (including TM, MT, and AI savings, weighted words, and pre-translated words), along with translator or proofreader subtotals within. +* **Subtotals** - Subtotal translation cost for each target language or user: + * **Savings** - The amount saved with leveraged matches from TM, MT, or AI. + * **Weighted Words / Strings / Characters / Characters with Spaces** – Shows the adjusted metric after applying repetitions and fuzzy matches, reflecting the actual translation effort. + * **Pre-translated Words / Strings / Characters / Characters with Spaces** - Shows how many units were pre-translated. + +Within each user (or language) section, you’ll see a further breakdown of work types and match types in the tables: + +##### Translation & Post-Editing + +Each row in the Translation & Post-Editing section represents a match category or total: + +* **No Match** – No leverage from TM, MT, or AI (full rate). +* **TM Match** – Uses Translation Memory (with possible subcategories like **101% (perfect)** or **100%**). +* **MT Match** – Uses Machine Translation (e.g., **100%**). +* **AI Match** – Uses AI-based suggestions (e.g., **100%**). +* **Other translations Match** – Leverage from existing translations added by other users. +* **Total** – Summarizes all translated units under that user/language. + +##### Columns + +* **Strings / Words / Characters / Characters with Spaces** – Number of units handled at each match type. +* **Rate per unit** – The price assigned per match type (based on your configured [Net Rate Schemes](#net-rate-schemes-translation-cost) and base rates). +* **Price** – Total cost for the units × rate in that match category. + +##### Korrekturlæsning + +* **Words / Strings / Characters / Characters with Spaces** – Number of units that were proofread and approved. +* **Rate per unit** – Proofreading rate. +* **Price** – Total cost for proofread units (units × rate). + +##### Eksport + +To download the Translation Cost report, click **Export** and select the preferred format (CSV, XLSX, or JSON) for further analysis or record-keeping. + +Oversættelsesomkostninger genereret + +## Pre-translation Accuracy + +Use this report to evaluate the translation quality of pre-translation methods (AI, MT, and TM) used in your project and identify the most efficient ones. + +This report analyzes the post-editing effort required for pre-translated strings. It compares the initial pre-translation against the final approved translation to calculate a Match Score. This helps you identify which AI prompts or MT engines require the least amount of human editing, allowing you to adjust your workflow and increase the usage of the best-performing methods. + +The Match Score metric is calculated at the character level. The report unit you select (Strings, Words, Characters, or Characters with spaces) determines how the results are displayed (e.g., if you select Strings, the entire source string is placed in a category based on its total match score). + +### Rapportområde + +* Includes only source strings that have a translation added via pre-translation which was subsequently approved. +* The report considers pre-translations added within the selected **Time period**, regardless of when they were approved. +* If multiple pre-translations exist for a string, each is included with its match score. + +### Recommended Workflow + +To get the most actionable insights from this report, we recommend the following flow: + + + 1. **Pre-translate** – Apply pre-translation to your source content using AI, MT, or TM. + 2. **Post-edit & Approve** – Have your proofreaders review the pre-translated strings. They should fix any errors or stylistic issues (post-editing) and approve the final versions. + 3. **Measure Accuracy** – Generate the Pre-translation Accuracy report. + 4. **Optimize** – Identify which AI prompt, MT engine, or TM required the least amount of human editing. Update your workflow to use that high-performing method for future translations. + + +### Rapportgenerering {#generating-pre-translation-accuracy} + +You can generate a Pre-translation Accuracy report based on the following filters: + +* **Task**: Not selected, All Tasks, or a specific task (available only if the project has tasks). +* **Language**: All, or specific language. +* **Date range**: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. This filter selects the range of when the strings were pre-translated. +* **Files**: All files or Selected files. +* **Labels**: Not selected, Strings with selected labels, or Strings without selected labels (available only if the project has labels). + +Additionally, using the report's **Settings**, you can configure **Match Score Categories**. These settings determine how the graph groups translations that were edited. For example, if you set a category for 99-90%, source strings where the approved translation matches the pre-translation within that range will be grouped together. Anything below your lowest defined match category will be treated as **No Match** (New Translation). + +To generate the Pre-translation Accuracy report, follow these steps: + + + 1. Select the preferred report unit (words, strings, characters, or characters with spaces). + 2. Select the preferred way to group the histogram data (Day or Month). + * When grouped by Day, the stacked histogram will have more bars, giving a more granular, day-by-day view. + * When grouped by Month, the data is displayed in fewer, broader monthly segments. + 3. *(Optional)* Select the task if you want to generate a report based on work done within all or specific tasks. Alternatively, leave it as **Not selected** to generate a report based on a wider content scope. + 4. Vælg det foretrukne sprog. + 5. Select the **Date Range**. + 6. *(Optional)* Select **Files** to specify the source content. You can choose **All files** or **Selected files**. + 7. *(Optional)* Select **Labels** to filter strings based on their labels. You can choose **Strings with selected labels** or **Strings without selected labels**. + 8. *(Optional)* Clear **Save to archive** if you don't want to save the report to the [Archive](#archive). + 9. Click **Settings** to configure your Match Score Categories. + 10. Click **Generate**. + + +### Resultatanalyse {#result-analysis-pre-translation-accuracy} + +Når rapporten er genereret, vil oplysningerne ses grupperet i præoversættelsesmetoder (via AI, MT og TM): + +* **Pre-translation via AI**: + * Samlet antal godkendte ord, præoversat af AI + * Separate graphs for each prompt (maximum 10 prompts displayed) +* **Pre-translation via MT**: + * Samlet antal godkendte ord, præoversat af MT + * Separate graphs for each MT engine (maximum 10 engines displayed) +* **Pre-translation via TM**: + * Samlet antal godkendte ord, præoversat af TM + +Each section displays the volume of source content, broken down by the following key metrics. (For this explanation, we assume **Strings** was selected as the report unit): + +* **Total** – The total number of source strings to which translations were added via pre-translation and subsequently approved. This includes strings approved without changes and strings where a proofreader added a corrected translation that was then approved. +* **100% Match** – The number of source strings where the approved translation matches the translation added via pre-translation exactly (100%). +* **Match Score Ranges** (e.g., 70-99% Match) – The number of source strings where the approved translation matches the pre-translation within the configured percentage range. This indicates that a proofreader edited the pre-translation, but the final approved version remains similar to the original suggestion. +* **Avg. Match Score** – The average percentage of similarity between the initial pre-translations and the final approved texts. A higher percentage means the pre-translations were accurate and required fewer edits. +* **No Match** – The number of source strings where the approved translation differs from the pre-translation by more than the lowest percent in your configured match score categories. In these cases, the translation was changed so significantly during proofreading that it is treated as a complete rewrite (a new translation). +* **Quality Score** – Measures overall quality based on the average match score achieved for the translated content. It is calculated as follows: `100 - ((Unedited + (Edited * (100 - Avg. Match Score))) / Total)` + +The **Stacked Histogram** below the metrics visualizes the distribution of these categories over time. Each bar represents the volume of source units processed, stacked by their quality category (e.g., *100% Match*, *Match Score: 99-90%*, *No Match*). + +To download the Pre-translation Accuracy report, click **Export** and select the preferred export format (CSV, XLSX, or JSON). + +Pre-translation Accuracy Generated + +## Translator Accuracy + +Use this report to evaluate the translation quality of individual translators in your project and identify top performers. + +This report analyzes the post-editing effort required for translations submitted by human translators. It compares each translator’s initial translation against the final approved version to calculate a **Match Score**. This helps you identify translators who consistently produce high-quality work requiring minimal corrections, as well as those who may benefit from additional guidance or training. + +The Match Score metric is calculated at the character level. The report unit you select (Strings, Words, or Characters) determines how the results are displayed (e.g., if you select Strings, the entire source string is placed in a category based on its total match score). + +### Rapportområde + +* Includes only source strings that have a translation submitted by a human translator which was subsequently approved. +* The report considers translations added within the selected **Time period**, regardless of when they were approved. +* If multiple translations exist for a string, each is included with its match score. + +### Recommended Workflow + +To get the most actionable insights from this report, we recommend the following flow: + + + 1. **Translate** – Have your translators translate the project content. + 2. **Proofread & Approve** – Have your proofreaders review the translations. They should fix any errors or stylistic issues (post-editing) and approve the final versions. + 3. **Measure Accuracy** – Generate the Translator Accuracy report to see how much the proofreaders had to edit each translator's work. + 4. **Feedback** – Use the findings to provide targeted feedback. Translators with high **100% Match** rates are your top performers, while high **No Match** rates might indicate a need for better glossary adherence or style guide training. + + +### Rapportgenerering {#generating-translator-accuracy} + +You can generate a Translator Accuracy report based on the following filters: + +* **Users**: All or selected users. +* **Language**: All or specific language. +* **Date range**: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. This filter selects the range of when the translations were added. +* **Files**: All files or Selected files. +* **Labels**: Not selected, Strings with selected labels, or Strings without selected labels (available only if the project has labels). + +Additionally, using the report's **Settings**, you can configure **Match Score Categories**. These settings determine how the graph groups translations that were edited. For example, if you set a category for 99-90%, source strings where the approved translation matches the initial translation within that range will be grouped together. Anything below your lowest defined match category will be treated as **No Match** (New Translation). + +To generate the Translator Accuracy report, follow these steps: + + + 1. Select the preferred report unit (words, strings, characters, or characters with spaces). + 2. *(Optional)* Select one or more users if you want to generate the report for specific translators only. Otherwise, choose **All** to include everyone. + 3. Select the preferred language or choose **All** if you want to include every target language. + 4. Select the **Date Range**. + 5. *(Optional)* Select **Files** to specify the source content. You can choose **All files** or **Selected files**. + 6. *(Optional)* Select **Labels** to filter strings based on their labels. You can choose **Strings with selected labels** or **Strings without selected labels**. + 7. *(Optional)* Clear **Save to archive** if you don't want to save the report to the [Archive](#archive). + 8. Click **Settings** to configure your Match Score Categories. + 9. Click **Generate**. + + +### Resultatanalyse {#result-analysis-translator-accuracy} + +When the report is generated, you will see the information grouped by language, and each translator is listed with their individual statistics. + +In each section, the data is displayed as a **Pie Chart**. The chart visualizes the proportion of source content based on how closely the translator's initial work matched the final approved version: + +* **100% Match** – The number of source units where the approved translation matches the translator's initial translation exactly (approved without edits). +* **Match Score Ranges** (e.g., 99-90% Match) – The number of source units where the approved translation is an edited version of the translator's work but remains similar within the configured percentage range. +* **No Match** – The number of source units where the approved translation differs significantly from the translator's initial work (below the lowest configured match category). In these cases, the translation was changed so significantly during proofreading that it is treated as a complete rewrite (a new translation). + +To download the Translator Accuracy report, click **Export** and select the preferred export format (CSV, XLSX, or JSON). + +Translator Accuracy Generated + +## Time Spent + +Use this report to calculate the cost of work based on the time contributors spend on tasks. This report is particularly useful when paying translators and proofreaders by the hour rather than by the volume of content (e.g., words). + +The report uses the [time logged by contributors](/user-tasks/#logging-time-spent-on-a-task) directly in a task's comments. + +You can generate a **Time Spent** report based on the following filter parameters: + +* **Task**: Not selected, All Tasks, or multiple specific tasks. +* **Date Range**: Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, All time, or Custom range. +* **Language**: All or specific target language. +* **Member**: All or specific members. +* **Task Type**: All, Translate by own translators, Proofread by own proofreaders, Translate by vendor, or Proofread by vendor. +* **Group by**: Member, Language, or Task. + +### Rapportgenerering {#generating-time-spent} + +To generate the **Time Spent** report, follow these steps: + + + 1. Select the preferred currency. + 2. Set your [rates](#rates-time-spent). + 3. Brug de tilgængelige filterparametre til at angive de ønskede rapportdata. + 4. *(Optional)* Clear **Save to archive** if you don't want to save the report to the [Archive](#archive). + 5. Click **Generate**. + + + + +### Satser {#rates-time-spent} + +You can set the hourly prices for work done by contributors in the project. Unlike the **Translation Cost** report, the unit for the **Time Spent** report is fixed to **hour**. + +#### Base Rate {#base-rate-time-spent} + +In the **Base Rate** section, you can set the hourly rate that will be applied to all work types (translation and proofreading) done in the project. This rate serves as the default for all languages and members. + +#### Tilføjelse af Tilpassede satser {#custom-rates-time-spent} + +In addition to the base rate that is applied to all languages and users by default, you can add custom rates for specific languages and users. To add custom rates, click **Add custom rates**. + +To select the languages and users for custom rates, click **Edit Languages** and **Edit Users** and select the ones you need. Individuelle satser kan oprettes i det ønskede antal. + +#### Rate Templates {#rate-templates-time-spent} + +If you plan to work with multiple rate configurations, save them as templates by clicking **Save as > New rates template**, then specify the template name and click **Save**. + +Click **Templates** to view and manage your saved rate templates. + + + +### Resultatanalyse {#result-analysis-time-spent} + +When the **Time Spent** report is generated, it displays the following details: + + + +##### Cost Summary + +* **Total** - The total calculated cost and total time spent for the selected time period. +* **User/Language/Task Totals** - The report shows totals for each member, language, or task, depending on the selected **Group by** filter. + +Below the summary, the report shows a detailed breakdown in a table format: + +##### Columns + +* **Language** – The target language for the work performed. +* **Time Spent** – The total time logged by the contributor for the work in that language. +* **Rate per hour** – The hourly rate applied (based on your configured [Base Rate](#base-rate-time-spent) and [Custom Rates](#custom-rates-time-spent)). +* **Price** – The total cost calculated for the work in that language. + +##### Eksport + +To download the **Time Spent** report, click **Export** and select the preferred format (CSV, XLSX, or JSON) for further analysis or record-keeping. + +## Rå bidragsdatarapport + +In addition to the Translation Cost report, which is based on the Contribution Raw Data and grouped by languages, you can retrieve this detailed contribution raw data using the [Generate Report](/developer/api/v2/#operation/api.projects.reports.post) (Contribution Raw Data schema) or via the [Raw Report Data](https://store.crowdin.com/raw-report) app available on the Crowdin Store. Dette muliggør generering af en tilpasset rapport jf. egne specifikke krav. + +Rapporten Rå bidragsdata indeholder forskellige kolonner afhængigt af den valgte tilstand (oversættelser, godkendelser eller stemmer). Each column offers specific insights, for example `source string text hash`, which is useful for identifying changes in source strings despite having the same `stringId`. It's important to note that multiple records can exist for the same `stringId` if the source hash or plural form varies. + +For repeated translations by the same user on the same source string, into the same target language, the same plural form, and if the source text has not changed, only the `translationId`, `targetUnits`, and `updatedAt` columns will update in the report statistics. Slettede oversættelser medregnes også. Forståelse af disse kolonner kan hjælpe med bedre at fortolke de rå data og optimere den relevante lokaliseringsproces. + +Se de tilgængelige rapportkolonner og deres tilstandsanvendelighed (dvs. oversættelser, godkendelser og stemmer) i flg. tabel: + + + +## Topmedlemmer + +The Top Members report allows you to see who contributed the most to your project's translation over time. This list includes all users who have ever contributed, even if they are no longer current project members. + +Standardparametre: + +* *Text unit*: words +* *Time period*: Last 30 days +* *Sorted by*: translated text units. A member who translated the most is placed at the top of the list. +* *Languages*: all languages +* *Contributors*: all + +The **YOU** label appears next to your own username in the report table, making it easier to identify your personal contribution. + +Omsortér medlemmerne ved at klikke på den relevante parameter. For example, if you want to analyze members by their proofreading activity, click on the *Approved* parameter to redo sorting. + +### Generating a Custom List of Top Members + +To generate a custom list of top members, follow these steps: + + + 1. Vælg den foretrukne rapportenhed (ord, strenge, tegn med eller uden mellemrum). + 2. Select the time period for which you want to see the activity of contributors. + 3. To make a list of contributors for a specific language, select the language you need from the drop-down menu above the list. Alternatively, select **All languages**. + 4. Click **Generate**. + + +To find a specific member, use the search field. To open the member’s profile page, double-click on the name. + +The Top Members list includes the following columns: + +* *Rank* – contributor’s position in the list based on the currently selected sorting criteria (e.g., *Translated*, *Approved*, etc.). +* *Name* – contributor's first name, last name and username. +* *Languages* – project languages. +* *Translated* – the number of translated source content units. +* *Target Words* – the number of translated content units in a target language. +
This parameter is not available for the *Strings* content unit because the number of source and translated strings is always the same. +* *Approved* – the number of approved content units. +* *Voted* – the number of votes a contributor made. +* *"+" votes received* – the number of upvotes a contributor received for translations. +* *"-" votes received* – the number of downvotes a contributor received for translations. +* *Winning* – the number of approvals a contributor received for translations. +* *Joined* – the date a member joined a project. + +To customize the visibility of columns in the report, click at the upper-right side of the table and select the preferred ones. + +To download the Top Members report, click **Export** and select the preferred export format (CSV, XLSX, or JSON). + +Generating a list of Top Members + +## Arkiv + +Afsnittet Arkiv muliggør at tilgå poster for tidligere genererede rapporter over Omkostninger og Oversættelsesomkostninger, hvilket giver en bekvem måde at gennemgå historiske data på. + +Dette afsnit eliminerer også behovet for at vente på, at en rapportgenerering bliver færdig. Man kan indlede en rapportgenerering, og så vende tilbage til den senere, når belejligt. I Arkiv kan rapportresuméet gennemgås og om ønsket downloades i forskellige understøttede filformater. + +Each project has its own independent archive section with previously generated reports available only to project members with manager permissions (or higher). + +Rapporter genereret af oversættere baseret på deres bidrag føjes ikke til arkiverne. + +### Visning af Tidligere genererede rapporter + +Følg disse trin for at se resuméerne af de tidligere genererede rapporter (dvs. arkivposter): + + + 1. Open your project and go to **Reports > Archive**. + 2. Klik på navnet på den ønskede arkivpost. + 3. Når arkivrapportposten åbnes, kan alle ønskede data ses. + + +Visning af Tidligere genererede rapporter + +### Eksport af Tidligere genererede rapporter + +Følg disse trin for at eksportere tidligere genererede rapporter: + + + 1. Open your project and go to **Reports > Archive**. + 2. Click on the needed report in the list. + 3. Klik på det foretrukne fileksportformat. + + +### Sletning af Tidligere genererede rapporter + +Følg disse trin for at slette tidligere genererede rapporter: + + + 1. Open your project and go to **Reports > Archive**. + 2. Click on the needed report in the list. + 3. Click **Delete**. + + +## Se også + + diff --git a/src/content/docs/da/crowdin/tasks/blend-integration.mdx b/src/content/docs/da/crowdin/tasks/blend-integration.mdx new file mode 100644 index 00000000..509e6a2a --- /dev/null +++ b/src/content/docs/da/crowdin/tasks/blend-integration.mdx @@ -0,0 +1,124 @@ +--- +title: BLEND-integration +description: Integrate your Crowdin projects with the BLEND agency +slug: blend-integration +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import blendConnect from '!/crowdin/translation-process/vendors_connect.png'; +import blendCreateTask from '!/crowdin/translation-process/blend_create_task.png'; +import blendCustomerDiscussions from '!/crowdin/tasks/blend_customer_discussions.png'; +import blendStartProject from '!/crowdin/tasks/blend_start_project.png'; +import blendTaskComments from '!/crowdin/tasks/blend_task_comments.png'; + +Integrate your Crowdin projects with the BLEND agency and allow BLEND translators to work with translation files in Crowdin Editor. + +Integrationen leverer: + +* Øjeblikkelig synk af lokaliseringsindhold fra Crowdin til BLEND vha. Crowdin-opgaver. +* Mulighed for BLEND-oversættere til nemt at tilgå og arbejde i Crowdin Redigeringsværktøj. +* 2-vejssynk af kommentarer BLEND og Crowdin imellem. + +## Tilslutning af BLEND med Crowdin + +En BLEND-kundekonto er obligatorisk til integrationen samt en tilstrækkelig Kreditsaldo for afbenyttelse af oversættelsestjenesten. Register at [BLEND](https://app.getblend.com/auth/register) if you don't have an account yet. + +To establish the connection, follow these steps: + + + 1. Log ind på Crowdin. + 2. Open your **Account Settings** and go to the **Vendors** tab.
Alternatively, click on the BLEND's tile in the **Store > Vendors** page. + 3. In the **BLEND** section, click **Connect Account**. Connect BLEND + 4. Enter *Public Key* and *Secret Key* from the BLEND [API keys](https://app.getblend.com/profile/#apikeys) tab. Click **Submit Keys**. +
+ +## Oprettelse af Opgaver til indholdssynk + +For at sende indholdslokalisering til BLEND, skal de respektive opgaver oprettes i Crowdin-projektet. Følg denne trin for trin-vejledning til opgaveoprettelse: + + + 1. Click [**Create Task**](/tasks/#creating-new-task) using the project's **Tasks** tab. + 2. Alternatively, you can initiate a task from the **Store**: + 1. Go to **Store > Vendors** on your profile home page. + 2. Click on the **BLEND** tile to open the vendor page. + 3. In the **Create Task** section, select the project from the drop-down list. + 4. Click **Create** to open the task creation page in a new tab. Create Task + 3. Opsæt opgaveparametrene: + * *Title* – specify the name of the task that will be visible to BLEND translators. + * *Description* (optional) – add any additional details that may be helpful for BLEND translators. + * *Type* – select either *Translate by vendor* or *Proofread by vendor*. + * *Translation Vendor* – select *BLEND* from the list. + + * *Expertise* – select the required subject matter expertise (e.g., Standard, Technical, etc.). + * *Include edit service* (only for Translate by vendor) – adds an Editing project on the BLEND side for an additional linguistic review. + * *Preceding task* (only for Proofread by vendor) – link the task to a previously created translation task to inherit its scope and language settings. + * *Skip strings already included in other tasks* – skip strings that are already assigned to other tasks. + * *Create Cost Estimate Report* – automatically generate a cost estimate based on selected content and the rates template. + * *Rates template* – select the template to be used for calculating the estimate. + * *String filters* – filter which strings should be included in the task: + * *Strings* – select whether to include all untranslated strings or not approved strings, or only those modified within a specific period. + * *Filter by labels* (optional) – select one or more labels to include only strings with the specified labels. Then, select the match rule: + * *All selected labels* – includes only strings that have all selected labels (AND logic). + * *Any selected label* – includes strings that have at least one of the selected labels (OR logic). + * *Exclude by labels* (optional) – select one or more labels to exclude strings with the specified labels. Then, select the match rule: + * *All selected labels* – excludes only strings that have all selected labels (AND logic). + * *Any selected label* – excludes strings that have at least one of the selected labels (OR logic). + * *Include pre-translated strings only* (only for Proofread by vendor) – include only strings that were previously pre-translated. + * *Files* (for file-based projects) or *Branches* (for string-based projects) – select content to include in the task. + * *Languages* – select target languages (a separate task will be created for each selected language). + 4. Click **Create Task** to complete the translation order and send project files to BLEND. + + + + Read more about [BLEND Editing project](https://help.getblend.com/hc/en-us/articles/360019181260-What-is-an-editing-project-). + + + + + + +## Oversættelses- og korrekturlæsningsproces + +When the task is created, it’s automatically sent to BLEND and visible to BLEND translators/proofreaders in the *Open Projects* tab. BLEND translator/proofreader will need to **Start Project** and then use the **Open Workbench** button to access Crowdin Editor. + +Start Project + + + Read more about [Crowdin Editor](/online-editor/). + + +En oversætter/korrrekturlæser indlogges på Crowdin med BLEND-profildata for at arbejde med indholdslokaliseringen. When the work starts, the related task in Crowdin will automatically move to the *In Progress* status. And when the work is finished (project marked as Completed on the BLEND side), the task will gain *Done* status in Crowdin. + +## Debatter og Kommentarer + +If you need to add some details to an already created task, you can add *Comments*. + +Task Comments + +Comments are synchronized with BLEND so that a translator can see them in the *Customer Discussion* section and reply if needed. Translator messages left in the *Customer Discussion* section in the BLEND project are also automatically sent to Crowdin and shown in the *Comments* section inside the Crowdin task. + +Kundedebatter + +## Håndtering af BLEND-integration + +Access integration by opening **Account Settings** and going to the **Vendors** tab. You can **Switch Account** or **Disconnect Account** if necessary. + + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/tasks/crowdin-language-services.mdx b/src/content/docs/da/crowdin/tasks/crowdin-language-services.mdx new file mode 100644 index 00000000..eeb5b8bc --- /dev/null +++ b/src/content/docs/da/crowdin/tasks/crowdin-language-services.mdx @@ -0,0 +1,182 @@ +--- +title: Crowdin-sprogtjenester +description: Order professional translations and proofreading services +slug: crowdin-language-services +sidebar: + order: 2 +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import clsBuyTranslations from '!/crowdin/tasks/cls_buy_translations.png'; +import vendorView from '!/crowdin/translation-process/vendor_view.png'; +import clsTaskComments from '!/crowdin/tasks/cls_task_comments.png'; + +Crowdins Sprogtjenester er en integreret løsning, der med få klik muliggør at bestille professionelle oversættelses- og korrekturlæsningstjenester til et Crowdin-projekt. + +Fordelene ved bestilling af oversættelse fra Crowdin Sprogtjenester omfatter: + +* **Integrated payment service** – all payments are securely processed by Crowdin's payment processing partner. +* **Ease of start** – you can order professional translations directly in your Crowdin project without searching for translators and comparing agencies. +* **Discussions and Comments** – the translations and proofreading are done directly in your Crowdin project so that you can discuss any possible questions. + +## Oprettelse af opgaver til oversættelse og korrekturlæsning + +Følg disse trin for at bestille oversættelse eller korrekturlæsning af indhold fra Crowdins Sprogtjenester: + + + 1. Open your project and click **Buy Translations**: Buy Translations
+ Alternatively, click [**Create Task**](/tasks/#creating-new-task) using the **Tasks** tab in your project. + 2. You can also initiate a task from the **Store**: + 1. Go to **Store > Vendors** on your profile home page. + 2. Click on the **Crowdin Language Services** tile to open the vendor page. Vendor View + 3. In the **Create Task** section, select the project from the drop-down list. + 4. Click **Create** to open the task creation page in a new tab. + 3. Opsæt opgaveparametrene: + * *Title* – specify the name of the task that will be visible to Crowdin Language Services translators. + * *Description* (optional) – add any additional details that may be helpful for Crowdin Language Services translators. + * *Type* – select either *Translate by vendor* or *Proofread by vendor*. + * *Translation Vendor* – select *Crowdin Language Services* from the list. + + * *Create a pending proofreading task* (only for Translate by vendor) – creates a separate proofreading task that starts once the translation is completed. + * *Preceding task* (only for Proofread by vendor) – link the task to a previously created translation task to inherit its scope and language settings. + * *Skip strings already included in other tasks* – skip strings that are already assigned to other tasks. + * *Create Cost Estimate Report* – automatically generate a cost estimate based on selected content and the rates template. + * *Rates template* – select the template to be used for calculating the estimate. + * *String filters* – filter which strings should be included in the task: + * *Strings* – select whether to include all untranslated or not approved strings, or only those modified within a specific period. + * *Filter by labels* (optional) – select one or more labels to include only strings with the specified labels. Then, select the match rule: + * *All selected labels* – includes only strings that have all selected labels (AND logic). + * *Any selected label* – includes strings that have at least one of the selected labels (OR logic). + * *Exclude by labels* (optional) – select one or more labels to exclude strings with the specified labels. Then, select the match rule: + * *All selected labels* – excludes only strings that have all selected labels (AND logic). + * *Any selected label* – excludes strings that have at least one of the selected labels (OR logic). + * *Include pre-translated strings only* (only for Proofread by vendor) – include only strings that were previously pre-translated. + * *Files* (for file-based projects) or *Branches* (for string-based projects) – select content to include in the task. + * *Languages* – select target languages (a separate task will be created for each selected language). + 4. *(Optional)* Select [**Post Payment**](#post-payment) or [**Managed by Crowdin balance**](#crowdin-credits-balance) as your payment options. + 5. Bekræft, at tjenestevilkårene accepteres. + 6. Click **Buy translations** to send your project files to Crowdin Language Services. + 7. If you do not use **Post Payment** or **Managed by Crowdin balance**, you can select your preferred payment method at the [checkout page](#direct-payment-at-checkout). +
+ +## Payment Options for Crowdin Language Services + +When ordering translation or proofreading, you can choose from the following payment options. You can configure **Post Payment** and **Managed by Crowdin balance** settings in **Account Settings > Vendors**. + +By enabling the **Do not ask for payment details** option in the settings, your selected payment method will be applied automatically each time you create a task for the Crowdin Language Services vendor. + + + +### Post Payment + +This option allows you to pay for tasks after they are completed. If you select **Post Payment**, payments will be processed by the vendor (i.e., Alconost Inc.). This option is only available if the total value of the tasks to be created is $3000 or more. + +### Crowdin Credits Balance + +With this option, you can use your dedicated Crowdin Credits balance to pay for translation or proofreading tasks. Crowdin Credits allows you to manage various localization resources and expenses from one central balance, simplifying your workflow. You can easily add funds to this balance and track your usage, ensuring easy access to translation vendors and AI models without creating separate accounts. To activate this option, ensure you have sufficient funds in your Crowdin Credits balance when creating tasks. + + + Read more about [Crowdin Credits](/crowdin-credits/). + + +### Direct Payment at Checkout + +If you are not using the **Post Payment** or **Managed by Crowdin balance** options, you can pay directly at checkout using your preferred payment method. In this case, the payment will be processed by Fastspring, Crowdin's payment processing partner. + + + +### Credit Returns for Proofreading + +When you order proofreading from Crowdin Language Services, you can receive a credit return based on the quality of the initial translations. This system is designed to reward your efforts in improving translation quality from the start. For example, taking the time to properly configure [Crowdin AI](/crowdin-ai/) and enrich your source content with context like [screenshots](/screenshots/) and [glossaries](/glossary/) can produce excellent automated translations. The higher the quality of your pre-translated content—whether from AI, your Translation Memory (TM), or a Machine Translation (MT) engine—the less post-editing is required, and the more you save. + +Here’s how it works: You pay the standard rate when creating a proofreading task. After the proofreader completes the work, they calculate the **Credit Return** based on the editing effort required for each string. This amount is then automatically added to your [Crowdin Credits balance](#crowdin-credits-balance) once the task is complete. Please note that this is a credit return, not a refund to your original payment method. Think of this balance as your virtual wallet in Crowdin, ready to be used for other services, such as future proofreading tasks, translations, or AI usage. + +For example, if the pre-translations are of high quality and require no edits, the proofreading cost is only 30% of the standard rate. Conversely, for translations with match percentages below the ranges specified in the tables, the proofreading cost is 100% of the standard rate. + +The calculation is based on the following net rate schemes: + +#### TM Match + +| Match Type, % | % of Base Price | +| :------------ | :-------------- | +| 101 (perfect) | 30 | +| 100 | 30 | +| 99-90 | 40 | +| 89-80 | 50 | + +#### MT Match + +| Match Type, % | % of Base Price | +| :------------ | :-------------- | +| 100 | 30 | +| 99-90 | 35 | +| 89-80 | 50 | +| 79-70 | 75 | +| 69-60 | 90 | +| 59-50 | 95 | + +#### AI Match + +| Match Type, % | % of Base Price | +| :------------ | :-------------- | +| 100 | 30 | +| 99-90 | 35 | +| 89-80 | 50 | +| 79-70 | 75 | +| 69-60 | 90 | +| 59-50 | 95 | + +#### Other translations + +| Match Type, % | % of Base Price | +| :------------ | :-------------- | +| 100 | 30 | +| 99-90 | 40 | +| 89-80 | 50 | + +## Opgavestatus + +Følg disse trin for at monitorere de oprettede opgavers lokaliseringsforløb: + + +1. Open your project and go to the **Tasks** tab. +2. Klik på opgavens navn for at åbne den. +3. In the **Details** section, you can see the Vendor Project Status: + * Afventer betaling – lokaliseringstjenesterne er ikke betalt + * Betaling igangværende – betalingen behandles af Fastspring, Crowdins betalingshåndteringspartner + * Igangværende – betalingen er behandlet, og Crowdins Sprogtjenesters repræsentanter arbejder på opgaven + * Færdiggjort – Alt arbejde relateret til opgaven er fuldført + + +## Oversættelses- og korrekturlæsningsproces + +Når betalingen er gennemført, vil Crowdins Sprogtjenesters administrator modtage en advisering om nye opgaver og føjes samtidig til de eksisterende projektmedlemmer mhp. håndtering af lokaliseringsprocessen. +Crowdin Language Services translators work directly in Crowdin Editor, so all the context information (e.g., [Screenshots](/screenshots/), [Labels](/project-settings/labels/), etc.) you added to the source files will be accessible to them as well. + + + Read more about [Crowdin Editor](/online-editor/). + + +En oversætter logges ind på Crowdin via en Crowdin Sprogtjenester-profil for at arbejde på indholdslokalisering. I Crowdin-projektet vil man derefter se oversættelsesaktiviteter foretaget af Crowdin Sprogtjenester-profilen. When the work starts, the related task in Crowdin will automatically get the *In progress* status, and when the work is finished, the task will get the Completed Vendor Project Status. + +## Debatter og Kommentarer + +If needed, you can add some details to an already created task in the **Comments** section. The comments will be visible to a translator who works on the task, and they will be able to reply in the **Comments** section if needed. + +Task Comments + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/tasks/tasks.mdx b/src/content/docs/da/crowdin/tasks/tasks.mdx new file mode 100644 index 00000000..bf4e523b --- /dev/null +++ b/src/content/docs/da/crowdin/tasks/tasks.mdx @@ -0,0 +1,375 @@ +--- +title: Projektopgaver +description: Create and assign tasks for translating or proofreading content +slug: tasks +sidebar: + order: 0 +--- + +import { Steps, Aside, LinkCard, CardGrid, Tabs, TabItem } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import createButton from '!/crowdin/tasks/tasks_create_button.png'; +import submit from '!/crowdin/tasks/tasks_submit.png'; +import createButtonSB from '!/crowdin/tasks/tasks_create_button_sb.png'; +import submitSB from '!/crowdin/tasks/tasks_submit_sb.png'; +import split from '!/crowdin/tasks/tasks_split.png'; +import newTemplate from '!/crowdin/tasks/tasks_new_template.png'; +import managingTemplates from '!/crowdin/tasks/tasks_managing_templates.png'; +import pendingSequentialTasks from '!/crowdin/tasks/tasks_pending_sequential_tasks.png'; +import createPendingProofreadingTask from '!/crowdin/tasks/tasks_create_pending_proofreading_task.png'; +import selectPrecedingTranslationTask from '!/crowdin/tasks/tasks_select_preceding_translation_task.png'; +import board from '!/crowdin/tasks/tasks_board.png'; +import edit from '!/crowdin/tasks/tasks_edit.png'; +import filter from '!/crowdin/tasks/tasks_filter.png'; +import move from '!/crowdin/tasks/tasks_move.png'; +import close from '!/crowdin/tasks/tasks_close.png'; + +Create and assign tasks for translating or proofreading content to specific project members or vendors. You can set due dates, split words among assignees, receive notifications about task changes and updates, and discuss tasks with other project members in the comments. + +## Oprettelse af ny opgave + +To create a new task, follow these steps: + + + + + 1. Open your project and go to the **Tasks** tab. + 2. Click **Create Task**. Create Task + 3. Opsæt opgaveparametrene: + * *Title* – specify the name of the task that will be visible to translators or proofreaders. + * *Description* (optional) – add any additional details that may be helpful. + * *Type* – select between *Translate by own translators*, *Proofread by own proofreaders*, *Translate by vendor*, and *Proofread by vendor*. +
+ When *Translate by vendor* or *Proofread by vendor* is selected for automated vendors (e.g., Crowdin Language Services, BLEND, or Gengo), you can access additional options next to the *Translation Vendor* drop-down menu: + * **Settings** – configure account or payment settings for the selected vendor. + * **View in Store** – view the vendor's details in the Store. + * *[Create a pending proofreading task](#sequential-tasks)* (only for translation tasks) – creates a separate proofreading task that starts once the translation is completed. + * *[Preceding task](#sequential-tasks)* (only for proofreading tasks) – link the task to a previously created translation task to inherit its scope and language settings. + * *Skip strings already included in other tasks* – skip strings that are already assigned to other tasks. + * *Rates template* (optional) – select the [template](/project-reports/#rate-templates) to be used for calculating task costs. This template will be used by default for generating task reports and will be displayed in the task details for transparency, visible to the project owner and managers. Click to add a new template, or click to modify the selected one. + * *[Create Cost Estimate Report](#task-cost-overview)* – automatically generate a Cost Estimate report after the task is created or edited. + * *[Create Translation Cost Report](#task-cost-overview)* – automatically generate a Translation Cost report when the task status is changed to **Done** or **Closed**. + * *String filters* – filter which strings should be included in the task: + * *Strings* – select whether to include all untranslated or not approved strings, only those modified within a specific period, or only those with translations updated within a specific period (only for proofreading tasks). + * *Filter by labels* (optional) – select one or more labels to include only strings with the specified labels. Then, select the match rule: + * *All selected labels* – includes only strings that have all selected labels (AND logic). + * *Any selected label* – includes strings that have at least one of the selected labels (OR logic). + * *Exclude by labels* (optional) – select one or more labels to exclude strings with the specified labels. Then, select the match rule: + * *All selected labels* – excludes only strings that have all selected labels (AND logic). + * *Any selected label* – excludes strings that have at least one of the selected labels (OR logic). + * *Include pre-translated strings only* (only for proofreading tasks) – include only strings that were previously pre-translated. + * *Due Date* (optional) – set a deadline. + * *Files* – select files to include in the task. + * *Languages* – select target languages (a separate task will be created for each selected language). The *Untranslated Words* or *Not Approved Words* column shows the total number of words added to the task. + * Click **Assign** to assign users to the task for each language separately. + * *(Optional)* Use a saved [template](#task-templates) to apply language and member assignment settings, or save the current configuration for future use. + 4. Click **Create Task**. Create Task +
+
+ + + 1. Open your project and go to the **Tasks** tab. + 2. Click **Create Task**. Create Task + 3. Opsæt opgaveparametrene: + * *Title* – specify the name of the task that will be visible to translators or proofreaders. + * *Description* (optional) – add any additional details that may be helpful. + * *Type* – select between *Translate by own translators*, *Proofread by own proofreaders*, *Translate by vendor*, and *Proofread by vendor*. +
+ When *Translate by vendor* or *Proofread by vendor* is selected for automated vendors (e.g., Crowdin Language Services, BLEND, or Gengo), you can access additional options next to the *Translation Vendor* drop-down menu: + * **Settings** – configure account or payment settings for the selected vendor. + * **View in Store** – view the vendor's details on the Crowdin Store. + * *[Create a pending proofreading task](#sequential-tasks)* (only for translation tasks) – creates a separate proofreading task that starts once the translation is completed. + * *[Preceding task](#sequential-tasks)* (only for proofreading tasks) – link the task to a previously created translation task to inherit its scope and language settings. + * *Skip strings already included in other tasks* – skip strings that are already assigned to other tasks. + * *Rates template* (optional) – select the [template](/project-reports/#rate-templates) to be used for calculating task costs. This template will be used by default for generating task reports and will be displayed in the task details for transparency, visible to the project owner and managers. Click to add a new template, or click to modify the selected one. + * *[Create Cost Estimate Report](#task-cost-overview)* – automatically generate a Cost Estimate report after the task is created or edited. + * *[Create Translation Cost Report](#task-cost-overview)* – automatically generate a Translation Cost report when the task status is changed to **Done** or **Closed**. + * *String filters* – filter which strings should be included in the task: + * *Strings* – select whether to include all untranslated or not approved strings, only those modified within a specific period, or only those with translations updated within a specific period (only for proofreading tasks). + * *Filter by labels* (optional) – select one or more labels to include only strings with the specified labels. Then, select the match rule: + * *All selected labels* – includes only strings that have all selected labels (AND logic). + * *Any selected label* – includes strings that have at least one of the selected labels (OR logic). + * *Exclude by labels* (optional) – select one or more labels to exclude strings with the specified labels. Then, select the match rule: + * *All selected labels* – excludes only strings that have all selected labels (AND logic). + * *Any selected label* – excludes strings that have at least one of the selected labels (OR logic). + * *Include pre-translated strings only* (only for proofreading tasks) – include only strings that were previously pre-translated. + * *Due Date* (optional) – set a deadline. + * *Branches* – select branches to include in the task. + * *Languages* – select target languages (a separate task will be created for each selected language). The *Untranslated Words* or *Not Approved Words* column shows the total number of words added to the task. + * Click **Assign** to assign users to the task for each language separately. + * *(Optional)* Use a saved [template](#task-templates) to apply language and member assignment settings, or save the current configuration for future use. + 4. Click **Create Task**. Create Task +
+
+
+ + + + + Read more about [project types](/creating-project/#project-types). + + +### Splitting Content + +Splitting content between several members allows you to speed up the translation or proofreading process. + +While in string-based and file-based projects this option is called differently (i.e., **Split strings** and **Split files**), the basic principle of its behavior remains the same. + +To split content between several members select **Split files** (in file-based project) or **Split strings** (in string-based project) in the **Assign users** dialog. Et omtrentligt antal ord kan angives til hver modtager. + +Filopdelinger + +### Estimating and Tracking Task Costs + +If a [**Rates template**](/project-reports/#rate-templates) is selected during task creation, the task view will include cost-related information, such as the selected rate scheme and any generated cost reports. + + + +#### Task Cost Overview + +After a report is generated, it becomes available in the [Archive](/project-reports/#archive) section. The costs are also displayed directly on the task card in the **Board** section. Hover over on a task card to view both the **Estimated cost** and **Actual cost**. + +Open the task to view the following cost-related information: + +* **Rates Template**: Displays the name of the applied template. Project managers can click the template name to open the **Edit rates template** dialog and view or modify its parameters (e.g., Base rates, Custom rates, Net Rate Schemes). +* **Estimated cost**: If the **Create Cost Estimate Report** option was selected, this report is generated automatically after the task is created or updated. If the task scope changes (e.g., files or strings are modified), a new Cost Estimate report will be generated automatically to reflect the updated estimate. +* **Actual cost**: If the **Create Translation Cost Report** option was selected, this report is generated automatically once the task is moved to the **Done** or **Closed** status. + +Once generated, both the estimated and actual cost sections will display the calculated cost based on the selected rates template, a clickable report name (e.g., Report #123) that links to the full report in the Archive section, and the report generation date. If a report has not been generated yet, a **Not generated yet** message will be displayed instead, along with a **Generate** option to quickly create it. + +#### Generating and Viewing Reports + +You can manually generate or regenerate reports for an existing task at any time. Click in the upper-right corner of the task view and select **Cost Estimate** or **Translation Cost**. + +To view a detailed breakdown, click the report name (e.g., Report #123) under the Estimated or Actual cost. The full report will open in a new browser tab. Within the opened report, click **Rate Schema** to review the specific rates applied during its generation. + +#### Resolving Rates Mismatch + +If the underlying rates or the assigned rate template are modified after a report has been generated, a **Rates Mismatch** label will appear next to the Estimated or Actual cost. This label indicates that the current template configuration differs from the one used to generate the report, meaning the displayed costs might be outdated. + +To resolve the mismatch and update the costs, click the report name and regenerate the report. The system will apply the latest rates, and the **Rates Mismatch** label will disappear. + +### Task Templates + +Use task templates to save the configuration of the **Languages** section, including target languages and member assignments. Templates help you quickly apply these configurations when creating new tasks, saving time and ensuring consistency. + + + +#### Saving Templates + +To save the language and member assignment settings as a template, follow these steps: + + + 1. In the **Languages** section, click **Save as**. + 2. Select **New template** from the drop-down menu. + 3. In the dialog that appears, enter a name for your template. + 4. Click **Save**. + + +Your template is now saved and available for future tasks. + +Saving a Task Template + +#### Applying Templates + +To apply a saved template to a new task, follow these steps: + + + 1. In the **Languages** section, click on the template name to apply it immediately. + 2. Alternatively, click next to the template name and select **Apply**. + + +#### Managing Templates + +To rename or delete a saved template, follow these steps: + + + 1. In the **Languages** section, click next to the template name. + 2. Select one of the following options: + * **Rename** – Enter a new name for your template. + * **Delete** – Permanently remove the template. + + +Managing Task Templates + +## Projektopgaver + +In the **Tasks** tab, you can view all the project tasks in the following two sections: **Board**, **All Tasks**. + +### Board + +In the **Board** section, tasks are organized into three columns: To Do, In Progress, and Done. This layout provides a clear view and visualization of the current status of all tasks. Within each column, tasks are further grouped by target languages. Each target language group can be collapsed to hide task cards or expanded to display them. This feature is particularly useful for decluttering the view and focusing on specific languages. + +Use the **Search tasks** field to search for tasks by name or [filter tasks](#filtering-tasks) using various filter options. To view the task details, open it by clicking on the task name. + +Board + + + +### All Tasks + +The **All Tasks** section provides a list view of all project tasks. It is particularly useful for efficiently managing large volumes of tasks. From this view, you can select multiple tasks to perform bulk actions, such as changing assignees, updating statuses, or deleting tasks. + +Similar to the **Board** section, the **All Tasks** view also allows you to use the **Search tasks** field and [filter](#filtering-tasks). Additionally, you can sort the task list in ascending or descending order using the available sort options (ID, Created at, Resolved at, Due Date). + +#### Generating Reports for Multiple Tasks + +From the **All Tasks** view, you can generate a **Cost Estimate** or **Translation Cost** report for one or more specific tasks. This allows you to quickly assess costs without having to manually select tasks on the report generation page. + +To generate a report for selected tasks, follow these steps: + + + 1. In the **All Tasks** view, select the desired tasks using the checkboxes. You can use filters to narrow down the list before selection. + 2. Click in the upper-right corner. + 3. Select **Cost estimate** or **Translation cost** from the drop-down menu. + + +You will then be redirected to the corresponding report generation page with the selected tasks pre-filled, where you can configure and generate the report. + +### Opgaveredigering + +Følg disse trin for at ændre opgavedetaljerne: + + + 1. Open your project and go to the **Tasks** tab. + 2. Click on the name of the task you want to change either in the **Board** or **All tasks** section. + 3. Click in the upper-right corner and select **Edit**. Editing Task + 4. Make the necessary edits and click **Save**. + + + + After the source file update, the list of source strings included in the task will be updated in the following way: + + * Strenge fjernet fra kildefilen under opdateringen fjernes fra opgaven. + * The modified strings marked with the *Keep Translations* option will appear in the task with the new modified text. + * De nyligt tilføjede strenge påvirker på ingen måde den eksisterende opgave. + + If the source file is restored to the revision containing the removed strings, they will reappear in the task. + + +### Viewing Tasks Created Together + +When you create tasks for multiple languages at once, they are generated as a single batch. To easily find and navigate between all tasks from the same batch, you can use the **Tasks Created Together** option. + +To view tasks created together, follow these steps: + + + 1. Open any task from the batch. + 2. Click in the upper-right corner. + 3. Select **Tasks Created Together**. + + +You will be redirected to the **All Tasks** section with a `batchId` filter (e.g., `batchId:123456`) automatically applied in the search field. This view will display only the tasks that were generated during that specific creation process. + +### Filtering Tasks + +By default, all project tasks are displayed in the **Tasks** tab either in the **Board** or **All Tasks** sections. Opgaver kan om nødvendigt filtreres vha. de eksisterende filterindstillinger: + +* Udpeget: Alle brugere eller bestemte brugere. +* Oprettet af: Alle brugere eller bestemte brugere. +* Sprog: Alle sprog eller bestemte sprog. +* Fil: Alle filer eller en bestemt fil eller mappe. +* Forfaldsdato: Alle, Forfalden nu, Tilpasset interval. +* Created at: All, Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, Custom Range. +* Type: Alle typer, Oversæt med egne oversættere, Korrekturlæsning med egne korrekturlæsere, Oversæt via leverandør, Korrekturlæsning via leverandør. +* Status: Alle statusser, To Do, I gang, Udført, Lukket. + +Filtering Tasks + +### Opgavestatusændring + +To change the task status in the **Board** section, select the task assigned to you and drag it to the column with the status you need. + + + +Opgavestatusændring + +To change the task status in the **All Tasks** section, select the needed task, click **Change status**, and select the new status. + +Alternatively, in either of the two sections, you can change the task status directly in the task itself using the respective buttons: To Do, In Progress, Done. + +### Opgavelukning + +To close the task when it's finished, move it to the **Done** column and click **Close**. + +Opgavelukning + +To view the list of closed tasks, open the **All Tasks** section and use the filter **Status: Closed**. + +## Sekventielle opgaver + +Sekventielle opgaver strømliner håndteringen af oversættelses- og korrekturlæsningsprocesser på en struktureret, trinvis måde. Denne funktion er særlig nyttig til håndtering af indhold, der kræver oversættelse efterfulgt af korrekturlæsning, hvilket sikrer en jævn arbejdsgang. + +Once created, sequential tasks are represented on the Tasks Board, displaying both the translation task and its linked pending proofreading task. + +Afventer Korrekturlæsning Sekventiel Opgave + +### Nøgletilgange + +Begrebet sekventielle opgaver er baseret på to primære tilgange: + +* **Creating a translation task with its associated pending proofreading task:** + * Start by creating a translation task and specifying the target languages and work scope. + * Select **Create a pending proofreading task** to generate the associated proofreading task. You can set separate due dates for the translation and proofreading tasks if needed. + Create a pending proofreading task + * Mens oversættere arbejder på oversættelsesopgaven, forbliver den tilknyttede korrekturlæsningsopgave afventende. + * When the translation task is completed, the status of the associated proofreading task changes from Pending to To Do. Proofreaders will then receive notifications that it's ready for review. +* **Creating a proofreading task and linking it to a translation task:** + * Create a proofreading task and select the translation task you want to link it with from the **Preceding task** drop-down menu. You can link it to either a completed or an active translation task. + Select preceding translation task + * Sprog og arbejdsomfang arves automatisk fra den tilnyttede oversættelsesopgave. + * Korrekturlæsningsopgaven afventer, indtil den tilknyttede oversættelsesopgave er fuldført. + * As with the first approach, proofreaders receive notifications when the proofreading task is ready for review. + +### Understøttede opgavetyper + +Sekventielle opgaver er tilgængelige for flg. opgavetyper: + +* Oversættelse af egne oversættere +* Korrekturlæsning af egne oversættere +* Translate by vendor: + * Crowdin-sprogtjenester + * Vendors that manage the translation process with a dedicated manager +* Proofread by vendor: + * Crowdin-sprogtjenester + * BLEND + * Vendors that manage the translation process with a dedicated manager + + + +### Sekventiel opgavehåndtering + +* Ved redigering af en afventende korrekturlæsningsopgave er ændringer begrænset til felter, som ikke påvirker omfanget afopgaven. +* Afventende korrekturlæsningsopgaver kan om nødvendigt slettes. I så tilfælde bibehodes tilknyttede oversættelsesopgaver. +* Sletning af en oversættelsesopgave med en tilknyttet sekventiel korrekturlæsningsopgave resulterer i samtidig sletning af begge opgaver. + +## Task-based Access Control + +When [Task-based access control](/project-settings/privacy-collaboration/#privacy) is enabled, translators and proofreaders have read-only access to the Editor and can work with strings only through tasks assigned to them. On language pages, users see a notice that active access to strings is available only through assigned tasks. If they try to open content outside those tasks in the Editor, it will be available in read-only mode. + +In the **Tasks** tab, users can still view task cards, but they can perform active actions (translating or proofreading) only within the tasks assigned to them. Regular language permissions are not used to grant translation or approval access while this option is enabled. + +This restriction applies to translators and proofreaders. Project members with language coordinator permissions or higher keep access according to their roles. For example, a translator with permission to work on French who is assigned to a task in German can work in the Editor only within the assigned German task, while having read-only access to French strings. + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/tasks/user-tasks.mdx b/src/content/docs/da/crowdin/tasks/user-tasks.mdx new file mode 100644 index 00000000..67628497 --- /dev/null +++ b/src/content/docs/da/crowdin/tasks/user-tasks.mdx @@ -0,0 +1,175 @@ +--- +title: Brugeropgaver +description: Learn how to view, filter, and manage tasks assigned to you +slug: user-tasks +sidebar: + order: 1 +--- + +import { Steps, Aside, CardGrid, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import { Image } from 'astro:assets'; +import tasksUserPage from '!/crowdin/tasks/tasks_userpage.png'; + +The Tasks is one of the essential tools for managing the localization process in Crowdin. As a contributor (translator or proofreader), you can view and manage your assigned tasks, track progress, access content assigned within the task, and communicate with project managers or other contributors. + +## Task Notifications + +To stay informed about new task notifications and the latest task updates, enable the Task event type in your account's Notifications settings. + +You'll receive notifications about any updates or changes to your tasks. These might include: + +* A task being assigned to you. +* A task deleted. +* Changes to task details like due dates, content, or status. +* Mentions and comments related to the task. + +There are four channels through which you can receive notifications. You can enable the ones that work best for you and disable unnecessary ones. + + + Read more about [Notifications](/account-settings/#notifications). + + +## Managing Assigned Tasks + +You can view, filter, and manage tasks assigned to you, allowing for efficient tracking and completion of your work in Crowdin. + +Brugeropgaver + +### Viewing and Filtering Assigned Tasks + +To view and filter all tasks assigned to you, open your profile and select **My Tasks** on the left sidebar + +You can view your tasks in the following two sections: + +* *All* – all the tasks assigned to you. +* *Archived* – the tasks you archived. + + + +On the **My Tasks** page, you can view tasks with the following details: + +* ID – the unique identifier for the task. +* Name – the title of the task. +* Task type label – indicates whether the task is for translation or proofreading. +* Status – the current status of the task. +* Project name – indicates the project in which the task is created. +* Target language – the target language involved in the task. +* Words left – the number of words left to be translated or proofread. +* Due date – the deadline for task completion, if specified by the project manager. + +By default, all tasks are displayed on the **My Tasks** page. To filter the tasks displayed, click and use the available filter options: + +* Projects: All, specific projects. +* Status: All statuses, To Do, In Progress, Done, Closed, Pending +* Language: All languages, specific language. +* Due date: All, Overdue now, Custom range. +* Created at: All, Today, Yesterday, Last 7 days, Last 30 days, This month, Last month, Custom Range. +* Type: Alle typer, Oversæt med egne oversættere, Korrekturlæsning med egne korrekturlæsere, Oversæt via leverandør, Korrekturlæsning via leverandør. + +To search for a particular task, type its name in the **Search tasks** field. + +To sort tasks, click **Sort by** and select one of the available options: + +* ID +* Created at +* Resolved at +* Due date + +### Viewing Task Details + +Before starting your work on a task, you can review task details to understand its scope. + +To view task details, follow these steps: + + + 1. Open your profile home page and select **My Tasks** on the left sidebar. + 2. Click on the task you want to view. + + +The task will open directly within the project it's associated with. Alternatively, you can access your assigned tasks by navigating to the specific project's **Tasks** tab and selecting yourself using the **Assignee** filter parameter. + + + +Click on any task in your list to view its details. In addition to the details available when [viewing all of your assigned tasks](#viewing-and-filtering-assigned-tasks), you will also see these details: + +* Created by – the user who created the task. +* Created and modified dates – when the task was created and modified. +* Started and resolved dates – timestamps indicating when you started and completed the task. +* Files – files associated with the task. +* Members – details like the number of words assigned to and remaining for each member. + +You can also open the task in the Editor by clicking **Translate** or **Proofread**, depending on the task type. + +If you prefer to work offline, click in the upper-right corner and select **Export in XLIFF**. When you are finished translating, use **Upload XLIFF translations** to upload your translations. + +### Starting and Working on Your Tasks + +Once you're ready to start working on a task: + + + 1. Click on the task to open it. + 2. Review the strings or files assigned to you. + 3. Click **Translate** or **Proofread** to start translating or proofreading as needed. + + +As you work on the task, change its status from **To Do** to **In Progress**. Once your work is complete, update the status to **Done**. + + + + + + +## Debatter og Kommentarer + +If you encounter issues or need assistance with your assigned task, leave a comment in the task for project managers or other contributors to see and respond. + +## Logging Time Spent on a Task + +As a contributor, you can log the time you spend on a task directly in the task comments. This logged time is used for generating the **Time Spent** report, which helps project managers calculate the cost of work based on hourly rates. You can also generate your own **Time Spent** report to track your contributions for tasks you've been assigned. + +To log your time, follow these steps: + + + 1. Open the task you are working on and go to the **Comments** section. + 2. In the **Log time (optional)** field, enter the time you spent using a format like `1h 15m 15s`. + 3. *(Optional)* Add a text comment to your log entry. + 4. Click **Send**. + + + + +## Splitting Tasks + +If a large task needs to be divided among multiple contributors, your project manager may split the content. You'll receive only a portion of the task to work on. Focus on completing your assigned section and mark it as done when finished. + +## Sekventielle opgaver + +In some cases, tasks may be part of a sequence where one needs to be completed before the next can begin. F.eks.: + +* You may complete a translation task, after which a proofreading task becomes available. +* If you're assigned a proofreading task linked to a translation task, it will remain pending until the translation is finished. + +Sequential tasks help streamline the process, ensuring that each step is completed in the correct order. + + + Read more about [Sequential Tasks](/tasks/#sequential-tasks). + + +## Q&A + + + The task due date (if specified by the project manager) is displayed on the task in your **Tasks** tab and its details section. You can also filter tasks by the due date in your **Tasks** tab to prioritize your work. + + + + Mark the task as **Done** in your task list. If the task is part of a sequence, this will trigger the next task (e.g., proofreading) to begin. + diff --git a/src/content/docs/da/crowdin/team-management/inviting-people.mdx b/src/content/docs/da/crowdin/team-management/inviting-people.mdx new file mode 100644 index 00000000..fa089d89 --- /dev/null +++ b/src/content/docs/da/crowdin/team-management/inviting-people.mdx @@ -0,0 +1,85 @@ +--- +title: Inviting People +description: Learn how to invite people to your translation project +slug: inviting-people +sidebar: + order: 1 +--- + +import { Image } from 'astro:assets'; +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import inviteDialogEmail from '!/crowdin/team-management/invite_dialog_email.png'; +import selectRoleDialog from '!/crowdin/team-management/select_role_dialog.png'; +import inviteDialog from '!/crowdin/team-management/invite_dialog.png'; +import manageLinksDialog from '!/crowdin/team-management/manage_links_dialog.png'; + +You can invite people to your project via the **Members** tab. The available roles include Manager, Developer / Translation Requestor, Language Coordinator, Proofreader, and Translator. For the Translator, Proofreader, and Language Coordinator roles, you can optionally limit access to specific target languages. If no languages are selected, the invitee will have access to all target languages in the project. + +The invitation process has different implications depending on your project's visibility. For **Private projects**, [Moderated project joining](/project-settings/privacy-collaboration/#privacy) is enabled by default, which means all member access to languages is managed upon invitation. For **Public projects**, you can decide whether to enable this setting. + + + +There are two main methods of involving people in the project: + +* Email or username invitation +* Sharing invitation links + + + +## Email or Username Invitation + +To invite people via email or Crowdin username, follow these steps: + + + 1. Open your project and go to the **Members** tab. + 2. Click **Invite**. Invite dialog + 3. In the **Invite People** dialog, click the role title to open the **Select role** dialog. + 4. In the **Select role** dialog, select the desired role. For the Translator, Proofreader, or Language Coordinator roles, you can select specific target languages or leave the field empty to allow access to all. + + 5. Click **Save** to confirm your selection. Select role dialog + 6. In the **Invite People** dialog, enter the emails or Crowdin usernames of the people you want to invite. + 7. *(Optional)* Customize the message your invitees will receive. + 8. Click **Invite**. + + +## Sharing Invitation Link + +To invite people via invitation link, follow these steps: + + + 1. Open your project and go to the **Members** tab. + 2. Click **Invite**. + 3. Configure the preferred role and language access as described in the [Email or Username Invitation](#email-or-username-invitation) section. + 4. In the **Invite People** dialog, click **Get Link**. + 5. *(Optional)* Click the arrow next to **Get Link** to configure additional settings: + * **Link Expiration** – Choose how long the invitation link will remain active (One hour, One day, One week, One month, or One year). + * **Short URL** – Enable this option to generate a more compact invitation link. + 6. Share the copied link with the person you want to invite. Invite dialog + + +## Managing Invitation Links + +To view and manage previously generated invitation links, click **Manage Links** in the **Invite People** dialog. + +In the **Manage links** dialog, you can: + +* View each link’s creation and expiration date +* See the role assigned to the link (e.g., Translator, Language Coordinator) +* Copy the link using the copy icon +* Revoke any link by clicking **Revoke link** + +Once revoked, a link immediately becomes inactive and can no longer be used to join the project. + +Manage links dialog + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/team-management/manager-permissions.mdx b/src/content/docs/da/crowdin/team-management/manager-permissions.mdx new file mode 100644 index 00000000..c8ecc657 --- /dev/null +++ b/src/content/docs/da/crowdin/team-management/manager-permissions.mdx @@ -0,0 +1,64 @@ +--- +title: Håndtér rettigheder +description: Learn about the manager role and how to assign managers to resources +slug: manager-permissions +sidebar: + order: 3 +--- + +import { Image } from 'astro:assets'; +import { Steps, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import managersSection from '!/crowdin/team-management/managers_section.png'; +import inviteManager from '!/crowdin/team-management/invite_manager.png'; +import inviteManagerTm from '!/crowdin/team-management/invite_manager_tm.png'; +import managersEditPermissions from '!/crowdin/team-management/managers_edit_permissions.png'; + +In Crowdin, you can assign managers to projects or localization resources (e.g., TMs, Glossaries, Style Guides). + + + +## Tilføjelse af administratorer til et projekt + +There are two possible ways to add a manager to your Crowdin project. You can invite managers via the project's **Members** tab or add them via your profile's **Managers** section. + + + Read more about [Inviting People](/inviting-people/). + + +To add a new manager to your projects via the **Managers** section, follow these steps: + + + 1. Open your profile home page and select **Managers** on the left sidebar. + 2. Click **Add Manager**. Managers section + 3. Angiv i den viste dialog administratorens e-mail/brugernavn. Invite manager + 4. (Optional) Enter a message your invitee will receive. + 5. In the **Projects** tab, select the projects you'd like to assign to that manager. + 6. Click **Add**. + + +## Adding Managers to TMs, Glossaries, and Style Guides + +Følg disse trin for at føje en ny administrator til TM'er og Ordlister: + + + 1. Open your profile home page and select **Managers** on the left sidebar. + 2. Click **Add Manager**. Managers section + 3. Angiv i den viste dialog administratorens e-mail/brugernavn. Invite manager + 4. (Optional) Enter a message your invitee will receive. + 5. In the **TM** and **Glossaries** tabs, select the localization resources you'd like to assign to that manager. + 6. Click **Add**. + + +## Redigering af administratortilladelser + +Følg disse trin for at redigere administratortilladelser: + + + 1. Open your profile home page and select **Managers** on the left sidebar. Managers section + 2. Dobbeltklik på en administrator på listen. + 3. Redigér i den viste dialog administratorens tilladelser som ønsket. Edit permissions + 4. Click **Save**. + + +If you want to completely remove a manager and revoke their access to the projects, TMs, or Glossaries, select the needed manager in your profile's **Managers** section and click **Remove**. diff --git a/src/content/docs/da/crowdin/team-management/project-members.mdx b/src/content/docs/da/crowdin/team-management/project-members.mdx new file mode 100644 index 00000000..5be031b5 --- /dev/null +++ b/src/content/docs/da/crowdin/team-management/project-members.mdx @@ -0,0 +1,62 @@ +--- +title: Project Members +description: Manage project members and their roles in your project +slug: project-members +sidebar: + order: 2 +--- + +import { Steps, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Image } from 'astro:assets'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import changeMemberRole from '!/crowdin/team-management/change_member_role.png'; +import configureLanguagePermissions from '!/crowdin/team-management/configure_language_permissions.png'; + +Roles define what project members can do based on their responsibilities and assigned languages. Project owners and managers can invite new members, assign roles, and manage their permissions. Language Coordinators can also manage members within their assigned languages, including inviting Translators and Proofreaders or reviewing join requests if the project uses [moderated joining](/project-settings/privacy-collaboration/#privacy). + +## Changing Role + +To change the role of a project member, follow these steps: + + + 1. Open your project and go to the **Members** tab. + 2. Click **Details** toward a needed member in the list. + 3. In the appeared dialog, switch to the **Permissions** tab. + 4. Select a new role. + 5. Click **Save**. Changing Member Role + + + + +## Sprogtilladelser + +For Translator, Proofreader, and Language Coordinator roles, if no specific language permissions are set during the invitation, access will be granted to all target languages by default. + +To configure language-specific access for these roles, follow these steps: + + + 1. Open your project and go to the **Members** tab. + 2. Click **Details** toward a needed member in the list. + 3. In the appeared dialog, switch to the **Permissions** tab. + 4. Select the needed languages a member should have access to. You can simultaneously set both the **Translator** and **Proofreader** roles to the same member with specific language permissions (e.g., Translator with access to Ukrainian and Proofreader with access to French). + 5. Click **Save**. Configuring Language Permissions + + +## Q&A + + + It depends on the level of access the user should have. Here's the main difference between these roles: + +* **Proofreader** – can approve translations but has no access to project settings or member management. +* **Language Coordinator** – can approve translations and manage translators and proofreaders within their assigned languages. This includes inviting them or reviewing join requests (if the project uses moderated joining), but Language Coordinators can’t access project-wide settings or files. +* **Manager** – has broader access and can manage project members, files, tasks, integrations, and more across the entire project. + +If the user should manage the whole localization process, invite them as a manager. If they only need to manage contributors within specific languages, the Language Coordinator role may be more suitable. Otherwise, if the focus is only on approving translations, the Proofreader role is enough. + + +## Se også + + + + + diff --git a/src/content/docs/da/crowdin/team-management/roles.mdx b/src/content/docs/da/crowdin/team-management/roles.mdx new file mode 100644 index 00000000..466e9089 --- /dev/null +++ b/src/content/docs/da/crowdin/team-management/roles.mdx @@ -0,0 +1,61 @@ +--- +title: Roles +description: Learn about the roles and permissions that users can have in Crowdin +slug: roles +sidebar: + order: 0 +--- + +import { Aside, LinkCard } from '@astrojs/starlight/components'; + +Roles in Crowdin define the level of access and control users have within the platform. By assigning roles, you can manage user permissions across the Editor, project settings, and resources. + +Below you can find descriptions of each role and its associated permissions. + +## Owner + +Owner is the user who created the project and has complete control over it. The owner can invite users to the project and manage their access, work with source and translation files, configure project settings, and manage account-level resources such as AI providers, MT engines, and more. + + + +## Leder + +Manager has similar rights to the project owner within assigned projects. They can manage project members, files, localization resources (i.e., TMs and Glossaries), tasks, integrations, reports, and other project-specific resources. Managers can’t delete projects or configure the project owner’s account-level resources such as AI providers or MT engines. + +**Use case:** Suitable for trusted team members who manage the full localization process within specific projects. + +## Developer / Translation Requestor + +Developer / Translation Requestor can upload source files, edit translatable text, connect integrations, and access the API. They don’t have permissions to manage project members, tasks, or reports. + +**Use case:** Suitable for users handling the technical aspects of localization, such as file management, integration setup, or automation. + +## Language Coordinator + +Language Coordinator can manage certain project features only for their assigned languages. They can translate and approve strings, manage project members and join requests, generate project reports, create tasks, and pre-translate content. Language Coordinators cannot access other project settings such as source files, integrations, or project configurations. + +**Use case:** Suitable for users coordinating translations across specific project languages. + +## Proofreader + +Proofreader can translate and approve strings within assigned projects. They do not have access to project settings or management functions. + +**Use case:** Suitable for users focused on finalizing translations and ensuring quality. + +## Translator + +Translator can add translations and vote on suggestions made by others. They do not have the ability to approve translations or access project settings. + +**Use case:** Suitable for users responsible for providing translations without additional management responsibilities. + +## Blocked + +Blocked users cannot access the project and are restricted from performing any actions. + +**Use case:** Used when a user’s access to the project needs to be revoked. + +## Se også + + diff --git a/src/content/docs/da/crowdin/translation-process/ai-fine-tuning.mdx b/src/content/docs/da/crowdin/translation-process/ai-fine-tuning.mdx new file mode 100644 index 00000000..bc8e489c --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/ai-fine-tuning.mdx @@ -0,0 +1,210 @@ +--- +title: AI Fine-tuning +description: Refine AI models with fine-tuning for improved localization results +slug: ai-fine-tuning +pagefind: false +sidebar: + order: 3 + hidden: true +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import fineTuningCreate from '!/crowdin/translation-process/fine_tuning_create.png'; +import fineTuningJobsList from '!/crowdin/translation-process/fine_tuning_jobs_list.png'; +import fineTuningGraph from '!/crowdin/translation-process/fine_tuning_graph.png'; + +Fine-tuning in Crowdin enhances AI models using your project-specific data, tailoring translations to your style, tone, and terminology. By leveraging approved translations from your projects and translation memories (TMs), fine-tuning improves translation quality, reduces operational costs, and adapts AI performance to your localization workflows. + +Fine-tuning is available for Pre-translate prompts that use supported AI models and providers with custom API credentials, enabling the creation of AI models tailored to your localization needs. + + + +## Key Benefits of Fine-tuning + +Fine-tuning enhances the performance of AI models, offering the following advantages: + +* **Improved Accuracy** – Models trained on your data align closely with your style, tone, and domain-specific terminology. +* **Better Context Handling** – Handle edge cases and complex scenarios by training the model with real-world examples from your projects. +* **Cost Savings** – Fine-tuning reduces token usage by enabling shorter and more precise prompts. +* **Incremental Updates** – Train models on new data without starting from scratch, saving time and resources. + + + +## Managing Fine-tuning Jobs + +You can create new fine-tuning jobs, monitor their progress, and review detailed metrics for completed jobs. + +### Creating Fine-tuning Job + +To create a fine-tuning job, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Fine-tuning** tab, click **Create** to set up a new fine-tuning job. + 3. Configure the [basic parameters](#basic-parameters) and optional [advanced parameters](#advanced-parameters). Advanced parameters are typically adjusted for complex datasets or when fine-tuning a model for specific domain requirements. + 4. *(Optional)* [Estimate the fine-tuning cost](#estimating-fine-tuning-cost) before proceeding. + 5. Click **Start fine-tuning**. Create Fine-tuning Job + 6. Monitor the fine-tuning progress in the **Fine-tuning Jobs** section and [evaluate results](#evaluating-fine-tuned-models) after completion. + + +### Estimating Fine-tuning Cost + +Estimating the cost of fine-tuning before running the process helps you ensure that the training fits within your budget and allows you to adjust parameters for optimal results. This step is particularly useful if you're working with a large dataset or running multiple fine-tuning jobs. + +To estimate the cost of fine-tuning, follow these steps: + +1. Go to **Advanced Parameters** and set the **Epochs Number** to 1. +2. Click **Start fine-tuning**. +3. The system will calculate and display the approximate fine-tuning price. At this point, you can: + * Click **Proceed** to start the actual fine-tuning if the price aligns with your expectations. + * Click **Back** to adjust the parameters and refine your configuration to potentially lower the cost. + +By estimating costs upfront, you avoid unnecessary expenses and can experiment with different configurations to strike the right balance between performance and budget. + +### Viewing and Filtering Fine-tuning Jobs + +Once you open the **Fine-tuning** tab on the **AI** page, you can view and filter fine-tuning jobs to monitor their progress and results. + +You can view a list of all created fine-tuning jobs with the following details: + +* Job ID – the unique identifier of the fine-tuning job. +* Status – the current state of the job (e.g., In Progress, Finished, Failed). +* Created At – the date and time the job was created. + +Fine-tuning Jobs List + +To filter jobs, click and apply the following filters: + +* Status: All, Finished, In Progress, Failed. + +Click **Clear Filter** to reset filters and display all jobs. + +Double-clicking a job opens its detailed metrics, including parameters, results, logs, and other relevant information. + +### Fine-tuning Configuration Parameters + +You can configure a fine-tuning job using basic and advanced parameters. + +#### Basic Parameters + +The following parameters are required for initiating fine-tuning: + +* **Prompt** – Choose the Pre-translate prompt to be fine-tuned. +* **Projects** – Select projects whose translations will be used for training. Ensure the selected projects contain approved translations. +* **Translation Memories** – Include TM segments for training data. Leave blank to exclude TMs. +* **Date Range** *(Optional)* – Specify the approval date range for filtering translations. + +#### Advanced Parameters + +Advanced parameters provide greater control over the fine-tuning process and include options for both training and validation datasets. + +##### Training Dataset Parameters + +Training dataset parameters control the data used to train your model. These settings determine the size and scope of the dataset, ensuring it's sufficient for effective training: + +* **Batch Size** – The number of examples in each batch during training. Larger batch sizes reduce variance but increase training time. +* **Learning Rate Multiplier** – Adjust the scaling factor for the learning rate. Smaller values help prevent overfitting, while larger values speed up learning. +* **Epochs Number** – The number of complete passes through the training dataset. Higher values improve accuracy but increase costs. +* **Dataset Size Constraints** – + * **Maximum Dataset File Size (in bytes)** – Restricts the size of the training dataset. + * **Minimum Number of Examples in Dataset** – Sets the lower limit for training data size. + * **Maximum Number of Examples in Dataset** – Sets the upper limit for training data size. + + + +##### Validation Dataset Parameters + +Validation datasets are used to test how well the fine-tuned model performs on unseen data. Configuring a validation dataset is optional but recommended for assessing model performance. + +* **Projects** – Select different projects from those used for training. +* **Translation Memories** – Include TM segments for validation. +* **Date Range** – Filter translations by approval dates for validation. +* **Dataset Size Constraints** – + * **Maximum Dataset File Size (in bytes)** – Restricts the size of the validation dataset. + * **Minimum Number of Examples in Dataset** – Sets the lower limit for validation data size. + * **Maximum Number of Examples in Dataset** – Sets the upper limit for validation data size. + + + +## Evaluating Fine-tuned Models + +After fine-tuning is complete, a new model is generated along with detailed metrics, including training and validation losses, job parameters, and logs. Use this data to evaluate your model’s performance and determine if it’s ready to integrate into your Pre-translate prompt. + +### Model Details + +Key information about your fine-tuned model includes: + +* **Model**: Name of the fine-tuned model. +* **Status**: Job status (e.g., In progress, Finished, Failed). +* **Job ID**: Unique identifier for the fine-tuning job. +* **Base Model**: Initial model used as a starting point for fine-tuning. +* **Output Model**: Name of the resulting fine-tuned model. +* **Created At**: Date and time when the job was initiated. + +### Fine-tuning Parameters + +Details about the parameters configured for the fine-tuning job: + +* **Trained Tokens**: Total tokens processed during training. +* **Epochs Number**: Number of full passes through the dataset. +* **Batch Size**: Number of examples in each training batch. +* **Learning Rate Multiplier**: Scaling factor for the learning rate, determining how quickly the model adjusts weights during training. + +### Fine-tuning Results + +Metrics and tools available for assessing your fine-tuned model’s performance: + +* **Training Loss**: Indicates how well the model fits the training data. Lower values indicate better learning. +* **Validation Loss**: Assesses who well the model performs on unseen data. Available only if a validation dataset is configured. +* **Full Validation Loss**: Represents the model's overall performance on the entire validation dataset, if applicable. + +Review the results to determine whether they meet your requirements. If so, you can [integrate](/crowdin-ai/#configuring-ai-prompts) the fine-tuned model into your Pre-translate prompt for immediate use. + +#### Metrics and Graphs + +Crowdin provides multiple ways to evaluate fine-tuning results, including interactive graphs and a detailed metrics table. + +* **Interactive Graphs** – Visualize fine-tuning metrics such as Training Loss, Validation Loss, and Full Validation Loss over the course of training. Hover over points on the graph for step-specific details. You can highlight or hide specific metrics by clicking their titles below the graph. Fine-tuning Graph +* **Metrics Tab** – Access the same data in table format for a comprehensive overview. The table provides a step-by-step breakdown, making it easier to identify patterns or issues during fine-tuning. A steady decline in loss values across steps reflects effective training, with values closer to zero indicating better results. + +Both tools are available in the Fine-tuning Job Details page, allowing you to analyze performance trends and troubleshoot any anomalies effectively. + +#### Messages Tab + +The **Messages** tab provides logs returned by the AI provider, offering a detailed timeline of the job's progress, including key milestones (e.g., checkpoint creation, job completion) and troubleshooting insights. + +## Incremental Fine-tuning + +Update fine-tuned models iteratively to include newly approved translations. Use the **Date Range** parameter to avoid retraining from scratch. + +Example workflow: + +* **Initial Fine-tuning** – Train a base model using the full dataset. +* **Subsequent Fine-tuning** – Train on newly approved translations only to create an updated model while retaining prior training data. + +Incremental fine-tuning is ideal for projects with ongoing updates, allowing you to keep your model optimized without retraining from scratch. + + + +## Downloading Datasets + +Datasets can be downloaded for external fine-tuning, use with external tools, or local validation before training. + + + Read more about [Downloading Datasets](/enterprise/ai-fine-tuning/#downloading-datasets). + + + diff --git a/src/content/docs/da/crowdin/translation-process/crowdin-ai.mdx b/src/content/docs/da/crowdin/translation-process/crowdin-ai.mdx new file mode 100644 index 00000000..7b5f1a23 --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/crowdin-ai.mdx @@ -0,0 +1,424 @@ +--- +title: Crowdin AI +description: Powerful AI capabilities to improve localization workflows +slug: crowdin-ai +sidebar: + order: 1 +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { Badge } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import configuringPromptBasic from '!/crowdin/translation-process/crowdin_ai_configuring_prompt_basic.png'; +import configuringPromptAdvanced from '!/crowdin/translation-process/crowdin_ai_configuring_prompt_advanced.png'; +import promptsList from '!/crowdin/translation-process/crowdin_ai_prompts_list.png'; +import configuringProvider from '!/crowdin/translation-process/crowdin_ai_configuring_provider.png'; + +Crowdin integrates with top AI providers, including OpenAI, Google Gemini, Microsoft Azure OpenAI, and more, allowing you to leverage advanced AI-powered translations that consider additional context at different levels. These translations can be applied to your content with a few clicks using [pre-translation via AI](#pre-translation-via-ai). Additionally, AI in Crowdin can be used for [AI suggestions in the Editor](#using-ai-in-the-editor) and [AI QA checks](#ai-qa-check). + +You can expand your AI provider options by installing respective applications from the Crowdin [Store](https://store.crowdin.com/tags/ai). + +## Configuring AI + +Crowdin AI integration provides powerful capabilities for enhancing localization workflows. Configuring AI involves [setting up providers](#configuring-ai-providers) and [creating prompts](#configuring-ai-prompts). + + + +### Configuring AI Prompts + +Prompt engineering is crucial for guiding AI in understanding context and providing accurate translations. Customizing prompts within Crowdin ensures that AI algorithms comprehend the nuances of your project, resulting in improved translation quality. + +* **Contextual Prompts** – customize prompts to provide contextual information, such as project-specific terminology, style preferences, and target audience considerations. For example, include instructions on translating technical terms consistently or maintaining brand tone across languages. +* **Placeholder Utilization** – incorporate placeholders to dynamically insert context-specific information into prompts, enabling AI to generate translations aligned with project requirements. +* **File-Level Context** – use file-level context to provide instructions and contextual insights, enhancing AI's understanding of content nuances. Include file descriptions, summaries, or references to glossaries and style guides. + +To configure AI prompts, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Prompts** tab, click **Add prompt**. If no prompts have been created yet, you can click **Create Default Prompts** to quickly set up pre-configured samples which can be customized to your personal preferences. + 3. In the appeared dialog, set the prompt parameters: + * Select the prompt type (i.e., [Pre-translation & AI Suggestion](#pre-translation-via-ai), [QA check](#ai-qa-check), or Create custom type) + * Custom type name (Specific to the custom prompt type) + * Use this prompt as the default prompt for AI Suggestion in editor (Specific to Pre-translation & AI Suggestion prompt type) + * Title + * Model (this also includes the AI Provider) + * Advanced settings: + * Visibility – Select projects where a prompt can be used: + * All Projects – The prompt is available in all projects. + * Selected Projects – The prompt is available only in the projects you select. If no projects are selected, or if all assigned projects are later deleted, the prompt will not be available in any project. + * Auto-retry on QA issues – Allows automatically send an additional request to the AI if the received translation fails the QA checks. + * Prompt editor mode (i.e., Basic or Advanced) + * Additional context (Basic mode) – specify which data will be included in the prompt using the following fields: + + * Other languages translations – select specific language translations to be considered by AI as additional context or leave this field as is to use translations from all languages. + * Glossary terms – allows AI to consider domain glossary terms. + * TM suggestions – allows AI to consider TM suggestions. + * Style guides – allows AI to consider the rules, tone, and linguistic preferences defined in the style guides assigned to the project. + * Previous and next strings – allows AI to consider previous and next strings for additional context. + * File context – allows AI to consider a textual description of the file added in the [file settings](/file-management/#file-context) or in the [Editor](/online-editor/#file-context). + * AI-Generated File Context – automatically generate file context when it's missing. If the file context isn’t provided manually, AI will analyze the source content and generate a contextual summary. This summary is used both during pre-translation and as reference material in the Editor. + * Screenshots – allows AI to consider visual context from screenshots where the strings are tagged. This enhances accuracy and context awareness. Read more about [Screenshots](/screenshots/). + * Public project description – allows AI to consider the public project description. + * Snippets – select reusable content previously created in your Crowdin account's **AI > Snippets** to quickly insert standard text snippets into your prompt. + * Evaluation steps (Specific to the QA check prompt type) – define the criteria the AI uses to evaluate translations. You can customize, remove, or create new steps tailored to your quality requirements. + Configuring AI Prompt (Basic Mode) + * Advanced mode – click **Advanced mode** to compose your prompt with a higher degree of precision. Use the following placeholders to insert context: + * `%sourceLanguage%` – The source language of the project. + * `%targetLanguages%` – A list of all the project’s target languages. + * `%targetLanguage%` – The language the content is translated into. + * `%pluralForms%` – A list of plural forms for the target language. + * `%strings%` – A collection of strings for the current segment, including the string identifier (key), context, text, maximum length, and translations to other languages (if the translations placeholder is specified). + * `%translationUnits%` – A list of translation units (source and translation) for the AI to evaluate during QA checks. + * `%fileName%` – The file name of the current segment. + * `%fileContext%` – The file context of the current segment (provided via the file settings modal in the 'Files' tab). + * `%siblingsStrings%` – The previous and next segments in the file, allowing for contextual translation. + * `%filteredStrings%` – Strings that match the current filter in the Editor, provided to AI for improved evaluation accuracy and efficiency. + * `%projectName%` – Crowdin project name. + * `%projectPublicDescription%` – Project public description. + * `%assignedStyleGuides%` – The style guides assigned to the project. + * Snippets – insert reusable content previously defined in your Crowdin account's **AI > Snippets** by using the `%custom:snippetName%` format. + Configuring AI Prompt (Advanced Mode) + + 4. Klik på **Opret**. + + +#### Creating Prompts in Project Settings + +You can also create prompts directly from a project’s **Settings > AI** section. Prompts created this way will have their visibility set only to that specific project by default. + + + Read more about [AI Settings in a project](/project-settings/ai/). + + +### Managing AI Prompts + +Managing AI prompts in Crowdin involves various operations such as filtering and searching, editing, cloning, and deleting AI prompts. Fnd vejledninger til hver operation nedenfor. + +#### Viewing and Filtering AI Prompts + +Once you open the **AI** page, you can view and search for prompts in the **Prompts** tab. + +You can view the list of added prompts with the following details: + +* **Name** – The name of the prompt. +* **Visibility** – Shows a counter of how many projects the prompt is available in with the list of projects (with clickable links). +* **Type** – The prompt's type (e.g., Pre-translation & AI Suggestion, QA check, Custom type). +* **Model** – The AI model used by the prompt. A status indicator next to the model name shows if the prompt is ready to use: + * A **green dot** indicates the prompt is configured correctly and ready for use. + * A **red dot** indicates an issue with the prompt's configuration (e.g., the selected provider is disabled). Hover over the model name to see the specific error message. +* **Created** – The date the prompt was created. +* **Created by** – The user who created the prompt. +* **Last modified** – The date the prompt was last updated. +* **Modified by** – The user who last modified the prompt. +* **Last used by** – The user who last used the prompt. +* **Last used** – The date the prompt was last used. +* **Usage count** – The total number of times the prompt has been used. + + + +To find a specific prompt, use the **Search** field. To narrow down the list, click the **Filters** button, which allows you to filter by **Type**, **Created** date, **Created by** user, **Last modified** date, **Modified by** user, **Last used by** user, and **Last used** date. + +Prompts List + +#### Editing AI Prompts + +If you need to adjust your already configured prompt, you can simply edit it. + +To edit AI prompts, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Prompts** tab, click toward the needed prompt and select **Edit**. + 3. Modify the prompt as needed and click **Update** to save changes. + + +When editing a prompt, you'll find the **Prompt metadata** section. This information provides a clear audit trail for collaboration and troubleshooting. By tracking creation, modification, and usage data, you can understand which prompts are most effective, identify popular prompts for optimization, and manage costs more efficiently. The section contains the following read-only details: + +* **Created by** – The user who created the prompt. +* **Created** – The date and time the prompt was created. +* **Modified by** – The user who last modified the prompt. +* **Last modified** – The date and time the prompt was last modified. +* **Last used by** – The user who last used the prompt. +* **Last used** – The date and time the prompt was last used. +* **Usage count** – The total number of requests made to the AI using this prompt. + +Editing prompts allows you to update and improve them as needed to ensure they remain effective and aligned with your requirements. If you don't want to lose the current prompt configuration and are uncertain about the changes, consider [cloning](#cloning-ai-prompts) your prompt and experimenting with the copy. + +#### Cloning AI Prompts + +Cloning AI prompts allows you to experiment with and refine prompt configurations without altering the original. This feature is particularly useful for testing improved versions of prompts while preserving the initial setup. + +To clone AI prompts, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Prompts** tab, click toward the needed prompt and select **Clone**. + 3. As a result, a copy of the prompt will appear in the prompt list. + + +You can then [edit](#editing-ai-prompts) the cloned prompt to experiment with different configurations. This allows you to safely test enhancements and optimize performance without risking the loss of the original prompt configuration. + +#### Deleting AI Prompts + +Deleting AI prompts is a straightforward process, but it should be done with caution to avoid losing valuable configurations. This action is useful when you no longer need a specific prompt or want to clean up unused prompts. + +To delete AI prompts, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Prompts** tab, click toward the needed prompt and select **Remove**. + 3. Bekræft sletningen. + + + + +### Configuring AI Providers + +Crowdin supports various AI providers, each offering unique models and features for translation tasks. By configuring providers, you can tailor AI functionality to suit your specific localization needs. Whether using managed by Crowdin services or integrating your own API keys, Crowdin enables seamless integration with AI services. + +In the **Providers** tab, you can view the list of providers with the following details: + +* **Name** +* **Status**: Enabled, Disabled. +* **Managed by Crowdin**: yes, no. +* **Prompts count**: if there are one or more prompts configured with a particular provider, you'll see the actual number of prompts, otherwise you'll see the **Create** button that redirects to the prompt creation dialog. + +Crowdin AI providers are categorized into two types. System providers (e.g., OpenAI, Microsoft Azure OpenAI, Google Gemini) are built-in and available for immediate configuration. Additionally, you can expand your options by installing other AI providers from the Crowdin Store. + +Currently, Crowdin supports the following AI providers: + +* Crowdin AI +* OpenAI +* Microsoft Azure OpenAI +* Google Gemini +* Mistral AI +* Anthropic +* xAI +* IBM Watsonx +* DeepSeek +* [Groq](https://store.crowdin.com/groq) +* [Cloudflare Workers AI](https://store.crowdin.com/cloudflare-workers-ai) +* [Fireworks AI](https://store.crowdin.com/fireworks-ai) +* [Together AI](https://store.crowdin.com/together-ai) +* [OpenRouter](https://store.crowdin.com/openrouter) +* [Cohere](https://store.crowdin.com/cohere) +* [Replicate](https://store.crowdin.com/replicate) +* [Credal](https://store.crowdin.com/credal) +* [AWS Bedrock](https://store.crowdin.com/aws-bedrock) +* [Alibaba Cloud Model Studio](https://store.crowdin.com/alibaba-cloud-model-studio) +* [Xiaomi MiMo](https://store.crowdin.com/xiaomi-mimo) + +New AI providers are added regularly. + +When configuring AI providers, you can choose from two possible options: + +* **Use your own API keys** – Crowdin recommends this option if data security is a concern and for enhanced privacy and ownership. This option requires an external registration for getting API keys/credentials from AI providers. +* **Use Managed by Crowdin service** – simplified AI integration without the need to manage your own API keys. Allows you to leverage Crowdin's default settings and infrastructure to access AI capabilities in a convenient way. Ideal for straightforward, quick tasks. To start using AI providers managed by Crowdin, you just need to add funds to your balance. + +To configure an AI provider, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Providers** tab, click toward the needed provider and select **Edit**. Alternatively, just double-click on the needed provider. + 3. Select **Enabled**. + 4. Choose your credential type: + * To use the [Managed by Crowdin service](/crowdin-credits/), select **\{Provider} managed by Crowdin**. In this case, you'll need to [add funds to your account balance](#adding-funds-to-account-balance). + * To use your own account, select **Use my own API key** and enter the required credentials. For instructions on generating an API key, please refer to your AI provider's official documentation. Some AI providers may also require additional specific credentials. See the [Provider-Specific Credentials](#provider-specific-credentials) section below for details. + 5. *(Optional)* Click **Advanced settings** to access additional options: + * **Override Base URL** – Allows you to direct AI provider requests to a custom or region-specific endpoint instead of the default URL. This is useful if you are using a proxy or consuming the AI from a third-party service that provides a custom endpoint. Otherwise, you can leave this field blank. + + 6. Click **Update**. + + +Configuring AI Provider + +#### Provider-Specific Credentials + +Some AI providers require additional information beyond a standard API key for authentication when you use your own credentials. + +##### Google Gemini + +When configuring Google Gemini, you will need to provide the following credentials: + +* **Project ID**: Your unique Google Cloud Project ID. You can find this on the dashboard of your Google Cloud Console. + +* **Region**: The region where your model is hosted. Ensure the model you plan to use is available in the selected region. You can find this on your Vertex AI dashboard. See the official Google Cloud documentation for a list of [available Gemini models and regions](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations). + +* **Service Account Key**: A JSON file used for authentication. To get this file: + + + 1. In your Google Cloud project, go to **IAM & Admin > Service Accounts**. + 2. Create a new service account or select an existing one. + 3. Grant it the **Vertex AI User** role (`roles/aiplatform.user`). + 4. Go to the **Keys** tab for that service account, click **Add Key > Create new key**, select **JSON**, and click **Create**. The key will be downloaded automatically. + 5. In Crowdin, click **Choose file** to upload this JSON key. + + +##### Microsoft Azure OpenAI + +When configuring Microsoft Azure OpenAI, you will need to provide the following credentials: + +* **Resource name**: The name of your Azure OpenAI service resource, which you can find in your main Azure portal. +* **Deployment name**: The name you assigned to your deployment. +* **API Version**: The API version required for your model. You can typically find the recommended version in the deployment's properties or in the code samples provided by Azure. For example: `2024-02-01`. + +##### IBM Watsonx + +When configuring IBM Watsonx, you will need to provide the following credentials: + +* **Project ID**: Your Watsonx.ai project ID. To find it, navigate to your project, go to the **Manage** tab, and copy the **Project ID** from the *General* section. +* **Region**: The region where your Watsonx project is located. You can find this on your project dashboard. See the official IBM Cloud documentation for a list of [available regions for watsonx.ai](https://dataplatform.cloud.ibm.com/docs/content/wsj/getting-started/regional-datactr.html). + +### Disabling AI Providers + +If needed, you can disable any of the previously enabled providers at any time. + +To disable the AI provider, follow these steps: + + + 1. Open your profile and select **AI** on the left sidebar. + 2. In the **Providers** tab, click toward the needed provider and select **Disable**. Alternatively, double-click on the needed provider and clear **Enabled** in the provider's settings. + + +### Adding Funds to Account Balance + +MT engines and AI models managed by Crowdin are separately paid services. To use them, you first need to add funds to your Crowdin account balance. + + + Read more about [Adding Funds to Account Balance](/crowdin-credits/#adding-funds-to-account-balance). + + +### Snippets for AI Prompts + +Snippets are reusable pieces of information that help AI understand your project better. They provide context about your company, product, or specific requirements like brand voice and target audience. Managing this information as snippets saves time and helps generate better, more consistent translations. + +In the **Snippets** tab, you can view snippets with the following details: + +* **Name** – the unique identifier used to insert the snippet into prompts. +* **Description** – a brief explanation of the snippet's purpose. +* **Created at** – date the snippet was created. + +Use the **Search** field to quickly find specific snippets. + +#### Creating Snippets + +To create a new snippet, follow these steps: + + + 1. Click **Add Snippet** in the **Snippets** tab. + 2. In the **Add Snippet** dialog, fill in the following fields: + * **Name** – A unique identifier for your snippet (e.g., `company-description` or `target-audience`). + * **Description** – A brief summary of the snippet's purpose for easy identification. + * **Content** – The actual text that will be inserted into prompts when the snippet is used. + 3. Klik på **Opret**. + + +#### Using Snippets in Prompts + +Once created, snippets can be inserted into any AI prompt: + +* In **Basic mode**, select one or more snippets from the dropdown menu in the **Snippets** section. +* In **Advanced mode**, insert a snippet using its placeholder format: `%custom:snippetName%`. For example, a snippet with the name `company-description` would be inserted as `%custom:company-description%`. + +#### Managing Existing Snippets + +To edit or delete a snippet, click in the *Actions* column on the desired snippet and select **Edit** or **Delete**. Alternatively, just double-click it to edit. + +### AI Settings for the Account + +To configure default AI settings for your Crowdin account, open your profile and go to **AI > Settings**. These global settings will be applied by default to all new projects but can be overridden for each project in its **Settings > AI** section. + +For each setting, you can either select an existing prompt from the drop-down menu or click to create a new one. Clicking the plus icon will open the prompt creation dialog with the appropriate prompt type pre-selected. + +#### Præoversættelse + +Select a default prompt with the **Pre-translation & AI Suggestion** type. This prompt will be automatically selected when you run pre-translation via AI in any project, speeding up the configuration process. You can still choose a different prompt before running the pre-translation. + +#### Editor AI Suggestion + +Select a default prompt with the **Pre-translation & AI Suggestion** type for AI suggestions in the Editor. If no prompt is selected, AI suggestions will not be shown in the **Context & Translations** section. + +#### AI QA Check {#ai-qa-check-account-settings} + +Select the default **QA check** type prompt to be used for AI-powered quality assurance across all projects. If no account-wide prompt is configured, the AI-powered check will not be applied unless a prompt is selected in a specific project's Settings. + + + +## Pre-translation via AI + +Pre-translation via AI allows you to use AI Models to pre-translate your content with high-quality, context-aware translations. + + + + + +## Using AI in the Editor + +To use AI in the Editor, configure a prompt with the **Pre-translation & AI Suggestion** type and select it in **AI > Settings > Editor AI Suggestion**. + +Once configured, translators can use AI-powered translation suggestions in the **Context & Translations** section for each string. + +For advanced chat-based assistance in the Editor, use the Crowdin Copilot app: + + + +## AI QA Check + +AI QA Check uses AI to automatically evaluate translations against defined quality standards. It helps translators quickly identify and resolve issues, ensuring accuracy, consistency, and compliance with project-specific requirements. AI QA Check complements and extends default QA Checks by providing comprehensive flexibility, reducing manual review efforts, and enhancing overall translation quality. + +### How AI QA Check Works + +When enabled, AI QA Check evaluates each submitted translation against a set of customizable evaluation criteria (Evaluation steps) defined in the configured QA Check prompt. Issues detected by the AI appear directly within the Editor as warnings, along with concise suggestions for corrections. + +Evaluation steps may include: + +* **Accuracy** – Ensuring no content is omitted, added, or incorrectly translated. +* **Fluency** – Checking grammar, spelling, punctuation, and readability. +* **Terminology** – Confirming consistent and correct use of project-specific terms. +* **Style** – Verifying translations align with defined stylistic guidelines. +* **Design** – Ensuring translations fit design constraints, including length and markup. +* **Locale Convention** – Adapting formats for dates, currencies, addresses, and more. +* **Cultural Adaptation (Verity)** – Localizing culture-specific references appropriately. +* **General Issues** – Identifying other miscellaneous quality issues. + +For example, if a translation deviates from established glossary terms or fails to meet local formatting standards, the AI will highlight this and offer recommendations, guiding translators to achieve compliance and consistency. + +### Setting Up AI QA Check + +To use AI QA Check, create and configure a [QA Check prompt](#configuring-ai-prompts). Each QA Check prompt contains clearly defined evaluation steps the AI follows to detect translation issues. Unlike other AI prompts, the QA Check prompt includes a dedicated **Evaluation steps** section, allowing you to customize, edit, or expand upon predefined checks. + +You can also enhance the accuracy of the AI’s analysis by including various types of additional context relevant to your project's content. + +After configuration, you can assign a QA Check prompt as the default for all projects under your account or for individual projects. + +### Applying AI QA Check in Projects + +To enable AI QA Check in your projects, follow these steps: + + + 1. [Create and enable a QA Check prompt](#configuring-ai-prompts). + 2. Set it as the default QA prompt in the project's **Settings > AI > Settings**. + 3. Enable the **AI-powered check** in the project's **Settings > QA Checks**. + + +Once set, the AI continuously checks submitted translations, ensuring consistent compliance with your project's quality guidelines. + +## Se også + + diff --git a/src/content/docs/da/crowdin/translation-process/offline-translation.mdx b/src/content/docs/da/crowdin/translation-process/offline-translation.mdx new file mode 100644 index 00000000..3cadea0d --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/offline-translation.mdx @@ -0,0 +1,147 @@ +--- +title: Offline-oversættelse +description: Downloading and uploading files for offline translation +slug: offline-translation +sidebar: + order: 6 +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import ReadMore from '~/components/ReadMore.astro'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import { Image } from 'astro:assets'; +import downloadFilesEditor from '!/crowdin/translation-process/download_files_editor.png'; +import downloadFiles from '!/crowdin/translation-process/download_files.png'; +import downloadFiles2 from '!/crowdin/translation-process/download_files_2.png'; +import downloadFilesExportFiltered from '!/crowdin/translation-process/download_files_export_filtered.png'; +import downloadUploadGrid from '!/crowdin/translation-process/download_upload_grid.png'; +import uploadTranslationsEditor from '!/crowdin/translation-process/upload_translations_editor.png'; +import uploadTranslationsLanguagePage from '!/crowdin/translation-process/upload_translations_language_page.png'; +import uploadTranslationsXliff from '!/crowdin/translation-process/upload_translations_xliff.png'; + +Offline translation allows you to work on project files outside Crowdin using your preferred desktop CAT tools. Once translations are completed, you can upload them back to the project. This option is available only if downloads are enabled in the [Project Settings](/project-settings/privacy-collaboration/#privacy) by the project manager. + +## Download af filer + +Separat download kan ske af hver fil (i original- eller XLIFF-format), af filtrerede strenge (i XLIFF-format) eller af alle filer på et bestemt sprog (i original- eller XLIFF-format). Dette kan gøres fra Editor eller sprogsiden. + + + +### Downloading a Single File via Editor + +Følg disse trin for at downloade én enkelt fil til offline-oversættelse: + + + 1. Åbn en fil i Redigeringsværktøjet. + 2. Go to **File** in the main menu and select **Download** or **Export as XLIFF**. Download File + + +### Downloading a Single File via Language Page + + + 1. Åbn det relevante projekt og vælg et sprog. + 2. Click next to the file you want to download. + 3. Select **Download** or **Export in XLIFF**. Download File + + +### Downloading All Files for a Specific Language + +Følg disse trin for at downloade alle projektfiler på ét bestemt sprog: + + + 1. Åbn det relevante projekt og vælg et sprog. + 2. Click . + 3. Select **Download translations** or **Export in XLIFF**. Download All Files + + +Using the **Download translations** option, you’ll get a ZIP archive with all the project files containing translations in the original format. This is useful if you want to test the localized version of your product. + +The **Export in XLIFF** option provides a single file containing all source strings and completed translations. This method is more convenient for offline translation in CAT tools, as it doesn’t require opening and exporting files individually. Most desktop localization tools support the XLIFF format. + +### Downloading Filtered Strings in XLIFF + +You can also export strings based on specific criteria. For example, you may want to export only untranslated strings, strings translated by a certain user, or strings with comments. + +Følg disse trin for at downloade filtrerede strenge: + + + 1. Åbn en fil i Redigeringsværktøjet. + 2. Apply filters based on your desired criteria. + 3. Go to **File** in the main menu and select **Export Filtered in XLIFF**. Download Filtered Strings + + +If you are in the [Multilingual (Grid)](/online-editor/#multilingual-mode-grid) mode of the Editor, click the drop-down arrow next to a target language’s column and select **Export Filtered in XLIFF**. Export Filtered Strings from the Multilingual (Grid) mode + + + Read more about [Online Editor](/online-editor/). + + +## Upload af oversættelser + +After completing translations offline, you can upload them back to the project in the original or XLIFF format. Upload can be done via the Editor or the language page. + +### Uploading Translations via Editor + +Følg disse trin for at uploade en fil med oversættelser: + + + 1. Open the needed file in the Editor. + 2. Go to **File** in the main menu and select **Upload Translations**. Upload Translations via Editor + 3. Adjust the [Advanced Import Settings](#advanced-import-settings) as needed. + 4. Click **Select File** and choose the file with translations from your device. + + +If you are in the [Multilingual (Grid)](/online-editor/#multilingual-mode-grid) mode of the Editor, click the drop-down arrow next to a target language’s column and select **Upload Translations**. Upload Translations from the Multilingual (Grid) mode + + + Read more about [Online Editor](/online-editor/). + + +### Uploading Translations via Language Page + + + 1. Åbn det relevante projekt og vælg et sprog. + 2. Click next to the file you want to upload translations to. + 3. Select **Upload Translations**. Upload Translations via Language Page + 4. Adjust the [Advanced Import Settings](#advanced-import-settings) as needed. + 5. Click **Select File** and choose the file with translations from your device. + + +### Uploading XLIFF Translations + +Once you've finished translating an XLIFF file exported from the project, you can upload the completed translations back to Crowdin using the following steps: + + + 1. Åbn det relevante projekt og vælg et sprog. + 2. Click . + 3. Select **Upload XLIFF Translations**. Upload Translations in XLIFF + 4. Adjust the [Advanced Import Settings](#advanced-import-settings) as needed. + 5. Click **Select File** and choose the XLIFF file with translations from your device. + + + + According to the official documentation, `\` elements in the XLIFF file contain the `state` attribute that indicates the current translation state for each string. + + When you export XLIFF files from Crowdin for offline translation, each of the `\` nodes will contain a `state` attribute with the respectful value. Nedenfor ses de mulige værdier: + + * `needs-translation` – the segment needs translation. + * `translated` – the segment was translated. + * `final` – the segment was translated and approved. + + Normalt ændrer offline CAT-værktøjer, som understøtter XLIFF-filformatet, automatisk tilstanden for hver streng under eksport. + + Though, if your CAT tool doesn't change the `state` attribute for translated strings automatically or translations are done manually in the Notepad, it would be necessary to manually change the `state` attribute in your XLIFF file to the `translated` or `final` value to be sure that translations will be successfully uploaded to Crowdin. + + +### Avancerede importindstillinger + +When uploading translations, you can adjust the following import options to control how the system handles the new content: + +* **Allow target translation to match source** – Enable this if the translation is intentionally the same as the source (e.g., for product names or code terms). +* **Approve added translations** – Automatically approve the uploaded translations if you're confident in their accuracy. +* **Translate hidden strings** – Include strings that are hidden from the Editor but still require translation (e.g., for system use or placeholders). + + diff --git a/src/content/docs/da/crowdin/translation-process/ordering-professional-translations.mdx b/src/content/docs/da/crowdin/translation-process/ordering-professional-translations.mdx new file mode 100644 index 00000000..f1f9465c --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/ordering-professional-translations.mdx @@ -0,0 +1,119 @@ +--- +title: Bestilling af professionel oversættelse +description: Order professional translations from vendors directly in Crowdin +slug: ordering-professional-translations +sidebar: + order: 5 +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; +import { Icon } from 'astro-icon/components'; +import { Image } from 'astro:assets'; +import vendorsList from '!/crowdin/translation-process/vendors_list.png'; +import vendorsConnect from '!/crowdin/translation-process/vendors_connect.png'; +import blendCreateTask from '!/crowdin/translation-process/blend_create_task.png'; +import vendorView from '!/crowdin/translation-process/vendor_view.png'; + +Crowdin provides localization services as a [Crowdin Language Services](/crowdin-language-services/) vendor and cooperates with several other professional translation agencies that offer such services to Crowdin customers. + +Vendors list + +Some of them, like BLEND and Gengo, are integrated with Crowdin via API, so the translation ordering becomes fully automated. When you purchase translations from them, Crowdin forwards your untranslated data directly to the agency. After the translations are completed, they're uploaded back to your Crowdin project, where you can download them to your machine. + +By selecting any other vendor from the list, you'll contact a real person who can be assigned to a project as a proofreader or project manager. +They will manage the process for you: involve the translators, maintain the quality, monitor the progress, and meet the deadlines. + +Professional translation is a paid service where the approximate cost for your project is calculated or negotiated during the purchasing process. + +## Automatiseret oversættelsesbestilling + +You can order the translation from BLEND and Gengo in a few clicks. See the detailed instructions below. + +### Tilslutning af BLEND og Gengo med Crowdin + +Før oversættelsesbestilling hos BLEND og Gengo, kræves en kundekonto på deres platforme samt en tilstrækkelig saldo. + +Register at [BLEND](https://app.getblend.com/auth/register) and [Gengo](https://gengo.com/auth/form/signup/) if you don't already have an account. + +Følg disse trin for at oprette forbindelsen mellem en kundekonto og en Crowdin-konto: + + + 1. Log ind på Crowdin. + 2. Open your **Account Settings** and go to the **Vendors** tab.
Alternatively, click on the vendor's tile in the **Store > Vendors** page. + 3. In the **BLEND** or **Gengo** section, click **Connect Account**. Connect Vendors + 4. Enter *Public Key* and *Secret Key* from the BLEND [API keys](https://app.getblend.com/profile/#apikeys) tab or the Gengo [API settings](https://gengo.com/account/api_settings/). Click **Submit Keys**. +
+ +### Oprettelse af oversættelsesopgaver + +To order translations from BLEND or Gengo, create a task in your Crowdin project. Følg denne trin for trin-vejledning til opgaveoprettelse: + + + 1. Click [**Create Task**](/tasks/#creating-new-task) using the project's **Tasks** tab. + 2. Alternatively, you can initiate a task from the **Store**: + 1. Go to **Store > Vendors** on your profile home page. + 2. Click on the vendor tile (e.g., BLEND or Gengo) to open the vendor page. + 3. In the **Create Task** section, select the project from the drop-down list. + 4. Click **Create** to open the task creation page in a new tab. Create Task + 3. Set the [task parameters](#task-parameters). + 4. Click **Create Task** to complete the translation order. + + + + +### Oversættelsesproces + +Når opgaven er oprettet, sendes den automatisk til den valgte leverandør. As soon as translation starts, the related task in Crowdin will automatically change the status to *In Progress*. And when the translations are finished, the task will gain the *Done* status in Crowdin. + + + Read more about [BLEND Integration](/blend-integration/). + + +## Oversættelsesbestilling med en dedikeret Administrator + +Den dedikerede projektadministrator vil varetage hele ens oversættelsesproces (involvere oversættere, overholde deadlines og bevare kvalitet). + +To start working with a vendor, follow these steps: + + + 1. Click [**Create Task**](/tasks/#creating-new-task) using the project's **Tasks** tab. + 2. Alternatively, you can initiate a task from the **Store**: + 1. Go to **Store > Vendors** on your profile home page. + 2. Click on the preferred vendor tile to open the vendor page. Vendor View + 3. In the **Create Task** section, select the project from the drop-down list. + 4. Click **Create** to open the task creation page in a new tab. + 3. Set the [task parameters](#task-parameters). + 4. Click **Create Task**. + + + + +## Task Parameters + +| Parameter | Beskriveslse | +| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Title *(required)* | Specify the name of the task that will be visible to translators. | +| Beskriveslse | Add more details about the task that might be useful for translators. | +| Type *(required)* | Select the task type. For ordering from vendors, choose *Translate by vendor*. | +| Translation Vendor *(required)* | Select a vendor you'd like to work with. Use the **Settings** button next to the vendor selector to manage the selected vendor or **View in Store** to see their details. | +| Create a pending proofreading task | Creates a [proofreading task](/tasks/#sequential-tasks) for each language that starts after the translation task is completed. | +| Expertise | Define the desired quality level of translation (Specific to Gengo and BLEND). | +| Tone | Define the preferred tone of translations (Specific to Gengo). | +| Purpose | Define where the translations are intended to be used (Specific to Gengo). | +| Comment | Provide instructions for translators (max. 500 characters) (Specific to Gengo). | +| Include edit service | Send translations for additional review (Specific to Gengo and BLEND). | +| Use preferred translators | Give priority to your preferred translators (Specific to Gengo). | +| Skip strings already included in other tasks | Skip strings that are already assigned to other tasks. | +| Strings *(required)* | Select whether to include all untranslated strings or only those modified within a specific period. | +| Filter by labels | Include only strings with the specified labels. | +| Exclude by labels | Exclude strings with the specified labels. | +| Due Date | Set a deadline for the task. | +| Files/Branches *(required)* | Depending on your [project type](/creating-project/#project-types), select files or branches to include in the task. | +| Languages *(required)* | Vælg målsprog. A separate task will be created for each selected language. | + + + Read more about [Tasks](/tasks/). + diff --git a/src/content/docs/da/crowdin/translation-process/pre-translation.mdx b/src/content/docs/da/crowdin/translation-process/pre-translation.mdx new file mode 100644 index 00000000..5785f63a --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/pre-translation.mdx @@ -0,0 +1,155 @@ +--- +title: Præoversættelse +description: Speed up the translation process and ease the work of translators +slug: pre-translation +sidebar: + order: 4 +--- + +import { Steps, Aside, LinkCard, CardGrid } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import KBD from '~/components/KBD.astro'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import preTranslation from '!/crowdin/translation-process/pre_translation.png'; + +Præoversættelse bidrager til at accelerere oversættelsesprocessen og lette oversættelsesarbejdet. Det muliggør også at spare penge, da en del af oversættelserne kan automatiseres. You can use and combine the following types of pre-translation: + +* **AI Pre-Translate** - uses AI Models to pre-translate the content. +* **Machine Translation (MT) Pre-translate** – takes translations from supported machine translation engines (MTE) and applies them to the project content. Mindst én af oversættelsesmotorerne skal opsættes for at aktivere denne funktion. +* **Translation Memory (TM) Pre-translate** – takes translations from the TM vault uploaded to the system and applies them to project content. + + + + + + + + + +## Manual Pre-translation + +To apply pre-translation manually, follow these steps: + + + 1. Open your project and go to the **Dashboard** tab. + 2. Click **Pre-translation**. Pre-Translation Button + 3. In the pre-translate dialog, configure the following main parameters: + * **Pre-translation via** – select your preferred method (**AI**, **Translation Memory**, or **Machine Translation**). + * **AI Prompts** (Specific to pre-translation via AI) – select the prompt that will guide the AI model’s behavior. + * **Translation engine** (Specific to pre-translation via Machine Translation) – select the machine translation engine to use. + * **Target languages** – select the languages to pre-translate into. + * **Minimum match ratio** (Specific to pre-translation via Translation Memory) – select either **100%** or **Perfect** as the minimum similarity required for TM matches. + + Read more about [TM Match Types](/translation-memory/#tm-match-calculation). + + * **Files** – select the files or folders you want to pre-translate. + 4. Expand the **Advanced settings** section to finetune the pre-translation process with the following options: + * **Translate from** – select the language to use as the source for pre-translation. By default, it's preselected to the project’s source language, but you can choose any other project language. This provides greater flexibility and may improve translation quality by allowing you to use a more suitable existing translation (e.g., an adapted English version instead of the original Japanese) or translate directly between related languages (e.g., Spanish to Portuguese). + + * **Skip approved translations** (Specific to pre-translation via Translation Memory) – prevents overwriting strings that already have approved translations. + * **Apply for untranslated strings only** – when selected, pre-translation will only be applied to strings that don’t have any translations. + * **Allow duplicate translations** – adds translations even if they duplicate existing ones. Useful when comparing AI prompts or MT engines in the [Pre-translation Accuracy](/project-reports/#pre-translation-accuracy) report, as it ensures that all translations are registered as new and included in accuracy calculations. + + * **Approve added translations** (Specific to pre-translation via Translation Memory) – allows you to auto-approve translations added through pre-translation. Options include: + * **With perfect match** – approve only those with a 101% match. + * **With perfect match (approved previously)** – approve perfect matches only if they were already approved before. + * **All (skip auto-substituted translations)** – approve everything except translations improved by auto-substitution. + * **All** – approve all added translations. + * **Filter by labels / Exclude labels** – include or exclude specific strings based on their assigned labels. + + Read more about [Labels](/string-management/#labels). + + 5. Click **Pre-translate**. + + + + +### Pre-translating Files and Folders via Context Menu + +In addition to running the pre-translation from the project's **Dashboard**, you can quickly pre-translate selected files or folders directly from the language page or **Sources > Files** using the context menu. + +#### From the Language Page + +To pre-translate a single file or folder from the language page, follow these steps: + + + 1. Open your project and select the target language. + 2. Click on the needed file or folder and select **Pre-translate**. + 3. In the pre-translate dialog, select the preferred method from the **Pre-translation via** drop-down list. + 4. The target language and file/folder will already be selected. Configure the rest of the parameters as described in the [Manual Pre-translation](#manual-pre-translation) section. + 5. Click **Pre-translate**. + + +#### From Sources > Files + +To pre-translate one or multiple files or folders from the **Sources > Files** section, follow these steps: + + + 1. Open your project and go to **Sources > Files**. + 2. Click (or right-click) on the needed file or folder, or select multiple items using Ctrl, , or Shift and then click (or right-click). + 3. Select **Pre-translate**. + 4. In the pre-translate dialog, select the preferred method from the **Pre-translation via** drop-down list. + 5. The files or folders you selected will already be checked. Configure the rest of the parameters as described in the [Manual Pre-translation](#manual-pre-translation) section. + 6. Click **Pre-translate**. + + +### Pre-translation Queue + +The Pre-translation queue allows you to trigger multiple manual pre-translations via TM, MT, or AI, each with different settings. After initiating a pre-translation, each instance enters a queue with a status of **Pending**. + +Upon triggering a manual pre-translation, you will receive a notification indicating that the process has been added to the queue. To review all pre-translations currently in the queue, navigate to **Tools > Pre-translation queue** in your project. Alternatively, click **View Queue** in the bottom-left corner of the pre-translate dialog to be redirected directly to this page. + +Each entry in the Pre-translation queue table includes the following details: + +* **Created at:** Displays the date and time when the pre-translation was initiated. +* **Type:** Shows the method and specific engine or prompt used (e.g., AI, MT engine name). +* **Priority:** Indicates the execution priority of the task. When the active pre-translation finishes, the system selects the pending job with the highest priority next. If multiple jobs share the same priority level, they are executed in the order they were created. +* **Status:** Pending, In progress, Completed, Failed, or Canceled. If a job fails, the system will automatically proceed to the next pending job in the queue without blocking it. +* **Started at:** The date and time the process began. +* **Finished at:** The date and time the process was completed. + +You can use the **Filters** button to sort the queue by specific statuses, priorities, or types. + +You can also manage pending jobs individually or in bulk. Select the checkboxes next to the relevant pending entries to change their priority or cancel them simultaneously using the buttons in the top toolbar. + +For completed pre-translations, you can view a report detailing the results, including target languages, a list of processed files, the number of translations added, and the number of translations skipped with a breakdown by category (e.g., missing in TM, QA issue). + +To repeat a pre-translation, click on the relevant entry and select **Retry**. This opens the pre-translation dialog with all the original settings pre-selected, allowing you to quickly launch the process again without manual reconfiguration. This is especially helpful if a pre-translation attempt fails or if you need to apply the same configuration again. + + + +## Automatic Pre-translation + +You can automate the Pre-translation in the project **Settings > Pre-translate**. In this case, each time you upload new content to your project, the system will automatically trigger the Pre-translation and apply translations to untranslated content. + + + Read more about [Automatic Pre-translation](/project-settings/pre-translate/). + + +## Handling QA Issues During Pre-translation via AI + +If the AI provider returns translations with QA issues during pre-translation, Crowdin will collect the strings to which these faulty translations were applied and automatically reinitiate the pre-translation. The affected strings will be sent back to the AI provider along with details of the detected QA issues to ensure that the translations are corrected and meet quality standards. + +## Translation Memory Priority During Pre-translation via TM + +When using pre-translation via TM and the **Share TMs** option is enabled, Crowdin applies translations from translation memories based on a specific priority order. This priority ensures that translations come from the most relevant source, optimizing translation consistency and quality. + +The order of priority is as follows: + +1. **Default TM**: Matches are first searched for in the project’s default TM. +2. **Assigned TMs**: If no match is found in the default TM, the system continues searching through any TMs assigned specifically to the project. +3. **Shared TMs**: If no match is found in the default or assigned TMs, translations are retrieved from shared TMs available to the project. + +This sequence allows Crowdin to apply translations from the most relevant TM source first, ensuring that high-quality matches are prioritized when multiple TMs are available. diff --git a/src/content/docs/da/crowdin/translation-process/translation-strategies.mdx b/src/content/docs/da/crowdin/translation-process/translation-strategies.mdx new file mode 100644 index 00000000..704331f5 --- /dev/null +++ b/src/content/docs/da/crowdin/translation-process/translation-strategies.mdx @@ -0,0 +1,80 @@ +--- +title: Oversættelsesstrategier +description: Approaches for translating and proofreading your content effectively +slug: translation-strategies +sidebar: + order: 0 +--- + +import ReadMore from '~/components/ReadMore.astro'; +import { CardGrid, LinkCard, Aside } from '@astrojs/starlight/components'; + +Once you've created your project and uploaded source files for localization, it's time to decide who will translate and proofread your content. Denne artikel dækker alle de mulige tilgange, som kan bruges/kombineres til opfyldelse af behov og præferencer. + +## Invitér dit team af oversættere + +Invitér så mange oversættere og korrekturlæsere til projektet, som kræves. You can also give the language coordinator or manager access to trusted project members to manage the translation process for you (invite translators, meet deadlines, and maintain quality). + +Send email invitations or share invitation links with access to your localization project in Crowdin. Der kan inviteres: + +* Interne oversættere +* Freelancere +* Oversættelsesbureauer, man allerede samarbejder med + +Manage the project members in the **Members** tab. For example, you can invite translators, proofreaders, and language coordinators, granting them access to all or only specific target languages. + + + Read more about [Inviting People](/inviting-people/). + + +## Bestil professionelle oversættelser + +Crowdin Vendors Store includes professional translation agencies you can hire to translate and proofread your project files. See the list of all available vendors in **Store > Vendors**. + +Some of the transition agencies are integrated with Crowdin via API. When you decide to work with them, Crowdin forwards your untranslated data directly to the agency, and once completed, the translations are uploaded back to the project. + + + Read more about [Ordering Professional Translations](/ordering-professional-translations/). + + + + + + + +Professional translation is a paid service where the approximate cost for your project is calculated or negotiated during the purchase. + +## Configure Crowdin AI + +Enhance your translation process with Crowdin AI, which leverages advanced AI-powered translations from leading providers such as OpenAI, Google Gemini, Microsoft Azure OpenAI, and more. + +Crowdin AI offers two main prompt types for use in different scenarios: + +* **Pre-translate**: Generate initial AI translations that can be later reviewed by human proofreaders. +* **AI in Editor**: Provide AI-powered suggestions directly within the Editor to help translators with translation and proofreading tasks. + +By considering additional context at various levels, Crowdin AI ensures contextually accurate translations, improving overall efficiency and quality. + + + Read more about [Crowdin AI](/crowdin-ai/). + + +## Opsætte Maskinoversættelsesmotorer + +Crowdin integrates with the most popular Machine Translation (MT) engines such as Microsoft Translator, Google Translate, Google AutoML Translation, DeepL Translator, and Amazon Translate. + +Configure these engines to use manual or automated pre-translation via MT. A human translator can also review those translations and do post-editing if needed. Otherwise, you can configure an MT of your choice so the machine translations will be shown in the Editor as suggestions to assist your translators. + + + Read more about [Pre-Translation](/pre-translation/). + + +## Engagere dit fællesskab + +If you have a popular product and an active community eager to help you with translations, feel free to start crowdsourcing. It's an excellent practice to cooperate with members on a volunteer basis and reward their efforts, providing them with some goods, discounts, or any other way that works for both parties. + + + +When working with the community translators, a good workflow looks the following way: community translators translate the project, and when the translations are finished, you can order professional proofreading from a translation agency to ensure high translation quality. diff --git a/src/content/docs/da/developer/api/croql.mdx b/src/content/docs/da/developer/api/croql.mdx new file mode 100644 index 00000000..39b5d18b --- /dev/null +++ b/src/content/docs/da/developer/api/croql.mdx @@ -0,0 +1,1620 @@ +--- +title: Crowdin-forespørgselssprog (CroQL) +description: Retrieve needed localization resources based on specific conditions +slug: developer/croql +sidebar: + order: 7 +--- + +import { Aside, LinkCard, Tabs, TabItem, Badge } from '@astrojs/starlight/components'; + +Crowdin Query Language (CroQL) is a tool for Crowdin Editor and Crowdin Enterprise Editor and Crowdin and Crowdin Enterprise API that allows you to retrieve needed localization resources based on specific conditions. Using CroQL, you can filter source strings and their translations for a specific target language, TM segments, and Glossary Terms. + +You can use CroQL with the following API methods: + + + + * [List Strings](/developer/api/v2/#tag/Source-Strings/operation/api.projects.strings.getMany) + * [List Strings](/developer/api/v2/string-based/#tag/Source-Strings/operation/api.projects.strings.getMany) + * [List Language Translations](/developer/api/v2/#tag/StringAsset-Translations/operation/api.projects.languages.translations.getMany) + * [List Language Translations](/developer/api/v2/string-based/#tag/String-Translations/operation/api.projects.languages.translations.getMany) + * [List TM Segments](/developer/api/v2/#tag/Translation-Memory/operation/api.tms.segments.getMany) + * [List TM Segments](/developer/api/v2/string-based/#tag/Translation-Memory/operation/api.tms.segments.getMany) + * [List Terms](/developer/api/v2/#tag/Glossaries/operation/api.glossaries.terms.getMany) + * [List Terms](/developer/api/v2/string-based/#tag/Glossaries/operation/api.glossaries.terms.getMany) + + + * [List Strings](/developer/enterprise/api/v2/#tag/Source-Strings/operation/api.projects.strings.getMany) + * [List Strings](/developer/enterprise/api/v2/string-based/#tag/Source-Strings/operation/api.projects.strings.getMany) + * [List Language Translations](/developer/enterprise/api/v2/#tag/StringAsset-Translations/operation/api.projects.languages.translations.getMany) + * [List Language Translations](/developer/enterprise/api/v2/string-based/#tag/String-Translations/operation/api.projects.languages.translations.getMany) + * [List TM Segments](/developer/enterprise/api/v2/#tag/Translation-Memory/operation/api.tms.segments.getMany) + * [List TM Segments](/developer/enterprise/api/v2/string-based/#tag/Translation-Memory/operation/api.tms.segments.getMany) + * [List Terms](/developer/enterprise/api/v2/#tag/Glossaries/operation/api.glossaries.terms.getMany) + * [List Terms](/developer/enterprise/api/v2/string-based/#tag/Glossaries/operation/api.glossaries.terms.getMany) + + + +## Operators + +Main CroQL operators are listed below. Use and combine them to set specific conditions for retrieving the needed content from Crowdin. To form your CroQL query, you can use the elements from the tables below. + +### Arithmetic Operators + +The arithmetic operators are used to perform mathematic operations with any numeric data types. + +| Navn | Symbol | Eksempel | +| -------------- | ------ | -------- | +| Addition | * | 1 + 9 | +| Subtraction | - | 11 - 1 | +| Division | / | 20 / 2 | +| Multiplication | * | 2 \* 5 | +| Negation | - | -10 | + +### Comparison Operators + +The comparison operators are used to compare values and return `true` or `false`. + +| Navn | Symbol | Aliaser | Eksempel | +| ---------------- | ---------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- | +| Between | `{{expression}} between {{expression}} and {{expression}}` | | 5 between 1 and 10 | +| Equal | = | | 10 = 10 | +| Not equal | != | ≠ | 1 != 10; 1 ≠ 10 | +| Greater | > | | 10 > 1 | +| Greater or equal | >= | ≥ | 10 >= 1; 10 ≥ 1 | +| Less | < | | 1 < 10 | +| Less or equal | <= | ≤ | 1 <= 10; 1 ≤ 10 | +| Contains | `{{string}} contains {{string}}` | | `"Hello World" contains "Hello"`; `"Hello World" contains text`; `text contains "Hello World"`; `context contains text` | + +### Logical Operators + +The logical operators are used to combine multiple boolean expressions or values and provide a single boolean output. + +| Navn | Symbol | Eksempel | +| ---- | ------ | ----------------------------------- | +| And | and | 1 \< 10 and 10 > 1 | +| Or | or | 1 \< 10 or 10 > 1 | +| Xor | xor | 1 \< 10 xor 10 > 1 | +| Not | not | not 1 \< 10 | + +### Filtration Operators + +The filtration operators are used to filter the objects based on the specified condition. + +| Navn | Symbol | Eksempel | +| ------ | ------------------------------------ | ----------------------------------------- | +| Filter | `{{collection}} where {{predicate}}` | `translations where (count of votes > 0)` | +| Match | `{{object}} with {{predicate}}` | `user with (login = "crowdin")` | + +### Conditional (Ternary) Operator + +The ternary operator is used to check a condition specified in the first value, and if it’s `true` it returns the second value, but if it’s `false` it returns the third value. + +| Navn | Symbol | Eksempel | +| ------- | ---------------------------------------------------------- | -------------------------------------------------------- | +| Ternary | `If {{condition}} then {{expression}} else {{expression}}` | `If 1 \< 10 then "less" else "greater"` | + +### Fetch Operators + +The fetch operators are used for retrieving data from the objects. + +| Navn | Symbol | Eksempel | +| ---------- | ------------------------------------------ | ----------------------------------- | +| Mention | `@user:{{string}}`; `@language:{{string}}` | `@user:"crowdin"`; `@language:"en"` | +| Member | `{{member}} of {{object}}` | `count of translations` | +| Identifier | `{{identifier}}` | `text`; `identifier` | + +### Scalar Operators + +The scalar operators are used to declare values for further processing. + +| Navn | Symbol | Eksempel | +| -------- | -------------- | ------------------------------ | +| Integer | `{{integer}}` | 10 | +| Float | `{{float}}` | 10.01 | +| Streng | `{{string}}` | "crowdin" | +| Datetime | `{{datetime}}` | 'today'; '2021-03-16 00:00:00' | + +### Group Operator + +The group operator is used to determine the execution order of operators. + +| Navn | Symbol | Eksempel | +| ----- | ------ | ------------------------------------------------ | +| Group | ( ) | 1 \< 10 and (20 > 10 or 10 > 5) | + +## CroQL Query Examples + +In this section, you can find practical examples of CroQL queries that will help you understand and use the querying capabilities within Crowdin. These examples can help you learn how to create your own queries to retrieve specific sets of data based on various criteria, such as translation status, user activity, and string properties. + + + +### Strings Queries + +These queries are used to retrieve information about source strings. + +* Strings that have no Ukrainian translations with approvals or votes: + ```graphql wrap + count of translations where ( language = @language:"uk" and ( count of approvals > 0 or count of votes > 0 ) ) = 0 + ``` + +* Strings that have only one translation: + ```graphql + count of translations = 1 + ``` + +* Strings that have translations from only one specific user: + ```graphql wrap + count of translations > 0 and count of translations = count of translations where (user = @user:"crowdin") + ``` + +* Strings that have at least one translation not from specific users: + ```graphql + count of translations where (user != @user:"crowdin") > 0 + ``` + +* Strings that have all translations not from specific users: + ```graphql wrap + count of translations > 0 and count of translations = count of translations where (user != @user:"crowdin") + ``` + +* Strings filtered by identifier and numeric id of a file in your Crowdin project: + ```graphql + identifier = "key" and id of file = 777 + ``` + +* Strings that have unresolved issues filtered by numeric id of a file in your Crowdin project: + ```graphql + id of file = 777 and count of comments where (has unresolved issue) > 0 + ``` + +* Hidden strings that are not duplicates and have one or more translations: + ```graphql + is hidden and not is duplicate and count of translations > 0 + ``` + +* Strings that have one or more approvals: + ```graphql + count of languages summary where (approvalsCount >= 1) > 0 + ``` + +* Strings that have comments made by the user with a `crowdin` username: + ```graphql + count of comments where (user = @user:"crowdin") > 0 + ``` + +* Strings that contain "ABC" in the source text but don't contain "ABC" in their translations: + ```graphql + text contains "ABC" and (count of translations where (text contains "ABC") = 0) + ``` + +#### Field Queries + +These queries are used to retrieve information about source strings based on the [Fields](/enterprise/fields/) assigned to them. + +* Strings with a specific field name and an exact field value: + + *Use case: Find strings where the "Priority" field is set to "High".* + + ```graphql wrap + count of fields where (name = "Priority" and value = "High") > 0 + ``` + +* Strings with a specific field slug and a value containing a specific word: + + *Use case: Find strings where the "category" slug contains the word "mobile".* + + ```graphql wrap + count of fields where (slug = "field-category" and value contains "mobile") > 0 + ``` + +* Strings that have a specific field applied by its name: + + *Use case: Find all strings that have a "Department" field assigned, regardless of the value.* + + ```graphql wrap + count of fields where (name = "Department") > 0 + ``` + +* Strings that have a specific field applied by its slug: + + *Use case: Find strings using a specific system identifier for an "Owner" field.* + + ```graphql wrap + count of fields where (slug = "field-internal-owner") > 0 + ``` + +* Strings that have a field whose name contains a specific word: + + *Use case: Find strings that have any "Status" related fields (e.g., Legal Status, Review Status).* + + ```graphql wrap + count of fields where (name contains "Status") > 0 + ``` + +* Strings that have any field with a non-empty value: + + *Use case: Find strings that have any metadata filled in.* + + ```graphql wrap + count of fields where (value != "") > 0 + ``` + +* Strings that have a text-type field with a non-empty value: + + *Use case: Useful for ensuring metadata comments or descriptions are actually filled in.* + + ```graphql wrap + count of fields where (type = "text" and value != "") > 0 + ``` + +* Strings matching multiple specific field names where the value contains a specific word: + + *Use case: Check if either "Platform" or "Environment" fields contain the word "Production".* + + ```graphql wrap + count of fields where ((name = "Platform" or name = "Environment") and value contains "Production") > 0 + ``` + +
+ Using String and Field Queries in Crowdin API + Use your query in the following Crowdin API endpoints: + + ```shell title="Crowdin" wrap + GET https://api.crowdin.com/api/v2/projects/{projectId}/strings?croql={croql} + ``` + + ```shell title="Crowdin Enterprise" wrap + GET https://{organization_domain}.api.crowdin.com/api/v2/projects/{projectId}/strings?croql={croql} + ``` + + | Parameter | Detaljer | + | ------------- | ------------------------------------------------------------------------------------- | + | `{projectId}` | **Type:** `integer`
**Description:** Numeric identifier of your Crowdin project. | + | `{croql}` | **Type:** `string`
**Description:** CroQL expression. | + + +
+ +### Translation Queries + +These queries are used to retrieve information about translations. + +* Translations made by the user with a `crowdin` username or ones with ≥ 100 upvotes: + ```graphql + user = @user:"crowdin" or count of votes where ( is up ) >= 100 + ``` + +
+ Using Translation Queries in Crowdin API + Use your query in the following Crowdin API endpoints: + + ```shell title="Crowdin" wrap + GET https://api.crowdin.com/api/v2/projects/{projectId}/languages/uk/translations?croql={croql} + ``` + + ```shell title="Crowdin Enterprise" wrap + GET https://{organization_domain}.api.crowdin.com/api/v2/projects/{projectId}/languages/uk/translations?croql={croql} + ``` + + | Parameter | Detaljer | + | ------------- | ------------------------------------------------------------------------------------- | + | `{projectId}` | **Type:** `integer`
**Description:** Numeric identifier of your Crowdin project. | + | `{croql}` | **Type:** `string`
**Description:** CroQL expression. | + + +
+ +### Translation Memory Segment Queries + +These queries are used to retrieve information about TM segments. + +* Translation memory segments containing at least one record used one or more times: + ```graphql + count of records where (usageCount > 0) > 0 + ``` + +* Translation memory segments containing at least one record created by the user with a `crowdin` username: + ```graphql + count of records where (createdBy = @user:"crowdin") > 0 + ``` + +
+ Using Translation Memory Segment Queries in Crowdin API + Use your query in the following Crowdin API endpoints: + + ```shell title="Crowdin" wrap + GET https://api.crowdin.com/api/v2/tms/{tmId}/segments?croql={croql} + ``` + + ```shell title="Crowdin Enterprise" wrap + GET https://{organization_domain}.api.crowdin.com/api/v2/tms/{tmId}/segments?croql={croql} + ``` + + | Parameter | Detaljer | + | ------------- | ------------------------------------------------------------------------------------- | + | `{projectId}` | **Type:** `integer`
**Description:** Numeric identifier of your Crowdin project. | + | `{croql}` | **Type:** `string`
**Description:** CroQL expression. | + + +
+ +### Glossary Term Queries + +These queries are used to retrieve information about glossary terms. + +* Terms created by the user with a `crowdin` username for Ukrainian: + ```graphql + user = @user:"crowdin" and language = @language:"uk" + ``` + +* Terms that contain "ABC" and have part of speech set to noun: + ```graphql + text contains "ABC" and partOfSpeech = "noun" + ``` + +* Terms marked as not recommended or obsolete: + ```graphql + status = "not_recommended" or status = "obsolete" + ``` + +* Terms that are of type abbreviation and have a note: + ```graphql + type = "abbreviation" and note contains "tooltip" + ``` + +* Terms added after a specific date: + ```graphql + createdAt > '2024-12-01 00:00:00' + ``` + +* Terms with lemma equal to "cancel" and in English: + ```graphql + lemma = "cancel" and language = @language:"en" + ``` + +* Terms that include a reference URL: + ```graphql + url contains "https://" + ``` + +
+ Using Glossary Term Queries in Crowdin API + Use your query in the following Crowdin API endpoints: + + ```shell title="Crowdin" wrap + GET https://api.crowdin.com/api/v2/glossaries/{glossaryId}/terms?croql={croql} + ``` + + ```shell title="Crowdin Enterprise" wrap + GET https://{organization_domain}.api.crowdin.com/api/v2/glossaries/{glossaryId}/terms?croql={croql} + ``` + + | Parameter | Detaljer | + | -------------- | ------------------------------------------------------------------------------------------ | + | `{glossaryId}` | **Type:** `integer`
**Description:** Numeric identifier of your Crowdin glossary. | + | `{croql}` | **Type:** `string`
**Description:** CroQL expression to filter glossary term entries. | + + +
+ +### Examples based on the Editor Advanced Filter Options + + + +#### Strenge + +* Strings added: + ```graphql + added between '2023-12-06 13:44:14' and '2023-12-07 13:44:14' + ``` +* Strings updated: + ```graphql + updated between '2023-12-06 13:44:14' and '2023-12-07 13:44:14' + ``` +* String Type: + ```graphql + type is plain or type is icu + ``` +* Comments: + ```graphql + count of comments > 0 + ``` +* Screenshots: + ```graphql + count of screenshots > 0 + ``` +* QA Issues: + ```graphql + count of languages summary where (has qa issues) > 0 + ``` + +#### Oversættelser + +* Untranslated: + ```graphql + count of languages summary = 0 + ``` +* Partially translated (plurals): + ```graphql + count of languages summary where (is partially translated) > 0 + ``` +* Translated: + ```graphql + count of languages summary where (is translated) > 0 + ``` +* Translated by: + ```graphql + count of translations where (user = @user:"crowdin") > 0 + ``` +* Not Translated by: + ```graphql + count of translations where (user != @user:"crowdin") > 0 + ``` +* Same as source string: + ```graphql + count of languages summary where (has translation as source) > 0 + ``` +* Modified source String: + ```graphql + count of languages summary where (is source changed after translation) > 0 + ``` +* Translations updated: + ```graphql wrap + count of languages summary where ( translation updated between '2023-12-06 13:44:14' and '2023-12-07 13:44:14') > 0 + ``` +* Votes: + ```graphql + count of languages summary where (rating > 0) > 0 + ``` + +#### Dubletter + +* Master strings: + ```graphql + not is duplicate + ``` +* Duplicates only: + ```graphql + is duplicate + ``` +* Duplicates with shared translations: + ```graphql wrap + is duplicate and count of languages summary where (has shared translation) > 0 + ``` +* Duplicates with own translations: + ```graphql wrap + is duplicate and count of languages summary where (not has shared translation and is translated) > 0 + ``` + +#### Approvals + +* Translated, not approved: + ```graphql + count of languages summary where (is translated and not is approved) > 0 + ``` +* Partially approved (plurals): + ```graphql + count of languages summary where (is partially approved) > 0 + ``` +* Approved: + ```graphql + count of languages summary where (is approved) > 0 + ``` +* Approved by: + ```graphql wrap + count of translations where (count of approvals where (user = @user:"crowdin") > 0) > 0 + ``` +* Not Approved by: + ```graphql wrap + count of translations where (count of approvals where (user != @user:"crowdin") > 0) > 0 + ``` +* Has translations after approval: + ```graphql + count of languages summary where (has translation after approval) > 0 + ``` + +#### TM and MT + +* Translated by MT: + ```graphql + count of languages summary where (is translated by mt) > 0 + ``` +* Translated by TM: + ```graphql + count of languages summary where (is translated by tm) > 0 + ``` +* Translated by TM or MT: + ```graphql + count of languages summary where (is auto translated) > 0 + ``` + +#### Other + +* Pre translation: + * Used: Not available + * Not used: Not available +* Sort by: Not available +* Verbal Expressions: Not available +* Verbal Expression Scope: Not available + +## Context + +CroQL can be used in the following contexts: source string context, translation context, and translation memory (TM) segment context. Use the following examples as a basis for building your CroQL queries. + +### Source String Context + +```json collapse={37-56,62-92} +{ + "type is plain": true, + "type is plural": false, + "type is icu": false, + "type is asset": false, + "text": "Quick Start", + "identifier": "quick_start", + "context": "quick_start", + "max length": 0, + "is visible": true, + "is hidden": false, + "is duplicate": false, + "isPassedWorkflow": true, + "fields": { + "priority": "High", + "legal-status": "approved" + }, + "file": { + "id": 32, + "name": "sample.csv", + "title": "Sample", + "type": "csv", + "context": "Some useful context information" + }, + "branch": { + "id": 7, + "name": "main", + "title": "Main" + }, + "comments": [ + { + "has issue": false, + "has unresolved issue": false, + "user": 1 + } + ], + "screenshots": [], + "translations": [ + { + "text": "Швидкий старт", + "plural form": "none", + "is pre translated": true, + "provider": "tm", + "language": "uk", + "user": 1, + "votes": [ + { + "is up": true, + "is down": false, + "user": 2, + "added": "2021-04-09 13:44:14" + } + ], + "approvals": [ + { + "user": 2, + "added": "2021-04-09 13:44:14" + } + ], + "updated": "2021-04-09 10:23:17" + } + ], + "languages summary": [ + { + "language": "en", + "is translated": false, + "is partially translated": false, + "is approved": false, + "is partially approved": false, + "translation updated": false, + "is auto translated": false, + "is translated by tm": false, + "is translated by mt": false, + "is source changed after translation": false, + "has translation as source": false, + "has translation after approval": false, + "has shared translation": false, + "has qa issues": false, + "has empty translation qa issues": false, + "has translation length qa issues": false, + "has tags mismatch qa issues": false, + "has spaces mismatch qa issues": false, + "has variables mismatch qa issues": false, + "has punctuation mismatch qa issues": false, + "has character case mismatch qa issues": false, + "has special characters mismatch qa issues": false, + "has incorrect translation qa issues": false, + "has spelling qa issues": false, + "has icu syntax qa issues": false, + "has terms qa issues": false, + "has duplicate translation qa issues": false, + "has ftl syntax qa issues": false, + "has android syntax qa issues": false, + "has custom qa issues": false, + "rating": 1, + "approvalsCount": 1 + } + ], + "labels": [ + { + "id": 1, + "title": "label title", + "is system": false + } + ], + "added": "2021-04-08 12:33:27", + "updated": "2021-04-08 12:33:27" +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
type is plain +

Type: boolean

+

Description: The source string with plain text.

+
type is plural +

Type: boolean

+

Description: The source string with plural forms.

+
type is icu +

Type: boolean

+

Description: The source string with ICU.

+
type is asset +

Type: boolean

+

Description: The source string is an asset.

+
text +

Type: string

+

Description: The source string text.

+
identifier +

Type: string

+

Description: The source string identifier (key).

+
context +

Type: string

+

Description: The source string context.

+
max length +

Type: integer

+

Description: The source string max.length.

+
is visible +

Type: boolean

+

Description: The source string is visible.

+
is hidden +

Type: boolean

+

Description: The source string is hidden.

+
is duplicate +

Type: boolean

+

Description: The source string is duplicate.

+
isPassedWorkflow +

Type: boolean

+

Description: Crowdin Enterprise only. The source string passed through a project workflow.

+
fields +

Type: object

+

Description: Crowdin Enterprise only. An object containing custom properties ([Fields](/enterprise/fields/)) assigned to a string.
+ You can filter these by name, slug, value, and type.

+
file +

Type: object

+

Description: The source string file.

+
branch +

Type: object

+

Description: The source string branch.

+
comments +

Type: array

+

Description: The source string comments.

+
has issue +

Type: boolean

+

Description: The source string has an issue.

+
has unresolved issue +

Type: boolean

+

Description: The source string has an unresolved issue.

+
user +

Type: integer

+

Description: Numeric identifier of the user who added a comment.

+
screenshots +

Type: array

+

Description: The source string screenshots.

+
translations +

Type: array

+

Description: Translations of the source string.

+
text +

Type: string

+

Description: Translation text.

+
plural form +

Type: string

+

Description: Translation plural form.

+
is pre translated +

Type: boolean

+

Description: Translation added via pre-translation.

+
provider +

Type: string

+

Allowed values: tm, global_tm, google, google_automl, microsoft, crowdin, deepl, modernmt, amazon, watson, custom_mt

+

Description: Translation provided via translation memory or machine translation engine.

+
language +

Type: string

+

Description: Language identifier specified as a string. Use the language codes, for example, "uk" for Ukrainian. To specify in queries, use the format: @language:"uk".

+
user +

Type: integer

+

Description: Numeric identifier of the user who added a translation.

+
votes +

Type: array

+

Description: Array of the votes added to the translation.

+
is up +

Type: boolean

+

Description: Upvote.

+
is down +

Type: boolean

+

Description: Downvote.

+
user +

Type: integer

+

Description: Numeric identifier of the user who added a vote for translation.

+
added +

Type: datetime

+

Description: Date when a vote for translation was added.

+
approvals +

Type: array

+

Description: Array of the added translation approvals.

+
user +

Type: integer

+

Description: Numeric identifier of the user who approved a translation.

+
added +

Type: datetime

+

Description: Date when a translation approval was added.

+
updated +

Type: datetime

+

Description: Date when a translation was updated.

+
languages summary +

Type: array

+

Description: The source string top translations (the translations with the highest priority).

+
language +

Type: string

+

Description: Language identifier specified as a string. Use the language codes, for example, "uk" for Ukrainian. To specify in queries, use the format: @language:"uk".

+
is translated +

Type: boolean

+

Description: The source string is translated.

+
is partially translated +

Type: boolean

+

Description: The source string is partially translated.

+
is approved +

Type: boolean

+

Description: The source string is approved.

+
is partially approved +

Type: boolean

+

Description: The source string is partially approved.

+
translation updated +

Type: boolean

+

Description: The source string translation is updated.

+
is auto translated +

Type: boolean

+

Description: The source string is translated by TM or MT.

+
is translated by tm +

Type: boolean

+

Description: The source string is translated by TM.

+
is translated by mt +

Type: boolean

+

Description: The source string is translated by MT.

+
is source changed after translation +

Type: boolean

+

Description: The source string changed after translation.

+
has translation as source +

Type: boolean

+

Description: The source string has translation equal to source text.

+
has translation after approval +

Type: boolean

+

Description: The source string has translation after approval.

+
has shared translation +

Type: boolean

+

Description: The source string duplicate has shared translations from a master string.

+
has qa issues +

Type: boolean

+

Description: The source string has QA issues.

+
has empty translation qa issues +

Type: boolean

+

Description: The source string has empty translation QA issues.

+
has translation length qa issues +

Type: boolean

+

Description: The source string has translation length QA issues.

+
has tags mismatch qa issues +

Type: boolean

+

Description: The source string has tags mismatch QA issues.

+
has spaces mismatch qa issues +

Type: boolean

+

Description: The source string has spaces mismatch QA issues.

+
has variables mismatch qa issues +

Type: boolean

+

Description: The source string has variables mismatch QA issues.

+
has punctuation mismatch qa issues +

Type: boolean

+

Description: The source string has punctuation mismatch QA issues.

+
has character case mismatch qa issues +

Type: boolean

+

Description: The source string has character case mismatch QA issues.

+
has special characters mismatch qa issues +

Type: boolean

+

Description: The source string has special characters mismatch QA issues.

+
has incorrect translation qa issues +

Type: boolean

+

Description: The source string has incorrect translation QA issues.

+
has spelling qa issues +

Type: boolean

+

Description: The source string has spelling QA issues.

+
has icu syntax qa issues +

Type: boolean

+

Description: The source string has ICU syntax QA issues.

+
has terms qa issues +

Type: boolean

+

Description: The source string has terms QA issues.

+
has duplicate translation qa issues +

Type: boolean

+

Description: The source string has duplicate translation QA issues.

+
has ftl syntax qa issues +

Type: boolean

+

Description: The source string has FTL syntax QA issues.

+
has android syntax qa issues +

Type: boolean

+

Description: The source string has Android syntax QA issues.

+
has custom qa issues +

Type: boolean

+

Description: The source string has Custom QA issues.

+
rating +

Type: integer

+

Description: The source string translation rating.

+
approvalsCount +

Type: integer

+

Description: The number of translation approvals.

+
labels +

Type: array

+

Description: The source string labels.

+
id +

Type: integer

+

Description: Numeric identifier of the label.

+
title +

Type: string

+

Description: Label title.

+
is system +

Type: boolean

+

Description: System label (label with source file name that is automatically added to strings in string-based projects).

+
added +

Type: datetime

+

Description: Date when a source string was added.

+
updated +

Type: datetime

+

Description: Date when a source string was updated.

+
+ +### Translation Context + +```json +{ + "text": "Швидкий старт", + "plural form": "none", + "is pre translated": true, + "provider": "tm", + "user": 1, + "votes": [ + { + "is up": true, + "is down": false, + "user": 2, + "added": "2021-04-09 13:44:14" + } + ], + "approvals": [ + { + "user": 2, + "added": "2021-04-09 13:44:14" + } + ], + "updated": "2021-04-09 10:23:17" +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
text +

Type: boolean

+

Description: Translation text.

+
plural form +

Type: string

+

Description: Translation plural form.

+
is pre translated +

Type: boolean

+

Description: Translation added via pre-translation.

+
provider +

Type: string

+

Allowed values: tm, global_tm, google, google_automl, microsoft, crowdin, deepl, modernmt, amazon, watson, custom_mt

+

Description: Translation provided via translation memory or machine translation engine.

+
user +

Type: integer

+

Description: Numeric identifier of the user who added a translation.

+
votes +

Type: array

+

Description: Array of the votes added to the translation.

+
is up +

Type: boolean

+

Description: Upvote.

+
is down +

Type: boolean

+

Description: Downvote.

+
user +

Type: integer

+

Description: Numeric identifier of the user who added a vote for translation.

+
added +

Type: datetime

+

Description: Date when a vote for translation was added.

+
approvals +

Type: array

+

Description: Array of the added translation approvals.

+
user +

Type: integer

+

Description: Numeric identifier of the user who approved a translation.

+
added +

Type: datetime

+

Description: Date when a translation approval was added.

+
updated +

Type: datetime

+

Description: Date when a translation was updated.

+
+ +### Translation Memory (TM) Segment Context + +```json +{ + "records": [ + { + "id": 1, + "text": "Перекладений текст", + "usageCount": 77, + "createdBy": 1, + "updatedBy": 1, + "createdAt": "2027-09-16T13:48:04+00:00", + "updatedAt": "2027-09-16T13:48:04+00:00" + } + ] +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
records +

Type: array

+

Description: Array of translation memory segment records.

+
id +

Type: integer

+

Description: Numeric identifier of a record.

+
text +

Type: string

+

Description: Translation text of a record.

+
usageCount +

Type: integer

+

Description: The number of times a translation memory record has been used.

+
createdBy +

Type: integer

+

Description: Numeric identifier of the user who created a translation memory record.

+
updatedBy +

Type: integer

+

Description: Numeric identifier of the user who updated a translation memory record.

+
createdAt +

Type: datetime

+

Description: Date when a translation memory record was created.

+
updatedAt +

Type: datetime

+

Description: Date when a translation memory record was updated.

+
+ +### Glossary Concept Context + +```json +{ + "id": 101, + "user": 12, + "subject": "User Interfact", + "definition": "A command used to save user progress in the application.", + "url": "https://example.com/concept/save", + "note": "Commonly used in forms and toolbars.", + "translatable": true, + "createdAt": "2027-09-16T13:48:04+00:00", + "updatedAt": "2027-09-16T13:48:04+00:00" +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
id +

Type: integer

+

Description: Numeric identifier of the glossary concept.

+
user +

Type: integer

+

Description: Numeric identifier of the user who created the concept.

+
subject +

Type: string

+

Description: Domain or area of knowledge the concept belongs to (e.g., UI, development, healthcare).

+
definition +

Type: string

+

Description: General explanation or definition of the concept.

+
url +

Type: string

+

Description: URL linking to a resource with more information about the concept.

+
note +

Type: string

+

Description: Additional information or clarification for translators.

+
translatable +

Type: boolean

+

Description: Indicates whether the concept can be translated into other languages.

+
createdAt +

Type: datetime

+

Description: Date and time when the concept was created.

+
updatedAt +

Type: datetime

+

Description: Date and time when the concept was last updated.

+
+ +### Glossary Term Context + +```json +{ + "id": 301, + "text": "Cancel", + "description": "A command to stop or abort an operation.", + "language": "en", + "user": 42, + "partOfSpeech": "verb", + "status": "admitted", + "type": "abbreviation", + "gender": "neuter", + "note": "Often used in confirmation dialogs.", + "lemma": "cancel", + "url": "https://example.com/term/cancel", + "concept": 101, + "createdAt": "2027-09-16T13:48:04+00:00", + "updatedAt": "2027-09-16T13:48:04+00:00" +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
id +

Type: integer

+

Description: Numeric identifier of the glossary term.

+
text +

Type: string

+

Description: The term itself, in the specified language.

+
description +

Type: string

+

Description: Additional explanation or meaning of the term.

+
language +

Type: string

+

Description: Language identifier specified as a string. Use the language codes, for example, "uk" for Ukrainian. To specify in queries, use the format: @language:"uk".

+
user +

Type: integer

+

Description: Numeric identifier of the user who added the term.

+
partOfSpeech +

Type: string

+

Allowed values: noun, verb, adj, pron, propn, det, adv, adp, cconj, sconj, num, intj, aux, prt, sym, x

+

Description: The grammatical category of the term.

+
status +

Type: string

+

Allowed values: preferred, admitted, not_recommended, obsolete, draft

+

Description: Indicates the approval or usage level of the term.

+
type +

Type: string

+

Allowed values: full_form, acronym, abbreviation, short_form, phrase, variant

+

Description: Classification of the term by structure or usage.

+
gender +

Type: string

+

Allowed values: masculine, feminine, neuter, common, other

+

Description: Grammatical gender of the term, if applicable.

+
note +

Type: string

+

Description: Additional translator guidance or term-related notes.

+
lemma +

Type: string

+

Description: The base form of the term.

+
url +

Type: string

+

Description: Reference link for the term.

+
concept +

Type: integer

+

Description: ID of the concept the term belongs to.

+
createdAt +

Type: datetime

+

Description: Date and time the term was created.

+
updatedAt +

Type: datetime

+

Description: Date and time the term was last updated.

+
diff --git a/src/content/docs/da/developer/api/crowdin-mcp-server.mdx b/src/content/docs/da/developer/api/crowdin-mcp-server.mdx new file mode 100644 index 00000000..797a9a36 --- /dev/null +++ b/src/content/docs/da/developer/api/crowdin-mcp-server.mdx @@ -0,0 +1,448 @@ +--- +title: Crowdin MCP Server +description: Manage your Crowdin projects using natural-language AI commands. +slug: developer/crowdin-mcp-server +--- + +import { Steps, Aside, Tabs, TabItem, LinkCard } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +The Crowdin MCP (Model Context Protocol) Server enables AI agents to interact with your Crowdin account through natural-language commands, allowing you to automate translations, manage terminology, coordinate teams, and generate insights—all without ever leaving your chat interface. + +Think of the MCP Server as a universal adapter and interpreter. Your AI assistant (e.g., Crowdin Copilot, Claude, Cursor, or ChatGPT) speaks "human language", and the Crowdin API speaks a precise "technical language". The MCP server sits in the middle, translating your natural-language requests into the exact commands that Crowdin understands and then translating the responses back into a clear, readable answer. + +## Why Use the MCP Server? + +* **Speed & Efficiency:** Automate repetitive tasks like file uploads, status checks, and report generation. +* **Contextual Intelligence:** AI agents gain an instant understanding of your projects, deadlines, team members, and workflows—no manual explanation is required. +* **Seamless Workflow:** Manage translation tasks conversationally from within your favorite AI tool or IDE. + +## Prerequisites + +* A Crowdin account. +* A [Personal Access Token](#authentication-tokens-and-scopes) from your account. +* An MCP-compatible client (e.g., Crowdin Copilot, Claude, Cursor, or ChatGPT). + +## Setup and Configuration + +This section provides the details needed to connect your AI client to Crowdin. + +### Authentication: Tokens and Scopes + +To connect to your Crowdin account, the MCP Server uses a **Personal Access Token (PAT)**. This token is your secure key. When you create a token, you must grant it specific **scopes** (permissions) that define what actions it can perform. For the MCP Server to function correctly, the token you use must have the necessary scopes for the commands you want to give. For example, to create a project task, your token will need the **Tasks (Read and Write)** scope. + + + Read more about [Creating a Personal Access Token (Crowdin)](/account-settings/#creating-a-personal-access-token) or [Creating a Personal Access Token (Crowdin Enterprise)](/enterprise/account-settings/#creating-a-personal-access-token). + + +### Endpoint Structure + +The Crowdin MCP Server provides two API versions. **V2 is recommended** for new integrations. It keeps the core MCP flow familiar while adding improved tool design, richer parameters, server-side filtering through headers, and MCP resources for faster context access. + + + + Crowdin MCP endpoint: + + ``` + https://mcp.crowdin.com/v2/mcp + ``` + + Crowdin Enterprise MCP endpoint: + + ``` + https://{your-organization-domain}.mcp.crowdin.com/v2/mcp + ``` + + + Crowdin MCP endpoint: + + ``` + https://mcp.crowdin.com/mcp + ``` + + Crowdin Enterprise MCP endpoint: + + ``` + https://{your-organization-domain}.mcp.crowdin.com/mcp + ``` + + + +Both versions can be configured to expose only the tools your agent needs. In V1, this filtering typically happens on the agent side. In V2, you can also apply filtering directly on the MCP side using headers, which makes setup faster and more convenient. + +### Available Tool Sets + +In V2, tool sets are organized by product area. Choose the tool sets that match your workflow. + +#### Core Localization and Content + +* **`source_files`** - Manage source files, branches, directories, and reviewed builds. +* **`source_strings`** - Add, edit, upload, and organize source strings. +* **`string_comments`** - Manage comments and discussion threads on strings and assets. +* **`string_translations`** - Work with translations, approvals, votes, and corrections. +* **`translations`** - Build, export, import, and validate project translations. +* **`translation_status`** - Check translation progress and QA status across projects, branches, files, and languages. +* **`languages`** - View supported languages and manage custom languages. +* **`glossaries`** - Manage glossaries, terms, concepts, and concordance search. +* **`tm`** - Manage translation memories and TM segments. +* **`style_guides`** - Manage style guides for translation consistency. +* **`screenshots`** - Upload and organize screenshots and tags for visual context. +* **`labels`** - Organize content and screenshots with labels. + +#### Project Operations and Delivery + +* **`projects_groups`** - Manage projects, groups, and project-level settings. +* **`tasks`** - Create, assign, comment on, and track project and organization tasks. +* **`reports`** - Generate progress, cost, quality, activity, and performance reports. +* **`distributions`** - Configure and release translation distributions. +* **`bundles`** - Manage downloadable bundles and exports. +* **`storage`** - Upload and manage temporary storage for files and imports. +* **`webhooks`** - Manage project-level webhooks. +* **`organization_webhooks`** - Manage organization-level webhooks. + +#### AI, Automation, and Integrations + +* **`ai`** - Work with AI prompts, providers, reports, and AI-assisted translation workflows. +* **`applications`** - Manage app installations, sync jobs, and integration settings. +* **`machine_translations`** - Configure machine translation providers and run MT translations. +* **`notifications`** - Send notifications to users and roles. +* **`external_qa_checks`** - Access external QA and custom spellchecker integrations. **(Crowdin Enterprise only.)** + +#### People and Organization Management + +* **`users`** - Manage users, project members, permissions, and contributions. +* **`teams`** - Manage teams, memberships, and team-to-project permissions. **(Crowdin Enterprise only.)** +* **`clients`** - View client accounts. **(Crowdin Enterprise only.)** +* **`vendors`** - View vendor entities. **(Crowdin Enterprise only.)** +* **`fields`** - Manage custom fields. **(Crowdin Enterprise only.)** +* **`organization`** - View organization details and authentication settings. **(Crowdin Enterprise only.)** +* **`workflows`** - View workflow steps, templates, and content assigned to a workflow step. **(Crowdin Enterprise only.)** +* **`security_logs`** - Review user and organization security logs. + + + +### Basic Configuration Example + +Here is a basic JSON configuration snippet for your client. + + + + ```json + { + "crowdin": { + "url": "https://mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}" + } + } + } + ``` + + + ```json + { + "crowdin": { + "url": "https://{your-organization-domain}.mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}" + } + } + } + ``` + + + +### Fine-Tuning with Headers + +The V2 endpoint supports optional HTTP headers that make tool filtering more convenient. In V1, similar filtering is usually configured on the agent side after all tools are loaded. In V2, you can also apply filtering directly on the MCP side before the tool list is returned. + +| Header | Values | Beskriveslse | +| ---------------------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `crowdin-tool-sets` | `all`, or comma-separated names (for example, `ai,reports,webhooks`; see [Available Tool Sets](#available-tool-sets)) | Controls which tool sets are loaded. By default, the server loads all available tool sets. Set a comma-separated list to limit tools to a focused workflow. | +| `crowdin-read-only` | `true` or `false` | When set to `true`, only read-only tools (list and get operations) are exposed. Useful for safe exploration or read-only integrations. | +| `crowdin-project-type` | `string-based` or `file-based` | Filters out tools that are not applicable to the specified project type, reducing noise for the AI agent. | +| `crowdin-tool-filter` | Comma-separated patterns (for example, `project*`, `list_*`) | Applies wildcard pattern matching to tool names, allowing you to include only a specific subset of tools. | + +**Example — read-only access for a string-based project:** + + + + ```json + { + "crowdin": { + "url": "https://mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}", + "crowdin-read-only": "true", + "crowdin-project-type": "string-based" + } + } + } + ``` + + + ```json + { + "crowdin": { + "url": "https://{your-organization-domain}.mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}", + "crowdin-read-only": "true", + "crowdin-project-type": "string-based" + } + } + } + ``` + + + +**Example — limiting tool sets for a focused workflow:** + +By default, the server loads all available tool sets. If you want to focus the agent on a specific workflow, set `crowdin-tool-sets` explicitly. + + + + ```json + { + "crowdin": { + "url": "https://mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}", + "crowdin-tool-sets": "source_files,source_strings,string_translations,translation_status,tasks,reports,webhooks" + } + } + } + ``` + + + ```json + { + "crowdin": { + "url": "https://{your-organization-domain}.mcp.crowdin.com/v2/mcp", + "headers": { + "Authorization": "Bearer {YOUR_CROWDIN_API_TOKEN}", + "crowdin-tool-sets": "source_files,source_strings,string_translations,translation_status,tasks,reports,webhooks,teams,organization,workflows,security_logs" + } + } + } + ``` + + + + + +### MCP Resources + +The V2 endpoint exposes **MCP resources**—read-only references that AI agents can access directly through the `crowdin://` URI scheme without calling individual tools. They provide a simple way to fetch context without relying on a long list of parameters or filters. + +Resources return only the data available to the current token. For example, `crowdin://projects` lists the projects accessible to the authenticated user and permitted by the token scope. Broad resources can return large result sets if the token has access to many items. + +Available resources: + +| Resource URI | Beskriveslse | +| -------------------------------------------- | ---------------------------------------------------------------- | +| `crowdin://projects` | List of all projects accessible to the authenticated user. | +| `crowdin://projects/{projectId}` | Full details of a specific project. | +| `crowdin://projects/{projectId}/progress` | Translation progress per language for a project. | +| `crowdin://projects/{projectId}/files` | Source files in a project. | +| `crowdin://projects/{projectId}/branches` | Version branches in a project. | +| `crowdin://projects/{projectId}/directories` | Directories in a project. | +| `crowdin://projects/{projectId}/strings` | Source strings in a project. | +| `crowdin://projects/{projectId}/tasks` | Tasks in a project. | +| `crowdin://projects/{projectId}/labels` | Labels in a project. | +| `crowdin://projects/{projectId}/languages` | Target languages configured for a project. | +| `crowdin://tasks` | Tasks assigned to the authenticated user across all projects. | +| `crowdin://glossaries` | List of all glossaries. | +| `crowdin://glossaries/{glossaryId}` | Full details of a specific glossary. | +| `crowdin://glossaries/{glossaryId}/terms` | Terms in a glossary. | +| `crowdin://glossaries/{glossaryId}/concepts` | Concepts in a glossary. | +| `crowdin://tms` | List of all translation memories. | +| `crowdin://tms/{tmId}` | Full details of a specific translation memory. | +| `crowdin://tms/{tmId}/segments` | Segments in a translation memory. | +| `crowdin://languages` | List of all languages supported by Crowdin. | +| `crowdin://languages/{languageId}` | Full details of a specific language. | +| `crowdin://groups` | List of all groups. **(Crowdin Enterprise only.)** | +| `crowdin://groups/{groupId}` | Full details of a specific group. **(Crowdin Enterprise only.)** | + + + +## Configuring Your AI Client + +This section guides you through connecting your preferred AI client to the Crowdin MCP Server. While the specific steps may vary slightly between clients, the core process involves providing your client with the server's URL and your Personal Access Token for authentication. + +### Compatible MCP Clients + +The Crowdin MCP Server is built on the Model Context Protocol, an open standard designed for AI interaction. This means that any AI client or development environment that allows for the configuration of custom tools or external contexts should be compatible. + +We have successfully tested the MCP Server with a variety of popular clients, including Crowdin Copilot, desktop applications like Claude Desktop, AI-native IDEs such as Cursor, and platforms like OpenAI (ChatGPT). + + + +This list is not exhaustive, and we encourage you to try connecting the MCP Server with your own preferred AI tools. + +### General Configuration Steps + +If you use Crowdin Copilot, no manual MCP setup is required. The steps below apply to external MCP-compatible clients. + +1. **Get Your Personal Access Token (PAT):** Before you begin, ensure you have a PAT with the necessary scopes for your intended tasks, as detailed in the [Authentication](#authentication-tokens-and-scopes) section. +2. **Locate Your Client's Settings:** Open your AI client and find the settings area for connecting to external tools or contexts. +3. **Enter the Configuration Details:** In most clients, you will need to provide: + * The **endpoint URL** for the Crowdin MCP Server. + * An **Authorization header** containing your PAT. + * Optional **filtering headers** if you want to limit the available tool sets or enable read-only access. + +### Configuring MCP Client for Claude Desktop + +To set up the MCP client in Claude Desktop, follow these steps: + + + 1. Navigate to **Settings > Developer** in the Claude desktop application. + + 2. Click **Edit Config** to locate the `claude_desktop_config.json` file. + + 3. Open `claude_desktop_config.json` and enter the following configuration: + + + + ```json + { + "mcpServers": { + "crowdin": { + "command": "npx", + "args": [ + "mcp-remote@latest", + "https://mcp.crowdin.com/v2/mcp", + "--header", + "Authorization:${AUTH_TOKEN}" + ], + "env": { + "AUTH_TOKEN": "Bearer {YOUR_CROWDIN_API_TOKEN}" + } + } + } + } + ``` + + + ```json + { + "mcpServers": { + "crowdin": { + "command": "npx", + "args": [ + "mcp-remote@latest", + "https://{your-organization-domain}.mcp.crowdin.com/v2/mcp", + "--header", + "Authorization:${AUTH_TOKEN}" + ], + "env": { + "AUTH_TOKEN": "Bearer {YOUR_CROWDIN_API_TOKEN}" + } + } + } + } + ``` + + + + 4. Save the changes, and restart the Claude Desktop app. + + +## Making Your First Request + +Once your client is configured, you can test the connection with a simple task-focused prompt. + +Start a new chat with your AI assistant and type the following: `What tasks am I currently working on?` + +Before executing the request, the AI client will likely identify the required tool from the Crowdin MCP Server and ask for your permission to proceed. You will need to approve this confirmation step for the command to run. Many clients also offer ways to streamline this behavior for trusted sources. + +After you grant permission, the AI will respond by listing the tasks currently assigned to you. This confirms that your connection is working and that your client can access the expected Crowdin context. + +## Practical Workflows for Your Role + +The real power of the MCP server comes from chaining commands to complete real-world localization tasks. Here are some examples of how different roles can use it to streamline their work. + +### Project Manager + +1. **Check Progress:** + ```text wrap + What's the proofreading progress for the 'Q4 Mobile Release' project in German? + ``` +2. **Identify Bottleneck:** The AI responds that German proofreading is only 30% complete. +3. **Take Action:** + ```text wrap + Create a task to proofread all unapproved strings in German for that project and assign it to 'John Doe'. + ``` +4. **Review Active Work:** + ```text wrap + Show all my tasks that are currently in progress and highlight any overdue items. + ``` +5. **Distribute Work Automatically:** + ```text wrap + In project 'Mobile App Q4', find untranslated content, create tasks for it, and distribute the work evenly among available translators. + ``` + +### Developer / Translation Requestor + +1. **Add New Source Files:** When a new feature is ready, the developer adds the source text files to the localization project using Cursor. + ```text wrap + Add the file 'new_onboarding_feature.json' to the 'Mobile App Q4' project. + ``` +2. **Monitor Translation Progress:** As the deadline approaches, they check the translators' progress to ensure the project is on track. + ```text wrap + What is the translation progress for the 'Mobile App Q4' project? + ``` +3. **Publish Final Translations:** Once translations are complete and approved, the developer publishes them to their production environment using a pre-configured distribution. + ```text wrap + Create a new release for our 'Production CDN' distribution. + ``` + +### Translator + +1. **Find Work:** A translator's first step is to find strings that are ready for them to work on. + ```text wrap + Show me all high-priority untranslated strings for French in the 'iOS App' project. + ``` +2. **Ensure Consistency:** To maintain quality, they check the glossary for correct terminology. + ```text wrap + What is the approved translation for the term 'workspace' in the French glossary? + ``` +3. **Request Context:** If a string is ambiguous, they request visual context for an accurate translation. + ```text wrap + For string ID 'xyz-789', show me its screenshot. + ``` + +### Admin (Crowdin Enterprise only) + +1. **Audit Permissions:** + ```text wrap + Show me the organization members of the 'German Translation' team. + ``` +2. **Identify Need for Change:** The AI lists the members. The admin notices a user that has left the company. +3. **Take Action:** + ```text wrap + Delete 'John Doe' from the organization. + ``` +4. **Review Inactive Accounts:** + ```text wrap + Show inactive users in the organization, list their team memberships and project access, and suggest which accounts should be deactivated. + ``` + +## Best Practices + +* **Use the V2 Endpoint:** The V2 endpoint (`/v2/mcp`) provides smart tool loading, advanced filtering, and MCP resources that improve AI agent accuracy and performance. Use V2 for all new integrations. +* **Load Only the Tool Sets You Need:** Start with the tool sets required for your workflow and add more only when needed. A smaller tool list helps the agent stay focused. +* **Set Your Project Type:** If you know your project type, pass the `crowdin-project-type` header (`string-based` or `file-based`). This filters out irrelevant tools and helps the AI agent make better decisions. +* **Use Read-Only Mode for Safe Exploration:** Set `crowdin-read-only: true` when onboarding new team members or testing integrations. This prevents accidental changes while still providing full read access. +* **Be Specific in Your Prompts:** Reference project names and IDs rather than generic terms. For example, `List tasks for project ID 12345 in French` is better than `Show me my tasks.` +* **Start with a Simple Query:** Begin with a safe prompt such as `What tasks am I currently working on?` to confirm that your client can access the expected Crowdin context. +* **Manage Tokens Securely:** Treat your Personal Access Tokens like passwords and handle them with care. + * **Use Minimal Scopes:** When creating a token, grant only the permissions necessary for the tasks you intend to perform. + * **Store Securely:** Keep tokens in encrypted vaults or secure environment variables, not in shared configuration files. + * **Rotate Regularly:** For enhanced security, periodically revoke old tokens and create new ones. diff --git a/src/content/docs/da/developer/api/graphql-api.mdx b/src/content/docs/da/developer/api/graphql-api.mdx new file mode 100644 index 00000000..e8aa1258 --- /dev/null +++ b/src/content/docs/da/developer/api/graphql-api.mdx @@ -0,0 +1,567 @@ +--- +title: GraphQL API +description: Retrieve exactly the data you need using more specific and flexible queries +slug: developer/graphql-api +sidebar: + order: 4 +--- + +import { Steps, Aside, LinkCard } from '@astrojs/starlight/components'; + +GraphQL API is a tool that allows you to retrieve exactly the data you need using more specific and flexible queries. One of the main benefits of GraphQL API is that you can get many different resources using a single request. + +For cases when you want to run queries against the Crowdin GraphQL API, we recommend using the GraphQL Playground app, with the help of which you can build, test, and debug queries from Crowdin and Crowdin Enterprise web UI even before writing any code in your application. + + + +## Authorization with GraphQL API + +To work with GraphQL API in Crowdin or Crowdin Enterprise, use one of the following access tokens: + +* [Crowdin Personal Access Token](/account-settings/#creating-a-personal-access-token) +* [Crowdin Enterprise Personal Access Token](/enterprise/account-settings/#creating-a-personal-access-token) +* [OAuth Access Token](/developer/authorizing-oauth-apps/#make-requests-to-the-api-with-the-access-token-returned) + +Ensure to use the following header in your requests: + +```bash +Authorization: Bearer +``` + +The response in case authorization fails: + +401 Unauthorized + +```json +{ + "error": { + "message": "Unauthorized", + "code": 401 + } +} +``` + +## Root Endpoint + +In contrast to the REST API, GraphQL API has only one endpoint that remains constant, not depending on the performed operations. + +Crowdin GraphQL endpoint: + +```bash +https://api.crowdin.com/api/graphql +``` + +Crowdin Enterprise GraphQL endpoint: + +```bash +https://{domain}.api.crowdin.com/api/graphql +``` + +## Resource Limitations + +The Crowdin GraphQL API has limitations to prevent excessive or abusive calls to Crowdin servers. + +### Node Limit + +All GraphQL API calls must comply with the following requirements to pass schema validation: + +* Users must supply a `first` or `last` argument on any connection. +* Values of `first` and `last` must be within 1-10,000. +* Individual calls can't request more than 10,000 total nodes. + +#### Nodes Calculation + +In the following examples, you can check out how the nodes in a call are calculated. + +##### Simple query + +```graphql +query { + viewer { + projects(first: 50) { + edges { + node { + name + + files(first: 10) { + totalCount + edges { + node { + name + type + } + } + } + } + } + } + } +} +``` + +Calculation: + +``` +50 = 50 projects ++ +50 x 10 = 500 files + + = 550 total nodes +``` + +##### Complex query + +```graphql +query { + viewer { + projects(first: 50) { + edges { + node { + files(first: 20) { + edges { + node { + strings(first: 10) { + edges { + node { + ... on PlainSourceString { + text + } + ... on ICUSourceString { + text + } + ... on PluralSourceString { + plurals { + one + other + } + } + ... on AssetSourceString { + text + } + } + } + } + } + } + } + + translations(first: 20, languageId: "uk") { + edges { + node { + ... on PlainStringTranslation { + text + } + ... on ICUStringTranslation { + text + } + ... on PluralStringTranslation { + pluralForm + text + } + ... on AssetStringTranslation { + text + } + } + } + } + } + } + } + } +} +``` + +Calculation: + +``` +50 = 50 projects ++ +50 x 20 = 1,000 files ++ +50 x 20 x 10 = 10,000 strings ++ +50 x 20 = 1,000 translations + + = 12,050 total nodes +``` + +### Rate Limit + +The GraphQL API limit is quite different compared to the [REST API Rate Limits](/developer/api/v2/#section/Introduction/Rate-Limits). + +As mentioned above, you can get the same amount of data using only one GraphQL call and replacing the need to execute multiple REST calls. While a single complex GraphQL call could be equivalent to thousands of REST requests and wouldn't exceed the REST API rate limit, its computation might be just as expensive for Crowdin servers. + +The GraphQL API uses a normalized point scale to precisely depict the server cost of a query by calculating a call's rate limit score. This score includes the first and last arguments on a parent connection and its children. + +* The formula uses the `first` and `last` arguments on a parent connection and its children to pre-determine the possible load on Crowdin systems, such as MySQL and ElasticSearch. +* Each new connection has its own point value. Points are added to the call's other points to form a final rate limit score. + +The GraphQL API rate limit is set to 5,000 points per hour. Since the GraphQL API and REST API use different rate limits, 5,000 points per hour aren't the same as 5,000 calls per hour. + + + +#### Checking Rate Limit Status of a Call + +To check the rate limit status when using GraphQL API, query the fields on the `rateLimit` object: + +```graphql +query { + viewer { + username + } + rateLimit { + limit + cost + remaining + resetAt + } +} +``` + +* `limit` – returns the maximum number of points the user is allowed to consume in a 60-minute window. +* `cost` – returns the point cost for the current call that counts against the rate limit. +* `remaining` – returns the number of points remaining in the current rate limit window. +* `resetAt` – returns the time at which the current rate limit window resets in UTC epoch seconds. + +#### Estimating Rate Limit Score before Call Execution + +While querying the `rateLimit` object can give you a call's score, it counts against the limit. To work around this situation, you can estimate the score of a call in advance. Using the following calculation, you can get approximately the same cost as returned by `rateLimit { cost }`. + + + 1. First, the number of requests required to fulfill each unique connection in the call should be added up. Suppose each request will reach the `first` or `last` argument limits. + 2. Next, you need to divide the number by 100 and round the result to obtain the final combined cost. This step normalizes large numbers. + + + + +Here's an example query and score calculation: + +```graphql +query { + viewer { + username + projects(first: 100) { + edges { + node { + id + files(first: 50) { + edges { + node { + id + strings(first: 60) { + edges { + node { + ... on PlainSourceString { + id + text + } + ... on ICUSourceString { + id + text + } + ... on PluralSourceString { + id + plurals { + one + other + } + } + ... on AssetSourceString { + id + text + } + } + } + } + } + } + } + } + } + } + } +} +``` + +* While returning 100 projects, the API has to connect to the user's account once to get the list of projects. So, requests for projects = 1 +* While returning 50 files, the API has to connect to each of the 100 projects to get the list of files. So, requests for files = 100 +* While returning 60 strings, the API has to connect to each of the 5,000 potential total files to get the list of strings. So, requests for strings = 5,000 +* Total = 5,101 + +Now, divide the total of 5,101 by 100 and round it. As a result, you get the final score of the query, which is 51. + +## Pagination + +Pagination is a fundamental concept in GraphQL that allows you to retrieve a subset of data from a larger collection, making it easier to manage and display information. + +In this section, we'll explore how to use pagination in Crowdin GraphQL API, focusing on the `projects` field as an example. + +### Understanding Pagination in Crowdin GraphQL + +Before diving into the specifics of using pagination, let's clarify some key terms: + +* **Connection** – In Crowdin GraphQL, a connection is a structure that holds a list of items. It typically includes edges, pageInfo, and totalCount. Edges contain the actual data items, pageInfo provides information about pagination, and totalCount indicates the total number of items in the connection. +* **Edges** – Edges are individual items within a connection. Each edge contains the node (the data item) and a cursor, which is a string used to navigate the collection. +* **PageInfo** – PageInfo provides information that helps you determine if there are more items to retrieve. It includes fields like `hasNextPage`, `hasPreviousPage`, `startCursor`, and `endCursor`. + +### Using Pagination in Crowdin GraphQL + +Now, let's focus on using pagination with the `projects` field in the Crowdin GraphQL API. + +#### Querying Projects with Pagination + +The `projects` field within the `User` type is used to query the projects associated with a user. It accepts several input parameters that allow you to control the pagination of the results. These parameters are: + +* `after` – A cursor that indicates where the query should start from in the list of projects. +* `first` – The number of projects to retrieve after the specified cursor. +* `before` – A cursor that indicates where the query should end. +* `last` – The number of projects to retrieve before the specified cursor. + +#### Example Query + +The following example query requests the first ten projects associated with the authenticated user starting from the provided cursor (`cursor_string`). The response will include the `edges` array containing the project data, as well as `pageInfo` and `totalCount` fields for pagination control. + +```graphql +query { + viewer { + projects( + after: "cursor_string", # Replace with a valid `after` cursor + first: 10 + ) { + edges { + node { + id + name + description + # Add more fields as needed + } + cursor + } + pageInfo { + hasNextPage + hasPreviousPage + startCursor + endCursor + } + totalCount + } + } +} +``` + +Here is a response example for the above query: + +```json +{ + "data": { + "viewer": { + "projects": { + "edges": [ + { + "node": { + "id": 1, + "name": "Umbrella", + "description": "Official Umbrella Translation Project" + }, + "cursor": "MA==" + }, + { + "node": { + "id": 2, + "name": "Umbrella iOS", + "description": "Official Umbrella iOS App Translation Project" + }, + "cursor": "MQ==" + } + ], + "pageInfo": { + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "MA==", + "endCursor": "MQ==" + }, + "totalCount": 5 + } + } + } +} +``` + +#### Pagination Control + +* `hasNextPage` – This field in `pageInfo` indicates whether there are more projects available for the next page. +* `hasPreviousPage` – This field in `pageInfo` indicates whether there are more projects available for the previous page. +* `startCursor` – The cursor pointing to the first project in the current result set. +* `endCursor` – The cursor pointing to the last project in the current result set. +* `totalCount` – The total count of projects associated with the user. + +#### Fetching Previous Pages + +There are scenarios where you may need to navigate backward through pages in your dataset. This might be needed for various reasons, such as: reviewing older data, correction or modification, etc. + +To navigate backward through pages, you can use the `last` and `before` parameters. The `last` parameter specifies the number of items from the end of the list, and the `before` parameter takes the cursor of the first item you want to retrieve. Here's an example: + +```graphql +query { + viewer { + projects( + last: 10, + before: "cursor_of_first_item" # Replace with a valid `before` cursor + ) { + edges { + node { + id + name + description + # Add more fields as needed + } + } + } + } +} +``` + +## Filtering and Sorting + +Crowdin GraphQL provides capabilities for filtering and sorting (ordering) data, allowing you to narrow down the selection of data you want to retrieve and arrange it in a particular order. + +As with pagination, in this section, we'll explore how to use filtering and sorting in Crowdin GraphQL API, focusing on the `projects` field as an example. + +### Filtering Data + +Filtering is the process of specifying criteria to select a subset of data from a larger dataset. In Crowdin GraphQL, filtering lets you narrow down your query results based on specific conditions. This is particularly useful when you want to retrieve data that meets specific requirements or characteristics. + +#### `ProjectFilterInput` + +Crowdin GraphQL provides the `ProjectFilterInput` type, which allows you to filter projects based on various attributes. Here are some key attributes you can filter by: + +* `and` – A logical conjunction that combines multiple filter criteria. +* `or` – A logical disjunction that combines multiple filter criteria. +* `id` – Filter by project ID using various conditions, such as equality, greater than, or less than. +* `userId` – Filter projects by the user ID associated with them. +* `name` – Filter project by their name, with options to check for equality, containment, or starting with specific text. +* `identifier` – Filter by project identifier, similar to filtering by name. +* `description` – Filter project by their description, with options for equality, containment, or starting with specific text. +* `publicDownloads` – Filter projects based on whether public downloads are enabled. +* `languageAccessPolicy` – Filter projects by their language access policy (e.g., "open" or "moderate"). +* `visibility` – Filter projects based on their visibility (e.g., "open" or "private"). +* `createdAt` – Filter projects by their creation date using various date-related conditions. +* `updatedAt` – Filter projects by their last update date. +* `lastActivityAt` – Filter projects by their last activity date. + +Filtering is a flexible way to target the data you need in your queries precisely. You can use logical operators such as `and` and `or` to combine multiple filtering conditions to refine your query even further. + +#### Example of Filtering + +To retrieve projects created after a specific date and with a "private" visibility setting, you can create a filter input like this: + +```graphql +query { + viewer { + projects( + first: 10, + filter: { + createdAt: { gt: "2023-01-01T00:00:00Z" } + and: { visibility: { equals: private } } + } + ) { + edges { + node { + id + name + description + # Add more fields as needed + } + } + } + } +} +``` + +This filter will return projects that meet both conditions: created after January 1, 2023, and set to "private" visibility. + +### Sorting Data + +Sorting involves specifying the order in which query results are presented. It doesn't reduce the number of results but arranges them in a particular sequence. Crowdin GraphQL provides options for sorting data based on attributes such as project name, creation date, or other relevant factors. + +#### `ProjectOrderInput` + +The `ProjectOrderInput` type in Crowdin GraphQL allows you to specify the sorting order for your query results. You can order projects based on attributes like: + +* `id` – Sort projects by their unique identifier. +* `userId` – Sort projects by the identifier of the user who created them. +* `name` – Sort projects by their name. +* `identifier` – Sort projects by their identifier. +* `description` – Sort projects by their description. +* `publicDownloads` – Sort projects by their public download setting. +* `languageAccessPolicy` – Sort projects by their language access policy. +* `visibility` – Sort projects by their visibility setting. +* `createdAt` – Sort projects by their creation date. +* `updatedAt` – Sort projects by their last update date. +* `lastActivityAt` – Sort projects by their last activity date. + +You can specify the sorting order to be in ascending ("asc") or descending ("desc") order, giving you complete control over how the data is presented. + +#### Example of Sorting + +To retrieve projects sorted by their name in descending order, you can create a sort input like this: + +```graphql +query { + viewer { + projects( + first: 10 + order: [{ name: desc }] + ) { + edges { + node { + id + name + description + # Add more fields as needed + } + } + } + } +} +``` + +This sorting order will present the projects in reverse alphabetical order of their names. + +### Combining Filtering and Sorting + +Crowdin GraphQL allows you to combine both filtering and sorting to tailor your queries precisely. You can first filter data to select a subset that meets specific criteria and then sort the results in the desired order. This combination allows you to retrieve and arrange data according to your specific requirements. + +#### Example of Filtering and Sorting + +To retrieve projects created after a specific date, with the "moderate" language access policy, and sort them by their last activity date in ascending order, you can create a query like this: + +```graphql +query { + viewer { + projects( + first: 10 + filter: { + createdAt: { gt: "2023-01-01T00:00:00Z" } + and: { languageAccessPolicy: { equals: moderate } } + }, + order: [{ lastActivityAt: asc }] + ) { + edges { + node { + id + name + description + # Add more fields as needed + } + } + } + } +} +``` + +This query will return projects that meet the filtering conditions and present them in ascending order based on their last activity date. diff --git a/src/content/docs/da/developer/api/language-codes.mdx b/src/content/docs/da/developer/api/language-codes.mdx new file mode 100644 index 00000000..90d4e036 --- /dev/null +++ b/src/content/docs/da/developer/api/language-codes.mdx @@ -0,0 +1,24 @@ +--- +title: Sprogkoder +description: Explore the list of language codes supported by Crowdin and Crowdin Enterprise +slug: developer/language-codes +sidebar: + order: 5 +tableOfContents: false +--- + +import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; +import Languages from '~/components/Languages.astro'; + + + + + + + + + + + diff --git a/src/content/docs/da/developer/api/overview.mdx b/src/content/docs/da/developer/api/overview.mdx new file mode 100644 index 00000000..f10d0da1 --- /dev/null +++ b/src/content/docs/da/developer/api/overview.mdx @@ -0,0 +1,48 @@ +--- +title: API +description: Learn how to use Crowdin's API to integrate localization into your process +slug: developer/api +--- + +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; +import RepoCard from '~/components/RepoCard.astro'; + +Crowdin's API is a full-featured RESTful API that helps you integrate localization into your development process. The endpoints we use allow you to easily make calls to retrieve information and perform necessary actions. + +Most of the functionality of Crowdin is available through the API. It allows you to create projects for translations, add and update files, download translations, and much more. In this way, you can script the complex actions that your situation requires. + + + + + + + + + + +## API Clients + +The Crowdin API clients are lightweight, open-source interfaces developed for the Crowdin API. They offer common services for making API requests. + +
+ + + + + + + +
+ +## AI Agents and API + +AI agents can integrate with Crowdin via the REST API or MCP (Model Context Protocol). AI-focused integration surfaces include LLM-friendly API specs (`llms.txt`) and MCP tool access to Crowdin capabilities. + + + + + + +## Se også + + diff --git a/src/content/docs/da/developer/capabilities/editor-themes.mdx b/src/content/docs/da/developer/capabilities/editor-themes.mdx new file mode 100644 index 00000000..222094e3 --- /dev/null +++ b/src/content/docs/da/developer/capabilities/editor-themes.mdx @@ -0,0 +1,193 @@ +--- +title: Editor Themes +description: Create and distribute custom themes for the Crowdin Editor +slug: developer/editor-themes +sidebar: + order: 3 +--- + +import { Steps, LinkCard } from '@astrojs/starlight/components'; + +Crowdin Editor uses JSON-based files to manage its visual themes. This article outlines the key concepts for designers to create and distribute custom themes. + + + +## Theme File Structure + +A complete Crowdin theme file contains the following top-level properties: + +* `themeMode` – accepts `light` or `dark` for base editor styling. +* `primaryAccent` – main accent color used throughout the interface. +* `base` – a collection of properties controlling various interface elements (backgrounds, font colors, string status colors, highlights). +* `accents` – colors used for notifications (info, danger, warning, success messages). +* `button` – provides styling options for different button types. + +## Important Notes + +* **Color Values** – all color properties require valid CSS color values (HEX, RGB, RGBA). +* **Complex Backgrounds** – properties `base.commonUi.headerBackground`, `base.commonUi.subHeaderBackground`, `base.commonUi.mainContentBackground` and `base.commonUi.mainMenuBackground` accept gradients, images, and other valid CSS background values. +* **Minimal Themes** – it's not mandatory to define every property. Crowdin automatically calculates missing values based on the provided settings. + +### Development and Testing + +During the theme development process, we recommend using the [Theme Builder](https://store.crowdin.com/theme-builder) app, with the help of which designers can easily test and preview their themes in real time. + +### Minimal JSON Theme + +```json +{ + "themeMode": "dark", + "primaryAccent": "#f9d9c8", + "base": { + "baseBackground": "#2d2b52", + "stringStatus": { + "translated": "#5b89c6", + "approved": "#6dc271" + }, + "highlights": { + "placeholderColor": "#afff8a", + "placeholderBg": "#74827A", + "tagColor": "#bfc3a0", + "tagBg": "#626550", + "nonePrintableCharacterColor": "#3eb17f", + "findAndReplaceHighlightBg": "#8A6800", + "specialLightColor": "#E0E6ED", + "specialLightBg": "#383E47" + } + }, + "accents": { + "info": { + "accentColor": "#35a1ff" + }, + "danger": { + "accentColor": "#fa644a" + }, + "warning": { + "accentColor": "#cc9a06" + }, + "success": { + "accentColor": "#74bb02" + } + } +} +``` + +### Full JSON Theme + +```json +{ + "themeMode": "light", + "primaryAccent": "#4A90E2", + "base": { + "baseBackground": "#FFFFFF", + "cardsBackground": "#F7F7F7", + "typeface": { + "baseColor": "black", + "bodyColor": "black", + "mutedColor": "black", + "disabledColor": "black", + "iconsColor": "black" + }, + "commonUi": { + "headerBackground": "#4A90E2", + "subHeaderBackground": "#3E7CB1", + "mainContentBackground": "#FFFFFF", + "checkedStringBackground": "#E0F7FA", + "mainMenuBackground": "#2E3A4A" + }, + "scrollBars": { + "thumbColor": "#ffffff", + "trackColor": "#f5f7f8" + }, + "borders": { + "borderColor": "#263238", + "darkBorderColor": "#000000" + }, + "stringStatus": { + "translated": "#4CAF50", + "approved": "#0A8F08", + "notTranslated": "#FFC107", + "hidden": "#9E9E9E" + }, + "highlights": { + "placeholderColor": "#9E9E9E", + "placeholderBg": "#ECEFF1", + "tagColor": "#4A90E2", + "tagColorHover": "#357ABD", + "tagBg": "#ECEFF1", + "tagBgHover": "#CFD8DC", + "nonePrintableCharacterColor": "#FF5252", + "findAndReplaceHighlightBg": "#FFEB3B", + "specialLightColor": "#770000", + "specialLightBg": "#F0F0FF" + } + }, + "accents": { + "info": { + "accentColor": "#2196F3", + "backgroundColor": "#E3F2FD" + }, + "danger": { + "accentColor": "#F44336", + "backgroundColor": "#FFEBEE" + }, + "warning": { + "accentColor": "#FF9800", + "backgroundColor": "#FFF3E0" + }, + "success": { + "accentColor": "#4CAF50", + "backgroundColor": "#E8F5E9" + } + }, + "button": { + "default": { + "btnColor": "#333333", + "btnHoverColor": "#444444", + "btnBorder": "#BDBDBD", + "btnHoverBorder": "#9E9E9E", + "btnActiveBorder": "#757575", + "btnDisabledBorder": "#E0E0E0", + "btnBg": "#E0E0E0", + "btnHoverBg": "#EEEEEE", + "btnActiveBg": "#BDBDBD", + "btnDisabledBg": "#F5F5F5", + "btnModalBorder": "#9E9E9E" + }, + "primary": { + "btnColor": "#FFFFFF", + "btnBorder": "#4A90E2", + "btnBg": "#2196F3", + "btnHoverBg": "#1976D2", + "btnActiveBg": "#0D47A1" + }, + "danger": { + "btnBg": "#F44336", + "btnHoverBg": "#D32F2F", + "btnBorder": "#FFCDD2", + "btnHoverBorder": "#EF9A9A" + }, + "icon": { + "btnBg": "#FFFFFF", + "btnBorder": "#BDBDBD", + "btnHoverBorder": "#9E9E9E", + "btnActiveBorder": "#757575" + } + } +} +``` + +## Theme Publishing + +Custom themes should be submitted to the Crowdin Store to become available for installation by Crowdin users. + +To publish a theme, follow these steps: + + + 1. [Contact Support Team](https://crowdin.com/contacts): We will handle the review and publishing process 24x7. + 2. Provide the following information: + * Author name + * Theme name + * Beskriveslse + * Screenshot of the theme in use + diff --git a/src/content/docs/da/developer/capabilities/in-context.mdx b/src/content/docs/da/developer/capabilities/in-context.mdx new file mode 100644 index 00000000..475dc530 --- /dev/null +++ b/src/content/docs/da/developer/capabilities/in-context.mdx @@ -0,0 +1,324 @@ +--- +title: In-Context +description: Translate your web application directly in the real-time context +slug: developer/in-context-localization +sidebar: + order: 0 +--- + +import { Steps, Aside, LinkCard, Tabs, TabItem, Code, LinkButton } from '@astrojs/starlight/components'; +import { Icon } from 'astro-icon/components'; +import { YouTube } from 'astro-embed'; +import QuestionAnswer from '~/components/QuestionAnswer.astro'; +import ReadMore from '~/components/ReadMore.astro'; +import { Image } from 'astro:assets'; +import strings from '!/developer/in_context_strings.png'; +import tab from '!/developer/in_context_tab.png'; +import tabE from '!/developer/in_context_tab_e.png'; +import login from '!/developer/in_context_login.png'; +import loginClose from '!/developer/in_context_login_close.png'; +import addScreenshot from '!/developer/in_context_add_screenshot.png'; +import replaceScreenshot from '!/developer/in_context_replace_screenshot.png'; +import editStringsContextCode from '/src/assets/code/in-context/edit_strings_context.html?raw'; + +Crowdin In-Context works with the help of a one-line Javascript snippet and pseudo-language package. It creates a pseudo-language package based on the localization files uploaded to your project, which later will be integrated into your application as an additional localization language. + +## Hurtig demo + + + +In-Context-lokalisering er bundet op på det Crowdin-projekt, hvori oversættelige filer lagres. Translations made using In-Context are added to your project in the same way as translations made directly in the Editor. + +Dette værktøj formidler en visning af applikationen med redigerbare tekster, så oversættelsesprocessen ses i realtid. Even the dynamic part of the application and strings containing placeholders can be translated this way. + +
+ See in Action + Get Personalized Demo +
+ +Integrated pseudo-language contains special identifiers instead of the original texts. Thus when switching your app to that language, all labels are converted to special identifiers. Javascript searches for those identifiers and replaces them with editable labels. So, the In-context page of your web app will look the same as your application, with the only difference that translatable strings will be editable. + +In-Context View + +Translations are made directly in the app, with no need to open the Editor. A simplified version of Crowdin Editor will be displayed, with all the functionality (TM, machine translation, approve/vote option, comments, terms) provided. Thus, it's easier to make and review translations since translators can preview them in a real context. + +## Integration + +There are two common approaches to integrate Crowdin In-Context with your application: + +* **Staging or translation environment** + If you are not planning to invite your end-users to help with translations or not considering using a “translation mode” in your production application, integrating Crowdin In-Context to your staging or dedicated translation app environment would be a good solution. + +* **Production environment** + Crowdin In-Context doesn't require any code changes in your application so that you can use it even on production. You decide how to turn it on and which segment of users will use it. De mest almindelige anvendelsesscenarier er flg.: + * You can create a mirror website that is a complete copy of your application but under a different URL (for example, instead of `crowdin.com` it can be `translate.crowdin.com`), where translators will make translations as if it was your actual application. + * You can also add In-context as an additional language. So, when translators open your application, they will choose this additional language from the list, which will open In-context for them. + +Follow the integration setup guide in your Crowdin project to set up In-Context. The guide can be found in your project, under **Tools > In-Context**. + + + + In-Context Tab in Crowdin + + + In-Context Tab in Enterprise + + + + + +After the integration is successfully set up and you have refreshed your application, you should see the invitation dialog and Crowdin login box. + +Login Window + +### Adding String URLs to Context + +When integrating In-Context for your website, you can add an optional script that can collect and add URLs to the [context section](/online-editor/#requesting-context) of each string used on the website. + +As a result, translators can click the URL for a particular string and be redirected to the website page where this string is used and get additional context for accurate translation. + +To add string URLs to context, follow these steps: + + + 1. Copy the following JavaScript snippet and paste it right after the primary In-Context JavaScript snippet (which could be found in your Crowdin project's **Tools** tab) at the `head` section on every page with localizable text. + Once finished, each website's page you'd like to translate via In-Context should contain two JavaScript snippets: + * Primary JavaScript snippet that launches the In-Context feature. + * Additional JavaScript snippet that collects and adds URLs to the source string context. + 2. After adding JavaScript snippets, you should open each website page where In-Context is integrated. That will allow the additional JavaScript snippet to collect and add string URLs to your Crowdin project. + + +When you add a new page to your website, upload the related source files to your Crowdin project. Afterward, repeat the steps above to collect and add URLs for strings from the new page. + +If some website page's URL changes, open it in In-Context to refresh the string URLs collected initially. + +## Optional Parameters + +You can add these parameters to the `_jipt` array in the configuration snippet. + +### Texts Preloading + +```js +_jipt.push(['preload_texts', true]); +``` + +Speeds up dynamic content displaying within the In-Context tool by preloading all source strings. +Automatically disabled for large projects (5000+ strings). Acceptable values: `true`, `false`. + +### Translation Button Always Visible + +```js +_jipt.push(['touch_optimized', true]); +``` + +This option is enabled on touchscreens by default and makes the translation button next to each translatable string permanently visible instead of showing on hover. Acceptable values: `true`, `false`. + +### Before Commit Callback + +```js +_jipt.push(['before_commit', function(source, translation, context, language_code) { + return status_obj; +}]); +``` + +Function to validate the suggestion before committing. + + + + + + + + + + + + + + +
Parameters
sourceSource text
translationTranslation text
contextSource string context
language_codeTarget language code (language codes)
Return Values
status_objObject. The status_obj.status may be "ok", "error" or "corrected". + In case of error, status_obj.message contains error description. + When status is corrected, status_obj.correction contains the corrected translation
+ +### Before DOM Insert Callback + +```js +_jipt.push(['before_dom_insert', function(text, node, attribute) { + return 'text'; +}]); +``` + +Function to transform the string before it gets inserted into the DOM. + + + + + + + + + + + +
Parameters
textString for insertion
node
optional
DOM element in which the text must be inserted. It may be omitted if the text doesn't have a target element (text inside the browser's pop-ups)
attribute
optional
The attribute of DOM element, if the text is part of an attribute
Return Values
textString for insertion
falseIf the function returns false, DOM will not be updated
+ +### Close the In-Context Overlay Callback + +```js +_jipt.push(['escape', function() { + window.location.href = "http://app_domain.com"; +}]); +``` + +If defined, users can close the In-Context overlay if they don't want to translate. Implement this feature on your side. Depending on the In-Context integration approach, it must change the app's language or redirect from the translation environment to the production app. + +Close Login Window + +### Start Type + +```js +_jipt.push(['start_type', 'manual']); +``` + +Defines how In-Context is initialized. Acceptable values: + +* **`default`** – In-Context starts automatically after the script loads. +* **`manual`** – In-Context starts only when you call [`window.jipt.start()`](#start-and-stop-methods). + +Use `manual` if you need greater control. For example, in single-page apps where you want to switch In-Context on or off based on user actions. + +### Tagging Only Visible Strings + +```js +_jipt.push(['tag_only_visible_phrases', true]); +``` + +When set to `true`, this parameter ensures the screenshot tagging feature only processes strings currently visible in the user's viewport. This is ideal for dynamic interfaces, like single-page applications that use modals or dialogs that cover other on-page content. Enabling this option prevents hidden strings from being tagged, resulting in cleaner screenshots and more accurate context for translators. Acceptable values: `true`, `false`. + +### Capture Visible Area Only + +```js +_jipt.push(['screenshot_visible_area_only', true]); +``` + +When set to `true`, In-Context captures only the part of the page currently visible in the user's viewport instead of taking a full-page screenshot. This is useful for long pages or dynamic interfaces where you want the screenshot to reflect exactly what translators see on screen. Acceptable values: `true`, `false`. + +## Optional Functions + +You can call various functions on the global `window.jipt` object to manage or customize In-Context in real time. + +### Start and Stop Methods + +```js +window.jipt.start(); +``` + +Manually activates In-Context for the current page. Use this if you set `start_type` to `manual` or if you want to re-activate In-Context after stopping it. + +```js +window.jipt.stop(); +``` + +Stops the In-Context overlay. All interactive translation elements are removed until you call `start()` again. + +**Usage Example: Single-Page Application** + +In a single-page application, you might switch In-Context on or off when a user changes the language: + +```js +const handleLanguageChange = (event) => { + const language = event.target.value; + setSelectedLanguage(language); + + if (language === inContextLanguage) { + window.jipt.start(); + } else { + window.jipt.stop(); + } +}; +``` + +In the above snippet, whenever the user selects the In-Context pseudo-language, In-Context is triggered. When they select any other language, In-Context is stopped. + +## Managing Screenshots via In-Context + +With Crowdin In-Context, you can manage screenshots of your web application pages directly while browsing them. This feature helps you provide up-to-date visual context for translators, ensuring string tagging stays accurate and relevant. + +Screenshots taken via In-Context are automatically uploaded to your Crowdin project. All visible strings on the page are tagged automatically, simplifying context management for your translation team. + + + + + Read more about [Screenshots](/screenshots/). + + + + +### Adding Screenshots via In-Context + +You can take a screenshot of any page of your website while using In-Context and upload it to your Crowdin project. Crowdin will automatically tag all strings displayed on the page in the screenshot. + +To add a screenshot via In-Context, follow these steps: + + + 1. Open your website page with In-Context enabled. + 2. In the Crowdin In-Context dialog, switch to the **Screenshot** tab. + 3. In the **Name** field, check the automatically suggested screenshot name based on the page title. Edit it if needed. If no screenshots were previously added for this page, the **Replace existing screenshot** drop-down will display *There is no screenshot with this name*. + 4. Click **Add Screenshot**. + + +Add Screenshot + +Crowdin will upload the screenshot to your project and automatically tag all strings displayed on the page. + +### Updating Screenshots via In-Context + +You can manually update existing screenshots in your Crowdin project directly from In-Context. This helps keep screenshots and string tags current when your web pages are updated with new content or layout changes. + +To update an existing screenshot via In-Context, follow these steps: + + + 1. Open the updated page of your website with In-Context enabled. + 2. In the Crowdin In-Context dialog, switch to the **Screenshot** tab. + 3. In the **Name** field, check the automatically suggested screenshot name based on the page title. + 4. In the **Replace existing screenshot** drop-down, select the screenshot you want to replace. You can also view the time and date the existing screenshot was added to confirm you’re replacing the correct one. + 5. Click **Replace Screenshot**. + + +Replace Screenshot + +Crowdin will replace the previous screenshot in your project with the new one and automatically tag all strings displayed on the page. + +## Troubleshooting and Common Questions + + + This error may occur if some strings have been updated in the Crowdin project, but these texts are missing on your website. In this case, download the latest version of the pseudo-language from your project in **Tools > In-Context** and update the pseudo-language on your website. + + + + In-Context is technology-independent. Users can configure it according to the regular instructions, simply using a `script` tag. + + + + It doesn't matter how many packages and repositories are involved. You can connect multiple repositories within one Crowdin project. If they relate to the same web app, it should work seamlessly. + + + + As long as the texts that are displayed on the website page come from one Crowdin project, In-Context will handle them just fine. The key point is that the texts on your website must be in the regular DOM, not in the shadow DOM. + + + + This is technically impossible. The Shadow DOM is invisible to our scripts. It can only be manipulated by the code that created the Shadow DOM. + + + + This can be done using the Crowdin API. Use the [Get Project](/developer/api/v2/#operation/api.projects.get) API method to extract the `inContextPseudoLanguage` object, which contains the language code of the pseudo-language. With this language code, you can build the pseudo-language separately, download it, and integrate it into your website. All other methods are regular - upload/update the file, get the list of target languages with the [Get Project](/developer/api/v2/#operation/api.projects.get) API method, and build the target languages. Alternatively, you can also build and download the entire Crowdin project archive at once, which will include the pseudo-language. + + + + The "Unrecognized text" label is displayed on the website if in the Crowdin project strings have been deleted or string keys have been changed in the source files, but the same strings are still present in the pseudo-language that is integrated into the website. + To fix this, you just need to update the source files in the Crowdin project again, download the pseudo-language, and update it on the website. + diff --git a/src/content/docs/da/developer/capabilities/pseudolocalization.mdx b/src/content/docs/da/developer/capabilities/pseudolocalization.mdx new file mode 100644 index 00000000..81011ae1 --- /dev/null +++ b/src/content/docs/da/developer/capabilities/pseudolocalization.mdx @@ -0,0 +1,91 @@ +--- +title: Pseudolocalization +description: Check how your product's UI will look after translation +slug: developer/pseudolocalization +sidebar: + order: 2 +--- + +import { CardGrid, LinkCard, Steps, Tabs, TabItem, LinkButton } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +Pseudolokalisering er en metode til brug for kontrol af en softwares lokaliseringsparathed. Metoden illustrerer, hvordan produktets UI vil præsentere sig efter oversættelse. Benyt denne funktion til at reducere potentielle ombearbejdninger ved at tjekke, om visse kildestrenge skal ændres, inden oversættelsesprocessen påbegyndes. + +Med Pseudolokalisering kan flg. hurtigt kontrolleres: + +* Hvordan sprog, hvis tekster har tendens til at være længere/kortere end kildeteksten, passer i et produkts UI +* Kontrollere, om alle oversættelige strenge er uploadet til projektet +* Finde ikke-oversætelige tekster i softwaren (f.eks. app-navnestrenge) +* Se, hvor godt produktet understøtter forskellige tegnsæt og højre-til-venstre/venstre-til-højre sprog + +## Parametre + +Pseudo-localization can be customized to fit your needs. There are several parameters you can adjust to see how your application will look with different languages. + +### Længdekorrektion + +Allows you make strings longer or shorter to see if your product's UI handles other languages correctly. Because translations in some languages may be longer or shorter than the source texts in your project. For example, Spanish texts are on average 25-30% longer than English texts, while Japanese texts are 30-60% shorter. + +### Præfiks -/suffikstilføjelse + +Tilføj præfikser og suffikser for at se, hvor hver streng starter og slutter i UI'en, uanset sproget. + +### Tegntransformation + +Character Transformation replaces English characters with easily recognizable accented versions, random Arabic symbols, or Chinese ideographs to make it obvious if there are some hard-coded strings in your application. This ensures that your application is ready for localization into other languages (including right-to-left and left-to-right languages). + +## Pseudolokaliserings-app + +To run Pseudo-localization, you can use the Pseudo-localization app that could be installed via Crowdin Store. + +Install the App + +Følg disse trin for at opsætte Pseudolokaliserings-appen: + + + 1. Select one of the available presets or set all the required parameters manually. + 2. Click **Pseudo-localize and Download**. Resultatet bliver et arkiv indeholdende pseudolokaliserede projektfiler. + 3. Integrér de downloadede filer i den relevante software. + + +## Pseudolokalisering via CLI + +En anden måde at opsætte og downloade pseudolokaliserede projektfiler på er vha. Crowdin CLI. + + + Read more about [Downloading Pseudo-localization via CLI](https://crowdin.github.io/crowdin-cli/advanced#download-pseudo-localization). + + +## Pseudolokalisering via API + +If you prefer working with API, you can use the following API methods. + + + + * [Build Project Translation](/developer/api/v2/#operation/api.projects.translations.builds.post) - ensure to switch to the `TranslationCreateProjectPseudoBuildForm` schema. + * [Check Project Build Status](/developer/api/v2/#operation/api.projects.translations.builds.get). + * [Download Project Translations](/developer/api/v2/#operation/api.projects.translations.builds.download.download). + + + * [Build Project Translation](/developer/enterprise/api/v2/#operation/api.projects.translations.builds.post) - ensure to switch to the `TranslationCreateProjectPseudoBuildForm` schema. + * [Check Project Build Status](/developer/enterprise/api/v2/#operation/api.projects.translations.builds.get). + * [Download Project Translations](/developer/enterprise/api/v2/#operation/api.projects.translations.builds.download.download). + + + +This is an asynchronous API, so you must check the build status before downloading the pseudo-localized files. + + + Read more about [API](/developer/api/). + + +## Pseudo-Localization via Design Plugins + +For design tool (Figma, Adobe XD) users, there's also an option to test whether the designs are ready to be localized using pseudo-localization. This feature is integrated into Crowdin for Figma and Crowdin for Adobe XD plugins. + +It allows you to simulate how your content (e.g., the application's UI) will look with different languages to check whether the source strings should be modified before the project localization starts. You can start pseudo-localizing your content right after sending your texts to Crowdin. + + + + + diff --git a/src/content/docs/da/developer/capabilities/webhooks.mdx b/src/content/docs/da/developer/capabilities/webhooks.mdx new file mode 100644 index 00000000..c0578c05 --- /dev/null +++ b/src/content/docs/da/developer/capabilities/webhooks.mdx @@ -0,0 +1,426 @@ +--- +title: Webhook Events +description: Explore the list of events and payload examples +slug: developer/webhooks +sidebar: + order: 1 +--- + +import { Aside, Tabs, TabItem, Code, Card, CardGrid } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +import fileTranslated from '/src/assets/code/webhooks/file.translated.json?raw'; +import fileApproved from '/src/assets/code/webhooks/file.approved.json?raw'; +import fileAdded from '/src/assets/code/webhooks/file.added.json?raw'; +import fileUpdated from '/src/assets/code/webhooks/file.updated.json?raw'; +import fileReverted from '/src/assets/code/webhooks/file.reverted.json?raw'; +import fileDeleted from '/src/assets/code/webhooks/file.deleted.json?raw'; +import projectTranslated from '/src/assets/code/webhooks/project.translated.json?raw'; +import projectApproved from '/src/assets/code/webhooks/project.approved.json?raw'; +import projectBuilt from '/src/assets/code/webhooks/project.built.json?raw'; +import translationUpdated from '/src/assets/code/webhooks/translation.updated.json?raw'; +import translationUpdatedSb from '/src/assets/code/webhooks/sb/translation.updated.json?raw'; +import stringAdded from '/src/assets/code/webhooks/string.added.json?raw'; +import stringAddedSb from '/src/assets/code/webhooks/sb/string.added.json?raw'; +import stringUpdated from '/src/assets/code/webhooks/string.updated.json?raw'; +import stringUpdatedSb from '/src/assets/code/webhooks/sb/string.updated.json?raw'; +import stringDeleted from '/src/assets/code/webhooks/string.deleted.json?raw'; +import stringDeletedSb from '/src/assets/code/webhooks/sb/string.deleted.json?raw'; +import suggestionAdded from '/src/assets/code/webhooks/suggestion.added.json?raw'; +import suggestionAddedSb from '/src/assets/code/webhooks/sb/suggestion.added.json?raw'; +import suggestionUpdated from '/src/assets/code/webhooks/suggestion.updated.json?raw'; +import suggestionUpdatedSb from '/src/assets/code/webhooks/sb/suggestion.updated.json?raw'; +import suggestionDeleted from '/src/assets/code/webhooks/suggestion.deleted.json?raw'; +import suggestionDeletedSb from '/src/assets/code/webhooks/sb/suggestion.deleted.json?raw'; +import suggestionApproved from '/src/assets/code/webhooks/suggestion.approved.json?raw'; +import suggestionApprovedSb from '/src/assets/code/webhooks/sb/suggestion.approved.json?raw'; +import suggestionDisapproved from '/src/assets/code/webhooks/suggestion.disapproved.json?raw'; +import suggestionDisapprovedSb from '/src/assets/code/webhooks/sb/suggestion.disapproved.json?raw'; +import stringCommentCreated from '/src/assets/code/webhooks/stringComment.created.json?raw'; +import stringCommentCreatedSb from '/src/assets/code/webhooks/sb/stringComment.created.json?raw'; +import stringCommentUpdated from '/src/assets/code/webhooks/stringComment.updated.json?raw'; +import stringCommentUpdatedSb from '/src/assets/code/webhooks/sb/stringComment.updated.json?raw'; +import stringCommentDeleted from '/src/assets/code/webhooks/stringComment.deleted.json?raw'; +import stringCommentDeletedSb from '/src/assets/code/webhooks/sb/stringComment.deleted.json?raw'; +import stringCommentRestored from '/src/assets/code/webhooks/stringComment.restored.json?raw'; +import stringCommentRestoredSb from '/src/assets/code/webhooks/sb/stringComment.restored.json?raw'; +import taskAdded from '/src/assets/code/webhooks/task.added.json?raw'; +import taskAddedSb from '/src/assets/code/webhooks/sb/task.added.json?raw'; +import taskStatusChanged from '/src/assets/code/webhooks/task.statusChanged.json?raw'; +import taskStatusChangedSb from '/src/assets/code/webhooks/sb/task.statusChanged.json?raw'; +import taskUpdated from '/src/assets/code/webhooks/task.updated.json?raw'; +import taskUpdatedSb from '/src/assets/code/webhooks/sb/task.updated.json?raw'; +import taskDeleted from '/src/assets/code/webhooks/task.deleted.json?raw'; +import taskDeletedSb from '/src/assets/code/webhooks/sb/task.deleted.json?raw'; +import projectCreated from '/src/assets/code/webhooks/project.created.json?raw'; +import projectDeleted from '/src/assets/code/webhooks/project.deleted.json?raw'; +import groupCreated from '/src/assets/code/webhooks/group.created.json?raw'; +import groupDeleted from '/src/assets/code/webhooks/group.deleted.json?raw'; + +You can add webhooks to build integrations with the third-party services or with your backend. Efter opsætning af en projekt-webhook, vil Crowdin begynde at sende POST- eller GET-anmodninger med data til webhook-URL'en via HTTP. + + + +## Configuring Webhooks + +Webhook integration can be implemented at different levels, including Project, Account, or Organization level. + + + + Configure webhooks for a specific project to receive notifications about events in the project such as file translation, review, and more. + + See [Crowdin Webhooks](/webhooks/) and [Crowdin Enterprise Webhooks](/enterprise/webhooks/) for more details. + + + Configure webhooks for your Crowdin Enterprise organization to receive notifications when projects and groups are created or deleted. + + See [Organization Settings](/enterprise/organization-settings/#webhooks) for more details. + + + Configure webhooks for your Crowdin account to receive notifications when projects are created or deleted. + + See [Account Settings](/account-settings/#webhooks) for more details. + + + +Depending on your approach to webhooks management, you might need to add dedicated Crowdin IP addresses to your firewall to allow Crowdin to open the pre-configured webhook URLs. + + + Read more about [IP Addresses](/developer/ip-addresses/#webhooks-ai-providers-and-mt-engines). + + +## Events + +You can configure webhooks for different events that occur in the project, account, or organization. + +#### File + +* [File fully translated](#file-fully-translated) – a file is translated into one of the target languages +* [File fully reviewed](#file-fully-reviewed) – translations in a file are approved for one of the target languages +* [File added](#file-added) – a new file is added to the project +* [File updated](#file-updated) – a file is updated +* [File reverted](#file-reverted) – a file is reverted to the previous revision +* [File deleted](#file-deleted) – a file is deleted + +#### Project + +* [Project fully translated](#project-fully-translated) – all files are translated into one of the target languages +* [Project fully reviewed](#project-fully-reviewed) – translations in all files are approved for one of the target languages +* [Project successfully built](#project-successfully-built) – a project is built successfully +* [Exported translation updated](#exported-translation-updated) – final translation of a string is updated + +#### Source String + +* [Source string added](#source-string-added) – a new string is added to the project +* [Source string updated](#source-string-updated) – a string in the project is updated +* [Source string deleted](#source-string-deleted) – a string is deleted + +#### Suggested Translation + +* [Suggested translation added](#suggested-translation-added) – a string in the project is translated +* [Suggested translation updated](#suggested-translation-updated) – a translation for a string in the project is updated +* [Suggested translation deleted](#suggested-translation-deleted) – one of the translations is deleted +* [Suggested translation approved](#suggested-translation-approved) – a translation for a string is approved +* [Suggested translation disapproved](#suggested-translation-disapproved) – approval for a previously added translation is removed + +#### String Comment/Issue + +* [String comment/issue created](#string-commentissue-created) – a comment or issue is added to the string +* [String comment/issue updated](#string-commentissue-updated) – a comment or issue is updated +* [String comment/issue deleted](#string-commentissue-deleted) – a comment or issue is deleted +* [String comment/issue restored](#string-commentissue-restored) – a comment or issue is restored + +#### Task + +* [Task added](#task-added) – a task is added to the project +* [Task status changed](#task-status-changed) – a task status is changed +* [Task updated](#task-updated) – a task is updated +* [Task deleted](#task-deleted) – a task is deleted + +#### Account and Organization + +* [Project created](#project-created) – a project is created +* [Project deleted](#project-deleted) – a project is deleted +* [Group created](#group-created) – a group is created (Crowdin Enterprise only) +* [Group deleted](#group-deleted) – a group is deleted (Crowdin Enterprise only) + +## Webhook-indholdsdata eksempler + +View the examples of the webhook payloads for different events. + +### File Fully Translated + + + +### File Fully Reviewed + + + +### File Added + + + +### File Updated + + + +### File Reverted + + + +### File Deleted + + + +### Project Fully Translated + + + +### Project Fully Reviewed + + + +### Project Successfully Built + + + +### Exported Translation Updated + + + + + + + + + + +### Source String Added + + + + + + + + + + +### Source String Updated + + + + + + + + + + +### Source String Deleted + + + + + + + + + + +### Suggested Translation Added + + + + + + + + + + +### Suggested Translation Updated + + + + + + + + + + +### Suggested Translation Deleted + + + + + + + + + + +### Suggested Translation Approved + + + + + + + + + + +### Suggested Translation Disapproved + + + + + + + + + + +### String Comment/Issue Created + + + + + + + + + + +### String Comment/Issue Updated + + + + + + + + + + +### String Comment/Issue Deleted + + + + + + + + + + +### String Comment/Issue Restored + + + + + + + + + + +### Task Added + + + + + + + + + + +### Task Status Changed + + + + + + + + + + +### Task Updated + + + + + + + + + + +### Task Deleted + + + + + + + + + + +### Project Created + + + +### Project Deleted + + + +### Group Created + + + +### Group Deleted + + + +## Crowdin and Crowdin Enterprise Events Payloads + +The payload structure for Crowdin and Crowdin Enterprise events is basically the same. The only difference is in the `project` object. For Crowdin Enterprise events, the `project` object contains additional fields. + +```diff del={"Crowdin:":18-20} ins={"Crowdin Enterprise:":22-24} lang="json" +{ + "project": { + "id": "777", + "userId": "1", + "sourceLanguageId": "en", + "targetLanguageIds": [ + "uk", + "pl" + ], + "identifier": "umbrella", + "name": "Project Name", + "createdAt": "2022-04-20T11:05:24+00:00", + "updatedAt": "2022-04-21T11:07:29+00:00", + "lastActivity": "2022-04-21T11:07:29+00:00", + "description": "Project Description", + "url": "https://crowdin.com/project/umbrella", + "cname": null, + +- "languageAccessPolicy": "moderate", +- "visibility": "private", +- "publicDownloads": true, + ++ "logo": ""data:image/png;base64,iVBORw0KGgoAAAANSU....", ++ "isExternal": false, ++ "externalType": null, ++ "hasCrowdsourcing": true, ++ "groupId": 1 + } +} +``` diff --git a/src/content/docs/da/developer/crowdin-apps/about-crowdin-apps.mdx b/src/content/docs/da/developer/crowdin-apps/about-crowdin-apps.mdx new file mode 100644 index 00000000..afdfb86c --- /dev/null +++ b/src/content/docs/da/developer/crowdin-apps/about-crowdin-apps.mdx @@ -0,0 +1,113 @@ +--- +title: Om Crowdin Apps +description: Build apps for all the teams already using Crowdin or Crowdin Enterprise +slug: developer/crowdin-apps-about +hero: + title: Om Crowdin Apps + tagline: Join the growing localization management platform! Build apps for all the teams already using Crowdin or Crowdin Enterprise to customize and extend localization experience. +tableOfContents: false +--- + +import { Image } from 'astro:assets'; +import { LinkCard, CardGrid, Card, Aside } from '@astrojs/starlight/components'; +import { YouTube } from 'astro-embed'; +import ReadMore from '~/components/ReadMore.astro'; +import HelpBanner from '~/components/HelpBanner.astro'; +import developerHero from '~/assets/images/developer-portal-hero.png'; +import integratingCrowdinApps from '~/assets/images/integrating-crowdin-apps.svg'; + + + +
+
+
+
+

3M+

+

Registered users

+
+
+

250k+

+

Projects

+
+
+

15k+

+

Active project owners

+
+
+
+
+ +By creating Crowdin apps, developers can integrate existing services with Crowdin, add new features, upload and manage content. + +Crowdin apps are web applications that function remotely via HTTP. To an end user, an app appears as a fully integrated part of Crowdin. Once your app is installed, its features are delivered straight to the Crowdin UI. + +You can develop a Crowdin app using any of the preferred programming languages and web frameworks, and deploy it in many different ways. From massive SaaS services to static apps served right from a code repo, Crowdin apps are designed to let you connect anything to Crowdin. + +Integrating with Crowdin Diagram + +## Creating Crowdin Apps + +The development of Crowdin App starts with creating an app descriptor. The app descriptor is a JSON file that describes the interaction of the app with Crowdin. The descriptor includes general information for the app, as well as the modules that the app will be using or extending. Basically, the descriptor is a middle ground between the remote app and Crowdin. When a Crowdin account owner installs an app, what they are really doing is installing this descriptor file, which contains pointers to your app. + + + Read more about [App Descriptor](/developer/crowdin-apps-app-descriptor/). + + +The next step would be to implement the app functionality according to the app descriptor which implies the following steps: + + + + Event listeners implementation – the usage of webhooks which are triggered by Crowdin to perform certain actions on the app side (installation of the app, app removal, etc). + + + Modules implementation – module usage in the Crowdin apps. Modules are the functional parts integrated into the apps with help of which apps extend Crowdin and interact with it. + + + + + Read more about [UI Modules](/developer/crowdin-apps-modules-ui/) and [File Processing Modules](/developer/crowdin-apps-modules-file-processing/). + + + + +## Using Crowdin APIs in Crowdin Apps + +Crowdin Apps communicate with Crowdin using our RESTful APIs. You can use the Crowdin APIs in Crowdin apps you develop for Crowdin, as well as in scripts, API clients, or other methods of making calls. + +Our APIs allow you to manage Crowdin TMs, glossaries, source content (files and strings), translations, branches, etc. You can use the APIs to upload source files, export translations, as well as for user management, generating reports, and more. + + + + + +## Using JS API in Crowdin Apps + +For improved interaction between the Crowdin app and Crowdin, you can use our library that provides cross-window communication. The library simplifies the interaction with the Crowdin interface, allows you to get additional information from the page where the application was opened, or manipulate certain UI elements of the page directly from the application. + + + Read more about [Crowdin Apps JS](/developer/crowdin-apps-js/). + + +## Publishing Your App + +After creating and testing your app, the next thing you need to do is to publish it into the cloud or any public server so that it’s always accessible to Crowdin and other users. + + + Read more about [Publishing Your App](/developer/crowdin-apps-publishing/). + + +When you're ready to share your app you can submit your app to the [Crowdin Store](https://store.crowdin.com). This allows other users to install and run your app(s). + +## Examples of Crowdin Apps + +Before you start developing your own Crowdin apps, you can take a look at a few examples. They showcase the integration between Crowdin Enterprise and external services like Mailchimp and SendGrid. Read more about [Crowdin Mailchimp Example](https://github.com/crowdin-community/crowdin-mailchimp-example) and [Crowdin SendGrid Example](https://github.com/crowdin-community/crowdin-sendgrid-example). + +## Assistance from Our Team + +Crowdins team er klar til at hjælpe med den tekniske implementering af en egen app. Når appen er klar, drøftes hvordan Crowdin kan hjælpe med eksponering overfor Crowdin-kunder. For any guidance from our team contact us at support@crowdin.com. + +## Case Study + + diff --git a/src/content/docs/da/developer/crowdin-apps/app-descriptor.mdx b/src/content/docs/da/developer/crowdin-apps/app-descriptor.mdx new file mode 100644 index 00000000..10872b47 --- /dev/null +++ b/src/content/docs/da/developer/crowdin-apps/app-descriptor.mdx @@ -0,0 +1,442 @@ +--- +title: App-deskriptor +description: Learn how to define the app descriptor +slug: developer/crowdin-apps-app-descriptor +--- + +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +The app descriptor is one of the essential building blocks of Crowdin apps. The app descriptor is a JSON file (for example, `manifest.json`) that includes general information for the app, as well as the modules that the app wants to operate with or extend. + +It describes how the application will work, what resources will be used, etc. + + + +## App Descriptor Structure + +The app descriptor is a JSON object with the following structure: + +```json title="manifest.json" +{ + "identifier": "your-application-identifier", + "name": "Your Application", + "description": "Application description", + "logo": "/assets/logos/app-logo.png", + "baseUrl": "http://example.com", + "authentication": { + "type": "crowdin_app", + "clientId": "your-client-id" + }, + "events": { + "installed": "/hooks/installed" + }, + "scopes": [ + "project" + ], + "modules": { + "project-integrations": [ + { + "key": "your-module-key", + "name": "Module Name", + "description": "Module description", + "logo": "/assets/logos/module-logo.png", + "url": "/page/integration", + "environments": [ + "crowdin", "crowdin-enterprise" + ] + } + ] + } +} +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
identifier +
Type: string (^[a-z0-9-._]+$)
+

Required: yes

+

Description: A unique key to identify the app. This identifier must be <= 255 characters.

+ +
name +

Type: string

+

Required: yes

+

Description: The human-readable name of the app.

+
baseUrl +

Type: string (uri)

+

Required: yes

+

Description: The base URL of the remote app, which is used for all communications back to the app instance.
+ Once the app is installed in a workspace, the app's baseUrl can’t be changed without uninstalling the app beforehand.

+

This is important: choose your baseUrl wisely before making your app public.
+ The baseUrl must start with https:// to ensure that all data is sent securely between our cloud instances and your app.

+ +
authentication +

Type: Authentication

+

Required: yes

+

Description: Specifies the authentication type to use when signing requests between the host application and the Crowdin app.

+
description +

Type: string

+

Description: The human-readable description of what the app does.
+ The description will be visible in the Crowdin UI.

+
logo +

Type: string (relativeUri)

+

Description: The image URL relative to the app's base URL which will be displayed in the Crowdin UI.

+
events +

Type: Events

+

Description: Allow the app to register for app event notifications.

+
scopes +

Type: [string, … ]

+

Description: Set of [scopes](/developer/understanding-scopes/) requested by this app.

+
+ ```json + "scopes": [ + "project", + "tm" + ] + ``` +
+
modules +

Type: object

+

Description: The list of modules this app provides.

+
environments +

Type: [string, … ]

+

Allowed values: crowdin, crowdin-enterprise

+

Description: Set of environments where a module could be installed.

+
+ ```json + "environments": [ + "crowdin-enterprise" + ] + ``` +
+
+ +## Godkendelse + +Specifies the authentication type to use when signing requests from the host application to the Crowdin app. Crowdin Apps support two types of authentication: + +* using OAuth app (`crowdin_app` value) +* without OAuth app (`none` value) + +In case your Crowdin app requires access to Crowdin API at any time, it’s recommended to use the `crowdin_app`, in other cases feel free to use the `none`. The authentication type `none` grants access to Crowdin API as well as the `crowdin_app`, but only when the Crowdin app is executed on the user side, for example, when the iframe opens. + +Example: + +```json title="manifest.json" +{ + "authentication": { + "type": "crowdin_app", + "clientId": "your-client-id" + } +} +``` + + + + + + + + + + + + + + + + + + +
PropertyDescription
type +

Type: string

+

Defaults to: none

+

Allowed values: none, crowdin_app

+

Description: The type of authentication to use.

+
clientId +

Type: string

+

Description: OAuth client id for authorization via the crowdin_app type.

+
+ +## Moduler + +Modules are how apps extend Crowdin and interact with it. Using modules your app can do the following things: + +* Extend the Crowdin UI. +* Create integrations with external services. +* Add support for new custom file formats. +* Customize processing for supported file formats. + + + Read more about [UI Modules](/developer/crowdin-apps-modules-ui/) and [File Processing Modules](/developer/crowdin-apps-modules-file-processing/). + + +## Events + +Allow an app to register callbacks for events that occur in the workspace. When an event is fired, a POST request will be made to the appropriate URL registered for the event. The installed callback is an integral part of the installation process of an app, whereas the remaining events are essentially webhooks. Each property within this object is a URL relative to the app's base URL. + +Example: + +```json title="manifest.json" +{ + "events": { + "installed": "/hook/installed", + "uninstall": "/hook/uninstall" + } +} +``` + + + + + + + + + + + + + + + + + + +
PropertyDescription
installed +

Type: string

+

Description: The event that is sent to an app after a user installed the app in Crowdin.

+

This event is required if you use crowdin_app. Read more about [Authentication](#authentication).

+
uninstall +

Type: string

+

Description: The event that is sent to an app before the app uninstallation from Crowdin.

+
+ +### Installed Event Payload + +The Installed event is sent from Crowdin to the remote app when a user installs the app in Crowdin. The Installed event contains the information about the Crowdin workspace or profile the Crowdin App was installed to, the information about the app itself, as well as the credentials to fetch an API token. + + + Read more about [Installed Event Flow](/developer/crowdin-apps-installation/#installed-event-communication-flow). + + +Payload example: + +```json +{ + "appId": "your-application-identifier", + "appSecret": "dbfg....asdffgg", + "clientId": "your-client-id", + "userId": 1, + "organizationId": 1, + "domain": null, + "baseUrl": "https://crowdin.com" +} +``` + +```json +{ + "appId": "your-application-identifier", + "appSecret": "dbfg....asdffgg", + "clientId": "your-client-id", + "userId": 1, + "organizationId": 1, + "domain": "{domain}", + "baseUrl": "https://{domain}.crowdin.com" +} +``` + +Egenskaber: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
appId +

Type: string

+

Description: The identifier of the app that is declared in the app descriptor file.

+
appSecret +

Type: string

+

Description: The unique secret used for authorization of your Crowdin app.

+
clientId +

Type: string

+

Description: The OAuth client identifier that is declared in the app descriptor file.

+
userId +

Type: integer

+

Description: The numeric identifier of the user that installed the app in Crowdin Enterprise.

+
organizationId +

Type: integer

+

Description: The numeric identifier of the organization the app was installed to.

+
domain +

Type: string

+

Description: The name of the organization in Crowdin Enterprise the app was installed to. For Crowdin the domain value is always null

+
baseUrl +

Type: string

+

Description: The `baseUrl` of the organization in Crowdin Enterprise the app was installed to. For Crowdin the `baseUrl` value is always `https://crowdin.com`

+
+ +### Uninstall Event Payload + +The uninstall event is sent from Crowdin Enterprise to the remote Crowdin app when a user uninstalls the app from Crowdin Enterprise. The Uninstall event, like the install event, contains the information about the Crowdin workspace or account the Crowdin App was installed to, and the information about the app itself. After receiving the uninstall event, it's necessary to find and remove all of the data related to the Crowdin workspace or account the app is removed from. + +Payload example: + +```json +{ + "appId": "your-application-identifier", + "clientId": "your-client-id", + "organizationId": 1, + "domain": null, + "baseUrl": "https://crowdin.com" +} +``` + +```json +{ + "appId": "your-application-identifier", + "clientId": "your-client-id", + "organizationId": 1, + "domain": "{domain}", + "baseUrl": "https://{domain}.crowdin.com" +} +``` + +Egenskaber: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
appId +

Type: string

+

Description: The identifier of the app that is declared in the app descriptor file.

+
clientId +

Type: string

+

Description: The OAuth client identifier that is declared in the app descriptor file.

+
organizationId +

Type: integer

+

Description: The numeric identifier of the organization the app uninstalled from.

+
domain +

Type: string

+

Description: The name of the organization in Crowdin Enterprise the app uninstalled from. For Crowdin the domain value is always null

+
baseUrl +

Type: string

+

Description: The baseUrl of the organization in Crowdin Enterprise the app uninstalled from. For Crowdin the `baseUrl` value is always `https://crowdin.com`

+
diff --git a/src/content/docs/da/developer/crowdin-apps/apps-js.mdx b/src/content/docs/da/developer/crowdin-apps/apps-js.mdx new file mode 100644 index 00000000..3a7121fc --- /dev/null +++ b/src/content/docs/da/developer/crowdin-apps/apps-js.mdx @@ -0,0 +1,4539 @@ +--- +title: Crowdin Apps JS +description: Utilize the Crowdin Apps JS library to interact with Crowdin +slug: developer/crowdin-apps-js +--- + +import { Aside } from '@astrojs/starlight/components'; +import ReadMore from '~/components/ReadMore.astro'; + +The Crowdin Apps JS is a JavaScript library that enables communication between your app and the Crowdin UI. Since all Crowdin Apps run inside a sandboxed `\