Skip to content

Commit

Permalink
docs: Project Settings (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrii-bodnar authored Jul 24, 2024
1 parent a62843c commit ce357b1
Show file tree
Hide file tree
Showing 53 changed files with 951 additions and 30 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/content/docs/crowdin/getting-started/for-managers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ In most cases, you might have localization resources like [Translation Memory](/

## Pre-translate your Project

To save time, you can pre-translate your Crowdin project via [Translation Memory](/translation-memory) (TM) or [Machine Translation](/machine-translation) (MT). This way, you'll have some strings automatically translated before translators start working on your project translations. You can apply pre-translation manually or set up automatic pre-translation via [TM](/project-settings/translation-memories) or [MT](/project-settings#machine-translation), so each time new content is added, it's translated automatically.
To save time, you can pre-translate your Crowdin project via [Translation Memory](/translation-memory) (TM) or [Machine Translation](/machine-translation) (MT). This way, you'll have some strings automatically translated before translators start working on your project translations. You can apply pre-translation manually or set up automatic pre-translation via [TM](/project-settings/translation-memories) or [MT](/project-settings/machine-translation), so each time new content is added, it's translated automatically.

<Image src={preTranslation} alt="Pre-translation via TM" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ slug: translation-memory

https://support.crowdin.com/translation-memory/
https://support.crowdin.com/tm-auto-substitution/

## Prioritizing TM

## TM Match Calculation
2 changes: 2 additions & 0 deletions src/content/docs/crowdin/online-editor/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ sidebar:
https://support.crowdin.com/online-editor/

## File Context

## Side-by-Side Mode
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: AI
slug: ai
sidebar:
order: 7
---

import { Image } from 'astro:assets';
import ReadMore from '~/components/ReadMore.astro';
import aiAddingPrompt from '!/crowdin/project-management/settings/ai_adding_prompt.png';

In the **Project Settings > AI** section, you can configure AI Prompts for your project:

- Pre-Translate prompt
- AI in Editor prompt

Before the AI Prompts can be configured in the project settings, it's also necessary for the project owner to configure the AI Providers.

<Image src={aiAddingPrompt} alt="AI Prompts" />

<ReadMore>
Read more about [Crowdin AI](/crowdin-ai).
</ReadMore>
Original file line number Diff line number Diff line change
@@ -1,6 +1,63 @@
---
title: Export
slug: project-settings/export
sidebar:
order: 10
---

https://support.crowdin.com/project-settings/#export
import { Image } from 'astro:assets';
import { Aside } from '@astrojs/starlight/components';
import exportSettings from '!/crowdin/project-management/settings/export_settings.png';

By default, when exporting translations, Crowdin fills untranslated strings with source text to avoid exporting empty files. You can change this behavior in the project settings.

<Image src={exportSettings} alt="Export Settings" />

## 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.

<Aside type="caution">
This option only partially applies to iOS strings and RESX formats (i.e., only the context added in Crowdin will be visible in the downloaded files).
</Aside>

## Skip untranslated strings

Only translated strings will be included in the exported translation files.

This option works in three different ways, depending on the file format. This option is not applied to text-formatted documents since missing texts can make downloaded files unreadable. Others are exported with empty values. And for the third file category, untranslated strings are entirely removed from the exported translation files.

<table>
<thead>
<tr>
<th>Option not applied</th>
<th>Untranslated strings exported with empty values</th>
<th>Untranslated strings removed</th>
</tr>
</thead>
<tbody>
<tr>
<td>DOCX, IDML, DITA, ADOC, MD, MediaWiki, TXT, HAML, HTML, assets, FM MD, FM HTML, Contentful JSON, SVG</td>
<td>JSON (with nested structure), PHP, XLSX, CSV, FJS, RC, XAML, XML, Web XML, TypeScript, JS, TOML, QT TS, i18next JSON, gettext PO, FLSNP, Coffee</td>
<td>Android XML, macOS/iOS Strings, Stringsdict, Chrome JSON, JSON (without nested structure), YAML, XLIFF, XLIFF 2.0, ARB, DTD, RRC, GO JSON, Flex, Joomla INI, Maxthon, Java Properties, Play Properties, Java Properties XML, RES JSON, RESW, RESX, SBV, STR, STF, VTT, WXL, VDF, FBT JSON</td>
</tr>
</tbody>
</table>

## Skip untranslated files

Only translated files will be included in the exported translation archive.

<Aside>
if this option is enabled, it overrides the effect of the *Skip untranslated strings* option.
</Aside>

## 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.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: File Processors
slug: project-settings/file-processors
sidebar:
order: 13
---

import { Steps, LinkCard, CardGrid } 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.

<Image src={fileProcessors} alt="File Processors" />

## Managing File Processors

To manage File Processors, go to the **File Processors** section of your project settings.

### Configuring the processing order

You can configure the order of the File Processors. The files will be processed according to the order you set.

### Editing File Processor settings

To Edit the File Processor settings, follow these steps:

<Steps>
1. Open your project and go to the **Settings > File Processors** tab.

2. Click <Icon name="mdi:dots-horizontal" class="inline-icon" /> toward the needed processor and select **Edit**.

4. Make the necessary changes and click **Submit**.
</Steps>

The processor settings may vary depending on the processor you are using.

<CardGrid>
<LinkCard
title="Explore File Processors in Crowdin Store"
href="https://store.crowdin.com/tags/file-processors"
target="_blank"
/>
<LinkCard
title="Create a File Processor"
href="https://developer.crowdin.com/crowdin-apps-modules-file-processing/"
target="_blank"
/>
</CardGrid>
Original file line number Diff line number Diff line change
@@ -1,9 +1,79 @@
---
title: General
slug: project-settings
sidebar:
order: 0
---

https://support.crowdin.com/project-settings/
import { Image } from 'astro:assets';
import { Steps, Aside, LinkCard } from '@astrojs/starlight/components';
import naming from '!/crowdin/project-management/settings/general_naming.png';
import domain from '!/crowdin/project-management/settings/general_domain.png';
import logo from '!/crowdin/project-management/settings/general_logo.png';
import badges from '!/crowdin/project-management/settings/general_badges.png';
import deleteProject from '!/crowdin/project-management/settings/general_delete_project.png';

You can configure project settings according to your needs in the **Settings** tab.

## Machine Translation
## Name

In the **Name** section, you can change the project name and add a public description.

<Image src={naming} alt="Naming" />

## Branding

The custom domain lets you publish your Crowdin project on your own domain name.

To set up a custom domain, follow these steps:

<Steps>
1. Create a necessary domain in the domain name registrar.

2. Create a CNAME record for this domain name that will be pointed to `{{site.cname_domain}}`.

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**.
</Steps>

<Image src={domain} alt="Domain" />

The project logo allows you to customize the appearance of your project's main page.

<Image src={logo} alt="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:

<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.
</Steps>

<Image src={badges} alt="Badges" />

<LinkCard
title="Badges & Status Images"
description="Badges & Status Images application allows to generate badges, charts, and additional graphics for each language in your Crowdin Project."
href="https://store.crowdin.com/bds"
target="_blank"
/>

## Delete Project

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.

<Image src={deleteProject} alt="Delete Project" />

<Aside type="danger">
This action can't be undone.
</Aside>
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Glossaries
slug: glossaries
sidebar:
order: 5
---

import { Image } from 'astro:assets';
import glossarySettings from '!/crowdin/project-management/settings/glossary_settings.png';
import { Aside } from '@astrojs/starlight/components';
import ReadMore from '~/components/ReadMore.astro';

In the **Assigned Glossaries** section, you can assign and manage the glossaries for your project:

<Image src={glossarySettings} alt="Glossaries Settings" />

<ReadMore>
Read more about [Glossary](/glossary/).
</ReadMore>

<Aside type="tip">
To translate glossary terms, it is recommended to use the [Translate Glossary app](https://store.crowdin.com/glossary-translate-app).
</Aside>
Original file line number Diff line number Diff line change
@@ -1,6 +1,119 @@
---
title: Import
slug: project-settings/import
sidebar:
order: 9
---

https://support.crowdin.com/enterprise/duplicated-strings/
import { Aside } from '@astrojs/starlight/components';
import { Image } from 'astro:assets';
import ReadMore from '~/components/ReadMore.astro';
import sourceStrings from '!/crowdin/project-management/settings/source_strings.png';
import wordCount from '!/crowdin/project-management/settings/word_count.png';

## Source Strings

Learn how to optimize your Crowdin project by unifying placeholders, handling duplicate strings, and configuring word counts. These settings will help improve translation consistency and streamline your workflow.

<Image src={sourceStrings} alt="Source Strings" />

### Unify Placeholders

Enable the transformation of the placeholders to the unified format to improve the work with TM suggestions. On export, the placeholders in translations are transformed back to the original format.

If your project contains iOS strings, iOS XLIFF, and Android XML files, you can enable the **Unify placeholders** option, and the system will transform placeholders into a unified look. For example, Crowdin will make the Android string `Hello, %s!`, and the iOS string `Hello, %@!` look in the Editor this way: `Hello, [%s]!`.

This option is beneficial when you work with TM since TM suggestions from iOS strings, iOS XLIFF, and Android XML will be completely interchangeable.

Crowdin will transform the translation placeholders back to the original format on export. This option only applies to iOS strings, iOS XLIFF, and Android XML formats.

### Duplicate Strings

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. Source strings are uploaded to the system in localization files. Each unique source string first uploaded or added (for CSV and other formats supporting [string editing](/strings-management/#string-editing)) in Crowdin is considered a master string. All other strings that are identical to the master string but were uploaded or created later are considered duplicate strings.

#### Duplicate Strings Management

If your project contains duplicated strings, you can choose how the system should treat them using the following options:

* **Show** &ndash; translators will translate each instance (string) separately. Duplicate strings won’t be hidden.
* **Show, but auto-translate them** &ndash; duplicate strings will be automatically translated but remain visible to translators. Once the master string is translated, its translation is automatically shared with all duplicates. Translators can review and re-translate each duplicate with their own translation as needed. If a unique translation is provided for a specific duplicate, it will override the shared translation for that string alone, allowing for precise context-specific translations without affecting the other duplicates. If a translator removes a duplicate's unique translation, it will be automatically translated with a translation from a master string.
* **Show within a version branch (regular detection)** &ndash; duplicates will be hidden only between [version branches](/version-management).
* **Show within a version branch (strict detection)** &ndash; duplicates will be hidden only between version branches.
* **Hide (regular detection)** &ndash; all duplicates will share the same translation.
* **Hide (strict detection)** &ndash; all duplicates will share the same translation.

Regular duplicate detection &ndash; when comparing strings, Crowdin considers only source texts.

Strict duplicate detection &ndash; when comparing strings, Crowdin considers both string identifiers (keys) and source texts.

<Aside type="tip">
If your source files contain strings with apparent identifiers (keys), it's better to use a **strict** version of the Duplicate Strings options. In other cases, feel free to use a **regular** one.
</Aside>

#### Show all duplicates

When this option is selected, all duplicate strings will be visible to translators. Each duplicate will require a separate translation.

💡 **Use case**: works perfectly for projects where the same words might have various meanings depending on the context.

#### Show, but auto-translate duplicates

When this option is selected, all duplicate strings are shown and automatically translated. Once the master string is translated, its translation is automatically shared among all duplicates. This allows translators to review and re-translate duplicate strings if necessary.

💡 **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": "Hello",
"welcome": "Welcome!",
"save1": "Save",
"save2": "Save",
"save3": "Save"
}
```

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. This means that translations are automatically shared from the master string to its duplicates.

Let's consider the following scenarios:

* *Master string is translated first* &ndash; the system immediately propagates the translation of the master string to its duplicates. As a result, all three identical strings (the master string and its two duplicates) are displayed with translations. However, translators can review and re-translate each duplicate with their own translation as needed. If a unique translation is provided for a specific duplicate, it will override the shared translation for that string alone, allowing for precise context-specific translations without affecting the other duplicates. If a translator removes a duplicate's unique translation, it will be automatically translated with a translation from a master string.

* *One of the duplicates is translated first* &ndash; the system does not propagate the translation of the duplicate to the master string or the other duplicate. Consequently, one duplicate string is displayed with a translation, while the master string and the other duplicate remain untranslated.

#### Show within a version branch. Duplicates will be hidden only between version branches

When this option is selected, only the master strings that were originally uploaded to the system will be available for translation. All duplicate strings will automatically get the translations of the original strings and will be hidden in all version branches. This option is available in two versions: regular duplicate detection, strict duplicate detection. 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.

Here are a few things to keep in mind:
- The system always checks the path to the string throughout the branches. 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.
- This option works only for the strings located in the files that have the same 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. Allows translators to work with unique strings in separate branches.

#### Hide all duplicates

When this option is selected, the system spots the duplicate strings in all files. Only the master strings that were originally uploaded are visible and should be translated. The hidden duplicate strings will automatically share the translations from the corresponding master strings. This option is available in two versions: regular duplicate detection, strict duplicate detection. 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.

## Word and character count

You can set the preferred way Crowdin should count words in your project. Specifically, it applies to whether HTML tags should be counted as regular words or not. 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, MIF, DITA.

<Image src={wordCount} alt="Word count" />

* **Auto (default)** &ndash; HTML tags will be counted as regular words or skipped depending on the source file format.
* **Count tags** &ndash; all HTML tags will be counted as regular words.
* **Skip tags** &ndash; all HTML tags won't be counted.

When you change the word count option, only newly uploaded words will be counted according to the new settings. So it's recommended to set the preferred word count settings before uploading source files to the project.

<ReadMore>
More information about Crowdin [Word Counter](/word-counter/).
</ReadMore>
Loading

0 comments on commit ce357b1

Please sign in to comment.