Skip to content

Commit b4bfc60

Browse files
CopilotCopilot
andcommitted
Add Japanese translations for language category patterns
Create 22 Japanese translation YAML files under translations/content/ja/language/ covering all patterns in the language category. Each file includes translated title, oldApproach, modernApproach, summary, explanation, whyModernWins, and support.description fields. Also register Japanese locale in locales.properties. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 921dd6f commit b4bfc60

23 files changed

+375
-0
lines changed

html-generators/locales.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
en=English
33
es=Español
44
pt-BR=Português (Brasil)
5+
ja=日本語
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: コンパクト正準コンストラクタ
2+
oldApproach: 明示的なコンストラクタによる検証
3+
modernApproach: コンパクトコンストラクタ
4+
summary: "パラメータリストを繰り返さずにレコードフィールドを検証・正規化する。"
5+
explanation: "レコードはパラメータリストとフィールドへの代入を省略したコンパクト正準コンストラクタを宣言できます。検証ロジックの実行後、コンパイラが自動的にパラメータをフィールドに代入します。事前条件チェック、防御的コピー、正規化に最適です。"
6+
whyModernWins:
7+
- icon: ""
8+
title: 繰り返しの削減
9+
desc: "パラメータリストを繰り返したり、各フィールドを手動で代入する必要がありません。"
10+
- icon: "🛡"
11+
title: バリデーション
12+
desc: "nullチェック、範囲バリデーション、防御的コピーに最適です。"
13+
- icon: "💡"
14+
title: 明確な意図
15+
desc: "コンパクトな構文により、ボイラープレートではなくバリデーションが強調されます。"
16+
support:
17+
description: JDK 16(2021年3月)以降、広く利用可能
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: コンパクトソースファイル
2+
oldApproach: mainクラスの定型文
3+
modernApproach: void main()
4+
summary: "クラス宣言やpublic static void mainなしで完全なプログラムを記述できる。"
5+
explanation: "コンパクトソースファイルは、シンプルなプログラムにおけるクラス宣言とmainメソッドシグネチャの定型文を取り除きます。java.io.IOの暗黙的なインポートと組み合わせることで、printlnも直接使えます。"
6+
whyModernWins:
7+
- icon: "🚀"
8+
title: 定型文ゼロ
9+
desc: "class宣言も、public static void mainも、String[] argsも不要です。"
10+
- icon: "🌱"
11+
title: 初心者にやさしい
12+
desc: "プログラミング初心者が1行目から有用なコードを書けます。"
13+
- icon: "📝"
14+
title: スクリプトのような書き心地
15+
desc: "簡単なプロトタイプ、スクリプト、サンプルに最適です。"
16+
support:
17+
description: JDK 25 LTSでファイナライズ(JEP 512、2025年9月)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: インターフェースのデフォルトメソッド
2+
oldApproach: 共有動作のための抽象クラス
3+
modernApproach: インターフェースのデフォルトメソッド
4+
summary: "インターフェースにメソッド実装を直接追加し、多重継承を可能にする。"
5+
explanation: "Java 8以前、無関係なクラス間で動作を共有するには抽象クラスが必要で、単一継承に制限されていました。デフォルトメソッドにより、インターフェースにメソッド実装を提供できるようになり、クラスは複数のインターフェースから動作を継承できます。これはCollections API(List.forEach、Map.getOrDefaultなど)を既存の実装を壊さずに進化させるために不可欠でした。"
6+
whyModernWins:
7+
- icon: "🔗"
8+
title: 多重継承
9+
desc: "クラスは複数のインターフェースのデフォルトメソッドを実装できます(単一継承のクラスとは異なります)。"
10+
- icon: "🔄"
11+
title: APIの進化
12+
desc: "既存の実装を壊さずにインターフェースに新しいメソッドを追加できます。"
13+
- icon: "🧩"
14+
title: 組み合わせ可能な動作
15+
desc: "複数のインターフェースから機能を自由に組み合わせられます。"
16+
support:
17+
description: JDK 8(2014年3月)以降、利用可能
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: 匿名クラスでのダイヤモンド演算子
2+
oldApproach: 型引数の繰り返し
3+
modernApproach: ダイヤモンド <>
4+
summary: "ダイヤモンド演算子が匿名クラスでも使えるようになった。"
5+
explanation: "Java 7で<>が導入されましたが、匿名内部クラスでは使用できませんでした。Java 9でこの制限が解消され、右辺で型引数を繰り返す必要がなくなりました。"
6+
whyModernWins:
7+
- icon: "📏"
8+
title: 一貫したルール
9+
desc: "ダイヤモンドはコンストラクタでも匿名クラスでも同様に使えます。"
10+
- icon: ""
11+
title: 冗長性の削減
12+
desc: "型引数は左辺で一度だけ記述し、繰り返す必要はありません。"
13+
- icon: "🔁"
14+
title: DRY原則
15+
desc: "コンパイラがすでに型を知っているのに、なぜ2度書くのでしょうか?"
16+
support:
17+
description: 匿名クラスでのダイヤモンドはJDK 9(2017年9月)以降
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: defaultなしの網羅的switch
2+
oldApproach: 必須のdefault
3+
modernApproach: sealedによる網羅性
4+
summary: "コンパイラがsealedのサブタイプをすべてカバーしているか検証 — defaultは不要。"
5+
explanation: "sealedな型に対してswitchを行う場合、コンパイラはすべてのサブタイプを把握し、すべてのケースが処理されているかを検証します。新しいサブタイプを追加すると、コンパイラが未対応のすべてのswitchを指摘します。"
6+
whyModernWins:
7+
- icon: "🛡"
8+
title: コンパイル時の安全性
9+
desc: "新しいサブタイプを追加すると、コンパイラが更新が必要なすべての箇所を示します。"
10+
- icon: "🚫"
11+
title: デッドコードなし
12+
desc: "バグを隠すような到達不能なdefaultブランチがなくなります。"
13+
- icon: "🧩"
14+
title: 代数的型
15+
desc: "sealed + records + 網羅的switch = JavaにおけるADT。"
16+
support:
17+
description: JDK 21 LTS(2023年9月)以降、広く利用可能
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: 柔軟なコンストラクタ本体
2+
oldApproach: super()の後でバリデーション
3+
modernApproach: super()の前にコードを記述
4+
summary: "super()またはthis()を呼び出す前に値の検証や計算を行う。"
5+
explanation: "Java 25はsuper()が最初の文でなければならないという制限を解除します。親コンストラクタに処理を委譲する前に、引数の検証、派生値の計算、状態のセットアップが可能になります。"
6+
whyModernWins:
7+
- icon: ""
8+
title: フェイルファスト
9+
desc: "スーパークラスのコンストラクタが実行される前に引数を検証できます。"
10+
- icon: "🔢"
11+
title: 先に計算
12+
desc: "super()を呼び出す前に値を導出してデータを準備できます。"
13+
- icon: "🚫"
14+
title: 回避策不要
15+
desc: "制限を回避するための静的ヘルパーメソッドやファクトリパターンが不要になります。"
16+
support:
17+
description: JDK 25 LTSでファイナライズ(JEP 513、2025年9月)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: whenによるガード付きパターン
2+
oldApproach: ネストしたif
3+
modernApproach: when句
4+
summary: "whenガードを使ってパターンのcaseに条件を追加する。"
5+
explanation: "ガード付きパターンを使うと、型マッチングに追加のboolean条件を付け加えられます。これにより、すべての分岐ロジックをswitch内に収められ、case内にif文をネストする必要がなくなります。"
6+
whyModernWins:
7+
- icon: "🎯"
8+
title: 精密なマッチング
9+
desc: "型と条件を1つのcaseラベルで組み合わせられます。"
10+
- icon: "📐"
11+
title: フラットな構造
12+
desc: "switchのcase内にif/elseをネストする必要がありません。"
13+
- icon: "📖"
14+
title: 読みやすい意図
15+
desc: "when句は自然な言葉のように読めます。"
16+
support:
17+
description: JDK 21 LTS(2023年9月)以降、広く利用可能
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: JavadocコメントのMarkdown記法
2+
oldApproach: HTMLベースのJavadoc
3+
modernApproach: Markdown形式のJavadoc
4+
summary: "可読性向上のためにHTMLではなくMarkdownでJavadocコメントを記述する。"
5+
explanation: "Java 23では///を使ったMarkdownスタイルのJavadocコメントが従来の/** */HTMLベースの形式の代替として導入されました。Markdownの構文はより自然に読み書きでき、コードブロック、強調、リスト、リンクをサポートします。コンパイラはMarkdownをHTMLに変換してjavadoc出力を生成します。"
6+
whyModernWins:
7+
- icon: ""
8+
title: 自然な構文
9+
desc: "HTMLタグの代わりにインラインコードにバッククォート、ブロックに```を使います。"
10+
- icon: "😊"
11+
title: 書きやすい
12+
desc: "{@code}、<pre>、<p>タグは不要 — Markdownをそのまま書くだけです。"
13+
- icon: "🖥"
14+
title: エディタでの表示が美しい
15+
desc: "MarkdownはモダンなIDEやテキストエディタで美しくレンダリングされます。"
16+
support:
17+
description: JDK 23(2024年9月)以降、利用可能
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
title: モジュールインポート宣言
2+
oldApproach: 大量のimport文
3+
modernApproach: import module
4+
summary: "1つの宣言でモジュールのエクスポートされたすべてのパッケージをインポートする。"
5+
explanation: "モジュールインポート宣言を使うと、1行でモジュールがエクスポートするすべてをインポートできます。コレクション、I/O、ストリームなどをカバーするjava.baseに特に便利です。"
6+
whyModernWins:
7+
- icon: "1️⃣"
8+
title: 1行で完結
9+
desc: "import文の羅列が1つのモジュールインポートに置き換わります。"
10+
- icon: "📦"
11+
title: モジュール対応
12+
desc: "モジュールシステムを活用して一貫したパッケージセットをインポートできます。"
13+
- icon: "🚀"
14+
title: クイックスタート
15+
desc: "importリストが煩わしいスクリプトやプロトタイプに最適です。"
16+
support:
17+
description: JDK 25 LTSでファイナライズ(JEP 511、2025年9月)

0 commit comments

Comments
 (0)