diff --git a/docs/i18n/japanese/codebase-best-practices.md b/docs/i18n/japanese/codebase-best-practices.md index 80481a0a35..963b2de947 100644 --- a/docs/i18n/japanese/codebase-best-practices.md +++ b/docs/i18n/japanese/codebase-best-practices.md @@ -1,34 +1,34 @@ -# Codebase Best Practices +# コードベースのベストプラクティス -## General JavaScript +## 一般的な JavaScript -In most cases, our [linter](how-to-setup-freecodecamp-locally.md#follow-these-steps-to-get-your-development-environment-ready) will warn of any formatting which goes against this codebase's preferred practice. +ほとんどの場合、[リンター](how-to-setup-freecodecamp-locally.md#follow-these-steps-to-get-your-development-environment-ready) は、コードベースの好ましいプラクティスに反するフォーマットを警告します。 -It is encouraged to use functional components over class-based components. +クラスベースのコンポーネントに機能コンポーネントを使用することを推奨します。 -## Specific TypeScript +## 特定の TypeScript -### Migrating a JavaScript File to TypeScript +### JavaScript ファイルを TypeScript に移行する -#### Retaining Git File History +#### Git のファイル履歴を保持する -Sometimes changing the file from `.js` to `.ts` (or `.tsx`) causes the original file to be deleted, and a new one created, and other times the filename just changes - in terms of Git. Ideally, we want the file history to be preserved. +ファイル形式を `.js` から `.ts` (もしくは `.tsx`) へ変更すると、元のファイルが削除され新しいファイルが作成される場合があります。それ以外の場合は、Git においてファイル名が変更されます。 ファイルの履歴を保存できるのが理想です。 -The best bet at achieving this is to: +そのための最善策は次のとおりです。 -1. Rename the file -2. Commit with the flag `--no-verify` to prevent Husky from complaining about the lint errors -3. Refactor to TypeScript for migration, in a separate commit +1. ファイル名を変更する +2. フラグ `--no-verify` でコミットして、Husky がリントエラーについて不平を言うことを防ぐ +3. 別のコミットで、移行のために TypeScript にリファクタリングする -> [!NOTE] Editors like VSCode are still likely to show you the file has been deleted and a new one created. If you use the CLI to `git add .`, then VSCode will show the file as renamed in stage +> [!NOTE] VScode 等のエディターは、ファイルが削除され新しいファイルが作成されたと表示する可能性があります。 `git add .` に CLI を使用すると、VSCode はファイル名が変更されたものとしてステージに表示します。 -### Naming Conventions +### 命名規則 -#### Interfaces and Types +#### インターフェースと型 -For the most part, it is encouraged to use interface declarations over type declarations. +ほとんどの場合、型宣言にインターフェース宣言を使用することを推奨します。 -React Component Props - suffix with `Props` +React コンポーネントプロパティ - サフィックスは `Props` ```typescript interface MyComponentProps {} @@ -36,7 +36,7 @@ interface MyComponentProps {} const MyComponent = (props: MyComponentProps) => {}; ``` -React Stateful Components - suffix with `State` +React ステートフルコンポーネント - サフィックスは `State` ```typescript interface MyComponentState {} @@ -44,7 +44,7 @@ interface MyComponentState {} class MyComponent extends Component {} ``` -Default - object name in PascalCase +デフォルト - PascalCase 内のオブジェクト名 ```typescript interface MyObject {} @@ -58,7 +58,7 @@ const myObject: MyObject = {}; ## Redux -### Action Definitions +### Action 定義 ```typescript enum AppActionTypes = { @@ -73,7 +73,7 @@ export const actionFunction = ( }); ``` -### How to Reduce +### Reduce の方法 ```typescript // Base reducer action without payload @@ -100,9 +100,9 @@ export const reducer = ( }; ``` -### How to Dispatch +### Dispatch の方法 -Within a component, import the actions and selectors needed. +コンポーネント内で、必要なアクションとセレクターをインポートします。 ```tsx // Add type definition @@ -128,7 +128,7 @@ export default connect(null, mapDispatchToProps)(MyComponent); -## Further Literature +## その他資料 -- [TypeScript Docs](https://www.typescriptlang.org/docs/) -- [TypeScript with React CheatSheet](https://github.com/typescript-cheatsheets/react#readme) +- [TypeScript ドキュメント](https://www.typescriptlang.org/docs/) +- [React CheatSheet 付き TypeScript](https://github.com/typescript-cheatsheets/react#readme) diff --git a/docs/i18n/japanese/curriculum-file-structure.md b/docs/i18n/japanese/curriculum-file-structure.md index cb3f4d32a0..3c6faa6dd4 100644 --- a/docs/i18n/japanese/curriculum-file-structure.md +++ b/docs/i18n/japanese/curriculum-file-structure.md @@ -1,10 +1,10 @@ -# Curriculum File Structure +# カリキュラムファイルの構造 -Our core instructional content is located within the conveniently named `curriculum` directory. This page will break down how these files are organized. +名前が付けられた `curriculum` ディレクトリ内に、コア教育コンテンツがあります。 このページでは、それらのファイルがどのように整理されているのかを説明します。 -## Terminology +## 用語 -There are a few terms we use when discussing our curriculum content. +カリキュラム内容を説明する際に使用する用語がいくつかあります。 - `certification` : When referring to a certification in this instance, it is talking about the actual certificate that users claim. Which is separate from the name of the superBlock. - `superBlock` : A superblock is the top level collection of challenges. Each superblock corresponds to a certification in the curriculum (i.e. Responsive Web Design). diff --git a/docs/i18n/portuguese/how-to-translate-files.md b/docs/i18n/portuguese/how-to-translate-files.md index 31ce024d97..78bc897753 100644 --- a/docs/i18n/portuguese/how-to-translate-files.md +++ b/docs/i18n/portuguese/how-to-translate-files.md @@ -117,103 +117,103 @@ Traduzir nossa documentação de contribuição é similar a traduzir nossos arq > [!NOTE] Nossa documentação de contribuição utiliza o `docsify`. Nós temos uma análise especial para caixas de mensagem como essa. Caso veja strings iniciadas com `[!NOTE]`, `[!WARNING]`, ou `[!TIP]`, essas palavras NÃO devem ser traduzidas. -## Translate the LearnToCode RPG +## Traduzir o RPG LearnToCode -The LearnToCode RPG runs on Ren'Py, which uses special syntax for translated strings: (See [Ren'Py Text documentation](https://www.renpy.org/doc/html/text.html)) +O RPG LearnToCode é executado no Ren'Py, que usa uma sintaxe especial para strings traduzidas: (Consulte a [documentação sobre textos do Ren'Py](https://www.renpy.org/doc/html/text.html)) -- The sentences to be translated are always between `""`. These are dialogues or UI strings. The keywords that come before or after the dialogue are game engine control keywords and will be explained in details in subsequent rules. Please note that this first rule governs all subsequent rules listed. -- In case of `new "..."` Do not translate the `new` keyword. -- Prefixes like `player`, `annika`, `layla`, `marco` (or variants like `player happy`, `player @ happy`) should not be translated. These are control keywords to correctly display the character sprite in the game. -- Postfixes like `nointeract` should not be translated. -- Do not translate things between `[]` and `{}`. These are variable interpolations and text tags. These must remain halfwidth parentheses `[]` and `{}` instead of their fullwidth counterparts `【】` and `「」` -- Do not translate the `nointeract` keyword at the end of the sentence. -- If we try to use fullwidth parentheses `()`, a QA warning will show. To avoid the QA warning, use halfwidth parentheses `()` +- As frases a serem traduzidas estarão sempre entre `""`. Elas são diálogos ou strings da UI. As palavras-chave que vêm antes ou depois do diálogo são palavras-chave de controle do mecanismo do jogo e serão explicadas em detalhes nas regras subsequentes. Observe que esta primeira regra rege todas as regras subsequentes listadas. +- No caso de `new "..."`, não traduza a palavra-chave `new`. +- Prefixos como `player`, `annika`, `layla`, `marco` (ou variantes como `player happy`, `player @ happy`) não devem ser traduzidos. Eles são palavras-chave de controle para exibir corretamente a imagem do personagem no jogo. +- Textos após as aspas do diálogo, como `nointeract`, não devem ser traduzidos. +- Não traduza o que estiver entre `[]` e `{}`. Estas são interpolações de variáveis e tags de texto. Estes parênteses devem permanecer com metade da largura `[]` e `{}` em vez de seus equivalentes de largura total `【】` e `「」` +- Não traduza a palavra-chave `nointeract` ao final da frase. +- Se tentarmos usar parênteses de largura total `()`, receberemos um aviso de controle de qualidade (QA). Para evitar o aviso de QA, use parênteses com metade da largura `()` -### Examples +### Exemplos --- -#### Before translation +#### Antes da tradução ```renpy # "[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." -"[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." <--- this is the line that needs to be translated. see translation below +"[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." <--- esta é a linha que precisa ser traduzida. veja a tradução abaixo ``` -#### After translation +#### Após a tradução ```renpy # "[player_name]? What a coincidence! Our VIP team member {a=[vip_profile_url]}[player_name]{/a} will be honored to hear that." -"[player_name]?好巧,我们的VIP队友{a=[vip_profile_url]}[player_name]{/a}会很高兴的。" +"[player_name]?Que coincidência! Nosso membro VIP da equipe, {a=[vip_profile_url]}[player_name]{/a} ficará honrado ao saber disso." ``` -Note: The `[]` and `{}` tags should be left intact. +Observação: as tags `[]` e `{}` devem permanecer intactas. --- -#### Before translation +#### Antes da tradução ```renpy old "{icon=icon-fast-forward} Skip" -new "{icon=icon-fast-forward} Skip" <-- translate this line, see below +new "{icon=icon-fast-forward} Skip" <-- traduza essa linha, ver abaixo ``` -#### After translation +#### Após a tradução ```renpy old "{icon=icon-fast-forward} Skip" -new "{icon=icon-fast-forward} 跳过" +new "{icon=icon-fast-forward} Avançar" ``` -Note: Again, the `new` prefix and the `{icon=icon-fast-forward}` tag should be left intact. +Observação: novamente, o prefixo `new` e a tag `{icon=icon-fast-forward}` devem ser mantidos intactos. --- -#### Before translation +#### Antes da tradução ```renpy # layla @ neutral "Hehe, [player_name], you are a fun one. I'm sure you will enjoy your work as a developer." layla @ neutral "Hehe, [player_name], you are a fun one. I'm sure you will enjoy your work as a developer." ``` -#### After translation +#### Após a tradução ```renpy # layla @ neutral "Hehe, [player_name], you are a fun one. I'm sure you will enjoy your work as a developer." -layla @ neutral "哈哈,[player_name],你真有趣。我相信你一定会喜欢你的开发者工作的。" +layla @ neutral "Ha ha, [player_name], é divertido falar com você. Tenho certeza de que você vai gostar de trabalhar em desenvolvimento." ``` -Note: `layla @ neutral` and `[player_name]` are left unchanged. +Observação: `layla @ neutral` e `[player_name]` permanecem inalterados. --- -#### Before translation +#### Antes da tradução ```renpy # player "Maybe this is all a dream?" nointeract player "Maybe this is all a dream?" nointeract ``` -#### After translation +#### Após a tradução ```renpy # player "Maybe this is all a dream?" nointeract -player "也许这都是一场梦?" nointeract +player "Será que isso tudo é um sonho?" nointeract ``` --- -### A Note on How Crowdin Segments a Sentence +### Uma observação sobre o modo como o Crowdin segmenta uma frase -Pay attention to how Crowdin segments a line of dialogue wrapped between opening and closing quotes `""`. When we are translating the dialogue, we need to make sure to retain the opening and closing quotes, even if the quotes appear in different segments. +Preste atenção na maneira como o Crowdin segmenta uma linha de diálogo envolvida por aspas de abertura e fechamento `""`. Quando traduzirmos o diálogo, temos de manter as aspas de abertura e fechamento, mesmo que as aspas apareçam em diferentes segmentos. -This is the line to be translated: +Esta é a linha que precisa ser traduzida: ```renpy player @ surprised "{b}Full-stack{/b}... What is that? I better take notes so I can learn more about it." ``` -Crowdin segments it into three parts like below: +O Crowdin segmenta a string em três partes, como vemos abaixo: Screen Shot 2022-01-23 at 10 36 43 @@ -221,7 +221,7 @@ Crowdin segments it into three parts like below: # original player @ surprised "{b}Full-stack{/b} # translated, keeping the opening quotes `"` -player @ surprised "{b}全栈{/b} +player @ surprised "{b}Full-stack{/b} ``` Screen Shot 2022-01-23 at 10 36 49 @@ -229,8 +229,8 @@ player @ surprised "{b}全栈{/b} ```renpy # original What is that? -# translated, no quotes on either side -这是什么? +# tradução, sem aspas dos dois lados +O que é isso? ``` Screen Shot 2022-01-23 at 10 36 54 @@ -238,36 +238,36 @@ What is that? ```renpy # original I better take notes so I can learn more about it." -# translated, keeping the closing quotes `"` -我最好做笔记,这样我可以学习更多东西。" +# traduzido, mantendo as aspas de fechamento `"` +É melhor eu anotar para saber mais a respeito." ``` -## Rate Translations +## Avaliar as traduções -Crowdin allows you to rate the existing proposed translations. If you attempt to save a translation, you may see a message indicating that you cannot save a duplicate translation - this means another contributor has proposed that identical translation. If you agree with that translation, click the `+` button to "upvote" the translation. +O Crowdin permite que você avalie propostas de tradução existentes. Se você tentar salvar uma tradução, você pode ver uma mensagem indicando que você não pode salvar a duplicata de uma tradução - isso significa que outro contribuinte já propôs uma tradução idêntica. Se você concorda com aquela tradução, clique em `+` para "aprová-la". -If you see a translation that is inaccurate or does not provide the same clarity as the original string, click the `-` button to "downvote" the translation. +Se você ver uma tradução que não possui a mesma clareza da string original, clique em `-` para "desaprová-la". -Crowdin uses these votes to give a score to each proposed translation for a string, which helps the proofreading team determine which translation is the best fit for each string. +O Crowdin usa esses votos para pontuar cada proposta de tradução de cada string, o que ajuda o time de revisão a determinar qual tradução é a melhor para cada string. -## Quality Assurance Checks +## Verificações de qualidade -We have enabled some quality assurance steps that will verify a translation is as accurate as possible - this helps our proofreaders review proposed translations. +Nós disponibilizamos algumas verificações de qualidade para assegurar que as traduções estejam precisas - isso ajuda nossos revisores a analisarem as traduções propostas. -When you attempt to save a translation, you may see a warning message appear with a notification regarding your proposed translation. +Quando você tenta salvar uma tradução, talvez veja uma mensagem de aviso aparecer a respeito da sua tradução proposta. -![Image - QA Warning Message](https://contribute.freecodecamp.org/images/crowdin/qa-message.png) +![Imagem - Mensagem de aviso de QA](https://contribute.freecodecamp.org/images/crowdin/qa-message.png) -This message appears when Crowdin's QA system has identified a potential error in the proposed translation. In this example, we have modified the text of a `` tag and Crowdin has caught that. +Essa mensagem aparece quando o sistema QA (Verificação de Qualidade) do Crowdin identificou algum erro em potencial na tradução proposta. Nesse exemplo, nós modificamos o texto da tag `` e o sistema viu isto. > [!WARNING] Você tem a opção de salvar uma tradução apesar dos erros. Se fizer isso, clicando em "Save Anyway", você também deve marcar um revisor ou gerenciador do projeto e explicar o motivo do aviso ter sido ignorado nesse caso. -## Translation Best Practices +## Boas práticas na tradução -Follow these guidelines to ensure our translations are as accurate as possible: +Siga essas diretrizes para se certificar de que nossas traduções estão o mais precisas possível: -- Do not translate the content within `` tags. These tags indicate text that is found in code and should be left in English. -- Do not add additional content. If you feel a challenge requires changes in the text content or additional information, you should propose the changes through a GitHub issue or a pull request that modifies the English file. -- Do not change the order of content. +- Não traduza o conteúdo dentro de tags ``. Essas tags indicam que o texto está formatado para o código e deve ser deixado em inglês. +- Não adicione conteúdo extra. Se você acha que um desafio necessita de mudanças no texto e conteúdo adicional, você deve propor as mudanças através de uma issue no GitHub ou um pull request que modifique o arquivo em inglês. +- Não mude a ordem do conteúdo. -If you have any questions, feel free to reach out to us in our [contributors chat room](https://chat.freecodecamp.org/channel/contributors) and we will be happy to assist you. +Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato conosco através da [sala de chat dos tradutores](https://chat.freecodecamp.org/channel/contributors) e nós ficaremos felizes em ajudar você.