Skip to content

Commit

Permalink
add localization program guideline
Browse files Browse the repository at this point in the history
  • Loading branch information
sansx committed May 22, 2024
1 parent b05a7d7 commit a42b47a
Show file tree
Hide file tree
Showing 13 changed files with 132 additions and 2 deletions.
2 changes: 1 addition & 1 deletion LangPath.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"en":["/book/cs/_meta.en.json","/book/cs/from-func.en.mdx","/book/cs/from-solidity.en.mdx","/book/guides/getting-started/_meta.en.json","/book/guides/getting-started/deploy.en.mdx","/book/guides/getting-started/first.en.mdx","/book/guides/getting-started/test.en.mdx","/book/guides/_meta.en.json","/book/guides/getting-started.en.mdx","/book/_meta.en.json","/book/bounced.en.mdx","/book/config.en.mdx","/book/constants.en.mdx","/book/cookbook.en.mdx","/book/debug.en.mdx","/book/defining-types.en.mdx","/book/deploy.en.mdx","/book/external.en.mdx","/book/func.en.mdx","/book/functions.en.mdx","/book/import.en.mdx","/book/index.en.mdx","/book/lifecycle.en.mdx","/book/masterchain.en.mdx","/book/message-mode.en.mdx","/book/programmatic.en.mdx","/book/receive.en.mdx","/book/send.en.mdx","/book/statements.en.mdx","/book/types.en.mdx","/book/upgrades.en.mdx","/ecosystem/tools/_meta.en.json","/ecosystem/tools/jetbrains.en.mdx","/ecosystem/tools/overview.en.mdx","/ecosystem/tools/typescript.en.mdx","/ecosystem/tools/vscode.en.mdx","/ecosystem/_meta.en.json","/ecosystem/index.en.mdx","/language/evolution/OTP-001.en.mdx","/language/evolution/OTP-002.en.mdx","/language/evolution/OTP-003.en.mdx","/language/evolution/OTP-004.en.mdx","/language/evolution/OTP-005.en.mdx","/language/evolution/OTP-006.en.mdx","/language/evolution/_meta.en.json","/language/evolution/overview.en.mdx","/language/libs/_meta.en.json","/language/libs/config.en.mdx","/language/libs/content.en.mdx","/language/libs/deploy.en.mdx","/language/libs/dns.en.mdx","/language/libs/overview.en.mdx","/language/libs/ownable.en.mdx","/language/libs/stoppable.en.mdx","/language/ref/_meta.en.json","/language/ref/advanced.en.mdx","/language/ref/cells.en.mdx","/language/ref/common.en.mdx","/language/ref/exit-codes.en.mdx","/language/ref/math.en.mdx","/language/ref/random.en.mdx","/language/ref/strings.en.mdx","/language/_meta.en.json","/language/index.en.mdx","/language/spec.en.mdx","/_meta.en.json","/index.en.mdx"],"zh-CN":["/book/_meta.zh-CN.json","/book/index.zh-CN.mdx","/_meta.zh-CN.js","/index.zh-CN.mdx"],"ru":["/index.ru.mdx"],"ko":[],"pl":[],"uk":[]}
{"en":["/book/cs/_meta.en.json","/book/cs/from-func.en.mdx","/book/cs/from-solidity.en.mdx","/book/guides/getting-started/_meta.en.json","/book/guides/getting-started/deploy.en.mdx","/book/guides/getting-started/first.en.mdx","/book/guides/getting-started/test.en.mdx","/book/guides/_meta.en.json","/book/guides/getting-started.en.mdx","/book/_meta.en.json","/book/bounced.en.mdx","/book/config.en.mdx","/book/constants.en.mdx","/book/cookbook.en.mdx","/book/debug.en.mdx","/book/defining-types.en.mdx","/book/deploy.en.mdx","/book/external.en.mdx","/book/func.en.mdx","/book/functions.en.mdx","/book/import.en.mdx","/book/index.en.mdx","/book/lifecycle.en.mdx","/book/masterchain.en.mdx","/book/message-mode.en.mdx","/book/programmatic.en.mdx","/book/receive.en.mdx","/book/send.en.mdx","/book/statements.en.mdx","/book/types.en.mdx","/book/upgrades.en.mdx","/ecosystem/tools/_meta.en.json","/ecosystem/tools/jetbrains.en.mdx","/ecosystem/tools/overview.en.mdx","/ecosystem/tools/typescript.en.mdx","/ecosystem/tools/vscode.en.mdx","/ecosystem/_meta.en.json","/ecosystem/index.en.mdx","/language/evolution/OTP-001.en.mdx","/language/evolution/OTP-002.en.mdx","/language/evolution/OTP-003.en.mdx","/language/evolution/OTP-004.en.mdx","/language/evolution/OTP-005.en.mdx","/language/evolution/OTP-006.en.mdx","/language/evolution/_meta.en.json","/language/evolution/overview.en.mdx","/language/libs/_meta.en.json","/language/libs/config.en.mdx","/language/libs/content.en.mdx","/language/libs/deploy.en.mdx","/language/libs/dns.en.mdx","/language/libs/overview.en.mdx","/language/libs/ownable.en.mdx","/language/libs/stoppable.en.mdx","/language/ref/_meta.en.json","/language/ref/advanced.en.mdx","/language/ref/cells.en.mdx","/language/ref/common.en.mdx","/language/ref/exit-codes.en.mdx","/language/ref/math.en.mdx","/language/ref/random.en.mdx","/language/ref/strings.en.mdx","/language/_meta.en.json","/language/index.en.mdx","/language/spec.en.mdx","/_meta.en.json","/index.en.mdx","/localization-program-guideline.en.mdx"],"zh-CN":["/book/_meta.zh-CN.json","/book/index.zh-CN.mdx","/_meta.zh-CN.js","/index.zh-CN.mdx"],"ru":["/index.ru.mdx"],"ko":[],"pl":[],"uk":[]}
8 changes: 8 additions & 0 deletions pages/_meta.en.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
"typesetting": "article"
}
},
"localization-program-guideline": {
"title": "localization program guideline",
"type": "page",
"display": "hidden",
"theme": {
"typesetting": "article"
}
},
"book": {
"title": "Book",
"type": "page"
Expand Down
122 changes: 122 additions & 0 deletions pages/localization-program-guideline.en.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Localization Program Guideline

import { Callout } from "nextra/components";

In the process of **letting TON become the most successful Blockchain**, how to let Tact docs be more understandable to people around the world is also an important issue to resolve, that's why we need localization, and we're **glad** you're here ready to participate in.

<br />

<Callout emoji="💡">
**TON X TownSquare localization program**

This system **TON X TownSquare localization program** was designed by :
[**TownSquare**](https://github.com/TownSquareXYZ) one of the closest partners of **TON**.

We commit ourselves to making an open infrastructure for multilingual community collaboration to **make TON get into a better phrase**, which includes:

1. **Suitable for multilingual communities**
2. **Automate development, integration, and deployment**
3. **Decoupling the roles of developer, translator, and verifier**
4. **Community contribution incentive**

**...**

It's not just some project for only one language user, our goal is **for the global developer ecosystem**.

</Callout>

## Roles

Here are the **roles** you can be in the system :

- **Proofreader**
- **Translator** ( in-house or community )

Next, we'll have some specific guides about roles you wanna get into.

Our localization project is running on [Crowdin](https://crowdin.com/project/tact-docs).

<Callout type="error" emoji="️🚫">
**IMPORTANT**

Before you start contributing, **read the guidelines below**! They will help you ensure the level of standardization and quality that will make the review process much faster.

## side-by-side mode

All these works are based on **side-by-side** mode in Crowdin Editor, if you don't know how to get into this, click a file you wanna start work, on the top right of the page, you can see Editor view button, we choose **side-by-side** mode, which will make editor more clear. 
![side-by-side mode](public/localizationProgramGuideline/side-by-side.png)

</Callout>

### Proofreader

As a **Proofreader**, the files that have a **blue progress bar** are you gonna work in.
![proofread step1](public/localizationProgramGuideline/proofread-step1.png)
Click one of the files, you'll get into an editing interface.

#### Let's start contribute.

1. First of all, we should make your workspace more suitable for work:

Make sure you're in [**side by side mode**](#side-by-side-mode), then let's find out which lines of translations need to be proofread, you can see there is a **filter** button on the **right** of Search in file input, let's choose **Not Approved** option.
![proofread filter](public/localizationProgramGuideline/proofread-filter.png)

2. Great, we're ready to start work now, here are the rules you should follow:
- select a string that has a **blue cube icon** on left, which means it's translated but hasn't been proofread, check it carefully:
- if it's all **right**, click the ☑️ button on top.
- if it's **not right**, just ignore it, go to the next line.

![proofread approved](public/localizationProgramGuideline/proofread-approved.png)

<Callout type="info" emoji="ℹ️">
**You also have the right to check lines which already been proofread**:

1. set a filter option to **Approved**.
2. if there is an approved line that still has issues, you can **click the same ☑️ button** on top, to set this line's state back to need proofreading.
</Callout>

<br />

3. Well done! if you wanna go to the next file in editor mode, just **click the file name** on the top, you can see a pop-up window, click the file name you will be transported to that file, and continue your proofread travel.
![to next](public/localizationProgramGuideline/redirect-to-next.png)

#### We also provide you with a great function:

You can **see the fruits of your labor in time**. Every content approved by proofreaders will be deployed in a preview website in one hour. Check [**our repo**](https://github.com/TownSquareXYZ/tact-docs/pulls), you'll find **preview** link in newest pr.
![preview link](public/localizationProgramGuideline/preview-link.png)

### Translator

The **translator** decides what readers can see in this doc, so make sure to translate docs faithfulness and expressiveness, in another way, **make your translation close to the original meaning and also as simple and understandable as possible**.

Our mission is to make the **blue progress bar** of the file reach 100%.

#### Let's start translate.

Don't be stressed about this, you can ask for help from **AI** and **other translators**, follow these guides to help you do better:

Click files that haven't been 100% translated.
![translator select](public/localizationProgramGuideline/translator-select.png)

Again, after you get into the editor, make sure you're in [**side by side mode**](#side-by-side-mode):

1. To list lines that need to be translated. you can see there is a **filter** button on the right of Search in file input, let's choose **Untranslated**.
![translator filter](public/localizationProgramGuideline/translator-filter.png)

2. You can see the whole page has been separated to four-part:

- The **top left** one is where you **input your translation**. According to Source string, you should input the correct translation to its right input.
- The **bottom left** one is the preview of the translated file. Make sure to **keep the translated format** as same as the original one, this is also **important**.
- The **bottom right** one are the **suggestion translations** from crowdin. If there is a right translation in there, you can just click that translate, and crowdin will input that into the target translation.

<Callout emoji="💡">
**Notice**

it's convenient, but be aware, they are **not always right**, so be careful when you use this function, especially when the Source string include a link or some other path, **don't let suggest translations change the links**.
</Callout>

3. Once you think your translation is done or wanna take a break, **click Save button** on the top, your current translation will update to the project, waiting for proofreading.
![translator save](public/localizationProgramGuideline/translator-save.png)

4. Congrats, now you know how to work like a translator, if you wanna go to the next file in the editor, just **click the file name** on the top, and it will have a pop-up window, click the file name you will be transported to that file, enjoy it!
![to next](public/localizationProgramGuideline/redirect-to-next.png)
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 theme.config.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ const config = {
locale: "HelpTranslate",
text: (
<a
href="/language"
href="/localization-program-guideline"
onClick={(e) => {
e.stopPropagation();
}}
Expand Down

0 comments on commit a42b47a

Please sign in to comment.