2021-10-17 18:26:00 +02:00
|
|
|
---
|
2021-12-28 12:23:33 +01:00
|
|
|
title: Translation guide
|
2021-10-17 18:26:00 +02:00
|
|
|
---
|
2021-08-25 16:09:31 +02:00
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
FreeSewing is proudly multilingual, and we currently support five languages.
|
2022-01-15 10:38:14 -05:00
|
|
|
For this, we rely on the work of our translators who volunteer their
|
2021-12-28 12:23:33 +01:00
|
|
|
time to translate FreeSewing into various languages from English, which
|
2022-02-19 08:04:25 +01:00
|
|
|
is our source language.
|
2021-12-28 12:23:33 +01:00
|
|
|
|
|
|
|
This translation guide will tell you everything you need to
|
|
|
|
know to join the effort as a translator for FreeSewing.
|
|
|
|
|
|
|
|
<Tip>
|
|
|
|
|
|
|
|
##### TL;DR: Becoming a FreeSewing translator
|
|
|
|
|
2022-02-19 08:04:25 +01:00
|
|
|
Our translation project on Crowdin is accessible
|
2021-12-28 12:23:33 +01:00
|
|
|
via [translate.freesewing.org](https://translate.freesewing.org).
|
|
|
|
|
|
|
|
To get started, you will need to be invited as a translator. No need to worry,
|
|
|
|
simply [let us know you'd like to help out](https://discord.freesewing.org/) and we'll add you.
|
|
|
|
|
|
|
|
For access to Strapi, you will need an account on [our Strapi instance](https://posts.freesewing.org/).
|
|
|
|
Here too, [Discord is the place to let us know you'd like to help out](https://discord.freesewing.org/).
|
|
|
|
|
|
|
|
Bonus: You'll get an `@freesewing.org` email alias
|
|
|
|
|
|
|
|
</Tip>
|
|
|
|
|
|
|
|
## Languages
|
2021-08-25 16:09:31 +02:00
|
|
|
|
2021-08-26 11:51:47 +02:00
|
|
|
We currently support the following five languages:
|
2021-08-25 16:09:31 +02:00
|
|
|
|
2022-02-20 14:44:38 +01:00
|
|
|
- **en** : English
|
|
|
|
- **de** : German
|
|
|
|
- **es** : Spanish
|
|
|
|
- **fr** : French
|
|
|
|
- **nl** : Dutch
|
2021-08-25 16:09:31 +02:00
|
|
|
|
2021-08-26 11:51:47 +02:00
|
|
|
<Note>
|
|
|
|
|
|
|
|
If you'd like to start working on a new language, that's great, but a bit
|
2021-12-28 12:23:33 +01:00
|
|
|
beyond the scope of this documentation. Before you start working on a new language
|
2021-08-26 11:51:47 +02:00
|
|
|
please [come and talk to us on Discord](https://discord.freesewing.org).
|
|
|
|
|
|
|
|
</Note>
|
|
|
|
|
2021-12-28 12:23:33 +01:00
|
|
|
## Translation in Crowdin vs Strapi
|
2021-08-26 11:51:47 +02:00
|
|
|
|
2021-12-28 12:23:33 +01:00
|
|
|
We use two different tools to manage our translations, depending on the context:
|
2021-08-26 11:51:47 +02:00
|
|
|
|
2022-02-20 14:44:38 +01:00
|
|
|
- Markdown content and code strings in our monorepo are translated within **Crowdin**
|
|
|
|
- Blog and showcase posts are translated within **Strapi**
|
2021-08-26 11:51:47 +02:00
|
|
|
|
|
|
|
<Tip>
|
|
|
|
|
2021-12-28 12:23:33 +01:00
|
|
|
##### Translation priorities
|
2021-08-26 11:51:47 +02:00
|
|
|
|
2021-12-28 12:23:33 +01:00
|
|
|
If you'd like to help out, please join our translation team on Crowdin.
|
2021-08-26 11:51:47 +02:00
|
|
|
|
2022-02-19 08:04:25 +01:00
|
|
|
While it can be nice to have blog and showcase posts translated, these are less important than the
|
2021-12-28 12:23:33 +01:00
|
|
|
translation work in Crowdin which is about the documentation and strings that allow people to
|
2022-12-25 20:58:40 -08:00
|
|
|
use FreeSewing in a different language.
|
2021-08-26 11:51:47 +02:00
|
|
|
|
|
|
|
</Tip>
|
|
|
|
|
2021-12-28 12:23:33 +01:00
|
|
|
### Crowdin
|
|
|
|
|
2022-01-15 10:38:14 -05:00
|
|
|
Most translation happens in Crowdin ([crowdin.com](https://crowdin.com/)), an online translation platform
|
2021-12-28 12:23:33 +01:00
|
|
|
that makes translation and collaboration a breeze.
|
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
In Crowdin, all text is broken up into lines, words, or paragraphs that are then translated.
|
|
|
|
This not only facilitates collaboration — as rather than work on one large block of text,
|
|
|
|
various people can jump in and translate smaller snippets — it also enforces a strict one-to-one
|
2021-12-28 12:23:33 +01:00
|
|
|
match between the English source material and the translation.
|
|
|
|
|
|
|
|
This strict correlation is important. People who refer to the documentation in a different language
|
2022-12-25 20:58:40 -08:00
|
|
|
expect to find the same structure, the same amount of headings, paragraphs, and so on.
|
2021-12-28 12:23:33 +01:00
|
|
|
|
|
|
|
### Strapi
|
|
|
|
|
2022-02-20 14:35:50 +01:00
|
|
|
Strapi ([strapi.io](https://strapi.io/)) is a so-called _headless content management system (CMS)_.
|
2022-12-25 20:58:40 -08:00
|
|
|
"_Headless_" just means that we load the content from it via an API, rather than have it be part of our
|
2021-12-28 12:23:33 +01:00
|
|
|
website like a classic CMS (eg. Wordpress).
|
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
In Strapi, we keep our blog posts and showcases for freesewing.org.
|
|
|
|
We also keep our newsletter editions and developer blog posts for freesewing.dev there, but since
|
2021-12-28 12:23:33 +01:00
|
|
|
those are not translated, we will ignore them in this guide.
|
|
|
|
|
|
|
|
Strapi supports different language versions for posts, but it's not a translation system like Crowdin
|
|
|
|
that breaks text down into small parts to translate.
|
2022-12-25 20:58:40 -08:00
|
|
|
Instead, each post can be translated as a whole, and there is no enforcement whatsoever of structure or
|
|
|
|
content between the versions for different language.
|
2021-12-28 12:23:33 +01:00
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
In other words, a translated blog post could use a different structure or even different images.
|
2021-12-28 12:23:33 +01:00
|
|
|
This is by design, because we want to encourage the different (non-English) FreeSewing communities
|
|
|
|
to make FreeSewing their own, by writing blog posts that are relevant or specific to them.
|
|
|
|
|
|
|
|
This also means that English does not have to be the source language in Strapi.
|
|
|
|
Somebody could write a French blog post (for example) which can then be translated to English.
|
|
|
|
|
2021-08-26 11:51:47 +02:00
|
|
|
## Syntax
|
|
|
|
|
|
|
|
Most strings are just text, but sometimes you'll find a little markup sprinkled in.
|
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
### HTML formatting
|
2021-08-26 11:51:47 +02:00
|
|
|
|
|
|
|
When you encounter HTML tags, simply translate around them. For example:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
<b>No</b>, never.
|
|
|
|
```
|
|
|
|
|
|
|
|
looks like this in Spanish:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
<b>No</b>, nunca.
|
|
|
|
```
|
|
|
|
|
2022-12-25 20:58:40 -08:00
|
|
|
### Placeholders
|
2021-08-26 11:51:47 +02:00
|
|
|
|
|
|
|
When you encounter a `{key}` between curly braces, leave it as-is.
|
|
|
|
These will be filled in later with the correct value. For example:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
{field} saved
|
|
|
|
```
|
|
|
|
|
|
|
|
looks like this in Spanish
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
{field} guardado
|
|
|
|
```
|