Files
hello-algo/ja/CONTRIBUTING.md
Ikko Eltociear Ashimine 954c45864b docs: add Japanese translate documents (#1812)
* docs: add Japanese documents (`ja/docs`)

* docs: add Japanese documents (`ja/codes`)

* docs: add Japanese documents

* Remove pythontutor blocks in ja/

* Add an empty at the end of each markdown file.

* Add the missing figures (use the English version temporarily).

* Add index.md for Japanese version.

* Add index.html for Japanese version.

* Add missing index.assets

* Fix backtracking_algorithm.md for Japanese version.

* Add avatar_eltociear.jpg. Fix image links on the Japanese landing page.

* Add the Japanese banner.

---------

Co-authored-by: krahets <krahets@163.com>
2025-10-17 05:04:43 +08:00

134 lines
7.3 KiB
Markdown

# 中国語から日本語への貢献ガイドライン
「Hello アルゴリズム」を中国語から日本語に翻訳するにあたり、以下のアプローチを採用しています:
1. **AI翻訳**: 大規模言語モデルを使用して初期翻訳を実施します。
2. **人による最適化**: 機械生成された出力を手動で改良し、正確性と自然さを確保します。
3. **プルリクエストレビュー**: 最適化された翻訳は、GitHubのプルリクエストワークフローを通じてレビュアーによって二重チェックされます。
4. さらなる改善のため、ステップ `2.``3.` を繰り返します。
<img width="650" alt="translation_pipeline" src="https://github.com/user-attachments/assets/201930ef-723e-4179-b670-e5a084a8211e">
## 参加方法
以下の基準を満たす貢献者を求めています:
- **技術的背景**: コンピュータサイエンス、特にデータ構造とアルゴリズムに関する強固な基礎知識
- **言語スキル**: 日本語ネイティブまたは日本語に精通した方、中国語の読解力
- **利用可能な時間**: オープンソースプロジェクトへの貢献に専念し、長期的な翻訳作業に参加する意欲
つまり、私たちの貢献者は、さまざまな言語背景を持つコンピュータサイエンティスト、エンジニア、学生であり、それぞれの目的には異なる焦点があります:
- **中国語読解力を持つ日本語ネイティブ**: 中国語版と日本語版の間の翻訳の正確性と一貫性を確保する
- **日本語に精通した中国語話者**: 日本語コンテンツの自然さと流暢さを向上させ、自然で読みやすいものにする
> [!note]
> 参加にご興味がある方は、お気軽に krahetx@gmail.com またはWeChat `krahets-jyd` までご連絡ください。
>
> 進捗管理とタスク割り当てには、この[Notionページ](https://hello-algo.notion.site/chinese-to-english)を使用しています。詳細はこちらをご覧ください。
## 翻訳プロセス
> [!important]
> 作業を開始する前に、GitHubのプルリクエストワークフローに慣れ、以下の「翻訳基準」と「翻訳のための疑似コード」を必ずお読みください。
1. **タスク割り当て**: Notionワークスペースでタスクを自己割り当てします。
2. **翻訳**: ローカルPCで翻訳を最適化します。詳細は以下の「翻訳疑似コード」セクションを参照してください。
3. **ピアレビュー**: プルリクエスト(PR)を提出する前に、変更を慎重にレビューしてください。PRは2名のレビュアーの承認後にメインブランチにマージされます。
## 翻訳基準
> [!tip]
> **「正確性」と「自然さ」は、主に中国語を理解できる日本語ネイティブスピーカーによって扱われます。**
>
> 場合によっては、「正確性(一貫性)」と「自然さ」はトレードオフの関係にあり、一方を最適化すると他方に大きな影響を与える可能性があります。そのような場合は、プルリクエストにコメントを残して議論してください。
**正確性**:
- [用語集](https://www.hello-algo.com/chapter_appendix/terminology/)セクションを参照して、翻訳全体で用語の一貫性を保ちます。
- 技術的な正確性を優先し、中国語版のトーンとスタイルを維持します。
- 修正が正確で包括的であることを確保するため、常に中国語版の内容とコンテキストを考慮してください。
**自然さ**:
- 翻訳は日本語の表現慣習に従い、自然で流暢に読めるようにすべきです。
- 記事を調和させるために、常にコンテンツのコンテキストを考慮してください。
- 中国語と日本語の文化的な違いに注意してください。例えば、中国語の「拼音」は日本語には存在しません。
- 最適化された文が元の意味を変える可能性がある場合は、議論のためにコメントを追加してください。
**フォーマット**:
- 図表は展開時に自動的に番号付けされるため、手動で番号を付けないでください。
- バグ修正を除き、各PRは管理可能なレビューサイズを確保するため、少なくとも1つの完全なドキュメントをカバーすべきです。
**レビュー**:
- レビュー中は、変更の評価を優先し、必要に応じて周囲のコンテキストを参照してください。
- お互いの視点から学ぶことで、より良い翻訳とより一貫性のある結果につながります。
## 翻訳疑似コード
以下の疑似コードは、典型的な翻訳プロセスのステップをモデル化しています。
```python
def optimize_translation(markdown_texts, lang_skill):
"""翻訳を最適化する"""
for sentence in markdown_texts:
"""正確性は主に中国語を理解できる日本語ネイティブスピーカーによって処理される"""
if lang_skill is "日本語ネイティブ + 中国語読解力":
if is_accurate_Chinese_to_Japanese(sentence):
continue
# 正確性を最適化
result = refine_accuracy(sentence)
"""
自然さは主に日本語ネイティブスピーカーによって処理され、
副次的に中国語話者によって処理される
"""
if is_authentic_Japanese(sentence):
continue
# 自然さを最適化
result = refine_authenticity(sentence)
# 一貫性を損なう可能性がある場合はPRにコメントを追加
if break_consistency(result):
add_comment(description)
pull_request = submit_pull_request(markdown_texts)
# PRは2名以上のレビュアーによる承認後にマージされる
while count_approvals(pull_request) < 2:
continue
merge(pull_request)
```
以下はレビュアー向けの疑似コードです:
```python
def review_pull_requests(pull_request, lang_skill):
"""PRをレビューする"""
# PR内のすべての変更をループ
while is_anything_left_to_review(pull_request):
change = get_next_change(pull_request)
"""正確性は主に中国語を理解できる日本語ネイティブスピーカーによって処理される"""
if lang_skill is "日本語ネイティブ + 中国語読解力":
# 中国語版と日本語版の間の正確性(一貫性)をチェック
if is_accurate_Chinese_to_Japanese(change):
continue
# 正確性(一貫性)を最適化
result = refine_accuracy(change)
# PRにコメントを追加
add_comment(result)
"""
自然さは主に日本語ネイティブスピーカーによって処理され、
副次的に中国語話者によって処理される
"""
if is_authentic_Japanese(change):
continue
# 自然な日本語でない場合は自然さを最適化
result = refine_authenticity(change)
# PRにコメントを追加
add_comment(result)
approve(pull_request)
```