diff --git a/_config.yml b/_config.yml
index 5a74c9d8..a6795e9a 100644
--- a/_config.yml
+++ b/_config.yml
@@ -2,23 +2,23 @@ baseurl: ''
url: ''
repository: 'https://github.com/tc39/tc39.github.io'
plugins:
- - jemoji
- - jekyll-octicons
+ - jemoji
+ - jekyll-octicons
exclude:
- - 'babel.config.json'
- - 'README.md'
- - 'screenshot.png'
- - 'Dockerfile'
- - 'Makefile'
- - 'Gemfile'
- - 'Gemfile.lock'
- - 'node_modules'
- - 'package.json'
- - 'package-lock.json'
- - 'vendor'
+ - 'babel.config.json'
+ - 'README.md'
+ - 'screenshot.png'
+ - 'Dockerfile'
+ - 'Makefile'
+ - 'Gemfile'
+ - 'Gemfile.lock'
+ - 'node_modules'
+ - 'package.json'
+ - 'package-lock.json'
+ - 'vendor'
sass:
- style: compressed
-languages: ["de", "en", "ru", "zh-Hans"]
-default_lang: "en"
-exclude_from_localization: ["tc39-notes", "README.md"]
+ style: compressed
+languages: ['de', 'en', 'ja', 'ru', 'zh-Hans']
+default_lang: 'en'
+exclude_from_localization: ['tc39-notes', 'README.md']
parallel_localization: true
diff --git a/_data/ja/intro.yml b/_data/ja/intro.yml
new file mode 100644
index 00000000..046443e4
--- /dev/null
+++ b/_data/ja/intro.yml
@@ -0,0 +1,11 @@
+TC39:
+ title: TC39
+ desc: Ecma InternationalのTC39は、JavaScript開発者、実装者、専門家などのグループで、JavaScriptの仕様をメンテナンスし発展させるためにコミュニティと協力しています。
+ ecma-logo: 我々は
所属の委員会です。
+contribute:
+ title: コントリビュート
+ desc: 既存のプロポーザルに対するフィードバック、ドキュメントの改善、テスト、実装、さらには言語機能に関するアイデアなど、JavaScriptコミュニティからのコントリビュートをTC39は歓迎します。詳細については、コントリビュータガイドをご覧ください。
+ join-ecma: TC39のミーティングにメンバーとして参加するには、Ecmaに参加してください。
+specs:
+ title: 仕様
+ desc: 我々はJavaScript(正式には、ECMAScript)の仕様をGitHub上で開発し、2ヶ月ごとにミーティングを行い、プロポーザルについて議論しています。このプロセスの詳細については、新しい言語機能のプロポーザルの5つのステージを参照してください。より詳細な情報については、ミーティングの議題と議事録をご覧ください。
diff --git a/_data/ja/proposals.yml b/_data/ja/proposals.yml
new file mode 100644
index 00000000..0c1b041d
--- /dev/null
+++ b/_data/ja/proposals.yml
@@ -0,0 +1,23 @@
+title: 現在の仕様候補一覧
+description: このセクションでは、我々のプロセスにおいてステージ3に到達している、つまり完了が近いプロポーザルを紹介しています。
+how-to-read:
+ title: プロポーザル一覧の読み方
+ description: 各プロポーザルは他の資料へのリンクが貼ってあります。表示されているタグは以下の属性を示しています。各タグが何を意味しているかは以下の例を参照してください。全てのタグはマウスカーソルをホバーさせたら詳細が表示されます。
+ tags:
+ title: タグの種類とそれぞれの意味
+ last-presented: 最終発表日
+ last-presented-fake-date: 12月 2018
+ tests: テストケース
+ spec: 仕様詳細
+last-presented-alt: 直近の発表のノート
+specification: 仕様
+specification-alt: 仕様文を読む
+tests: テスト
+tests-alt: test262のリポジトリにテストを追加するパッチ
+show-example: 例を表示する
+author: 提出者
+authors: 提出者
+champion: 支持者
+champions: 支持者
+authors-and-champions: 提出者、及び支持者
+see-more: 全ステージのプロポーザルを見る
diff --git a/_data/ja/site.yml b/_data/ja/site.yml
new file mode 100644
index 00000000..8118df41
--- /dev/null
+++ b/_data/ja/site.yml
@@ -0,0 +1,39 @@
+title: JavaScriptを定義する。
+lang: ja
+navigation:
+ TC39:
+ title: TC39
+ agenda: 今後の議題
+ notes: 直近の議事録
+ sub-menu: TC39のサブメニューを表示する
+ specs:
+ title: 仕様
+ proposals: 議論中のプロポーザル
+ ecma-262: ECMA-262, ECMAScript
+ ecma-402: ECMA-402, Intl API
+ sub-menu: 仕様のサブメニューを表示する
+ contribute:
+ title: コントリビュート
+ proposals: プロポーザルへのコントリビュートについて
+ tests: テストケースへのコントリビュートについて
+ read: 仕様の読み方について
+ discourse: Discourseに参加する
+ sub-menu: コントリビュートのサブメニューを表示する
+ state-of-proposals: プロポーザルの状態
+ skip-content: プロポーザルの状態へ飛ぶ
+ open: メニューを表示する
+footer:
+ connect: 繋がる
+ standards: 標準
+ proposals: プロポーザル一覧
+ archives: アーカイブ
+ process: プロセス
+ coc: 行動規範
+ feedback: フィードバックを募集しています。
+ feedback-prompt: ご意見等はこのサイトのリポジトリにissueを開いてください。
+links:
+ coc: https://tc39.es/code-of-conduct
+ process: https://tc39.es/process-document
+ contribute-to-proposals: https://github.com/tc39/ecma262/blob/master/CONTRIBUTING.md
+ contribute-to-tests: https://github.com/tc39/test262/blob/master/CONTRIBUTING.md
+ discourse: https://es.discourse.group/
diff --git a/_data/ja/stage3.yml b/_data/ja/stage3.yml
new file mode 100644
index 00000000..e2569ea9
--- /dev/null
+++ b/_data/ja/stage3.yml
@@ -0,0 +1,240 @@
+- title: JavaScriptの古い正規表現機能
+ id: proposal-regexp-legacy-features
+ presented:
+ - date: 5月 2017
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2017-05/may-25.md#15ia-regexp-legacy-features-for-stage-3
+ has_specification: false
+ description: JavaScriptの古い(非推奨の)正規表現機能の仕様ドラフトです。例えば、RegExp.$1
やRegExp.prototype.compile
メソッドのようなコンストラクタのスタティックプロパティなどです。
+ authors:
+ - Claude Pache
+ champions:
+ - Mark Miller
+ - Claude Pache
+ tests:
+ - 'https://github.com/tc39/test262/pull/2650'
+- title: プライベートインスタンスメソッドとアクセサ
+ id: proposal-private-methods
+ example: |-
+ class Counter extends HTMLElement {
+ #xValue = 0;
+ get #x() { return #xValue; }
+ set #x(value) {
+ this.#xValue = value;
+ window.requestAnimationFrame(this.#render.bind(this));
+ }
+ #clicked() {
+ this.#x++;
+ }
+ constructor() {
+ super();
+ this.onclick = this.#clicked.bind(this);
+ }
+ connectedCallback() { this.#render(); }
+ #render() {
+ this.textContent = this.#x.toString();
+ }
+ }
+ window.customElements.define('num-counter', Counter);
+ presented:
+ - date: 1月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2019-01/jan-30.md#private-fields-and-methods-refresher
+ has_specification: true
+ description: クラスの状態や振る舞いを非公開に保つことで、ライブラリの作者は明確かつ安定したインターフェースを提供しつつ裏側でコードを変更できるようになります。
+ authors:
+ - Daniel Ehrenberg
+ champions:
+ - Daniel Ehrenberg
+ - Kevin Gibbons
+ tests:
+ - >-
+ https://github.com/tc39/test262/pulls?q=is%3Apr+is%3Aclosed+private+methods
+- title: クラスのパブリックインスタンスフィールドとプライベートインスタンスフィールド
+ id: proposal-class-fields
+ example: |-
+ class X {
+ #foo;
+ method() {
+ console.log(this.#foo)
+ }
+ }
+ presented:
+ - date: 3月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2020-03/march-31.md#add-support-for-optionalchainprivateidentifier-in-class-features-proposals
+ has_specification: true
+ description: 過去の直交クラスとクラス評価順序に関するプロポーザルに基づいて、パブリックフィールドとプライベートフィールドのための複合的なビジョンを提案します。
+ authors:
+ - Daniel Ehrenberg
+ - Kevin Gibbons
+ champions:
+ - Daniel Ehrenberg
+ - Jeff Morrison
+ - Kevin Smith
+ - Kevin Gibbons
+ tests:
+ - 'https://github.com/tc39/test262/pulls?q=is%3Apr+is%3Aclosed+private+fields'
+- title: 静的クラスフィールドとプライベート静的メソッド
+ id: proposal-static-class-features
+ example: |-
+ class ColorFinder {
+ static #red = "#ff0000";
+ static #green = "#00ff00";
+ static #blue = "#0000ff";
+
+ static colorName(name) {
+ switch (name) {
+ case "red": return ColorFinder.#red;
+ case "blue": return ColorFinder.#blue;
+ case "green": return ColorFinder.#green;
+ default: throw new RangeError("unknown color");
+ }
+ }
+
+ // Somehow use colorName
+ }
+ presented:
+ - date: 1月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2019-01/jan-30.md#private-fields-and-methods-refresher
+ has_specification: true
+ description: 過去のクラスフィールドプロポーザルとプライベートメソッドプロポーザルに基づいて、新しい3つの機能をJavaScriptのクラスに追加するプロポーザルです。
+ authors:
+ - Daniel Ehrenberg
+ - Kevin Gibbons
+ - Jeff Morrison
+ - Kevin Smith
+ champions:
+ - Shu-Yu Guo
+ - Daniel Ehrenberg
+ tests:
+ - 'https://github.com/tc39/test262/pulls?q=is%3Apr+is%3Aclosed+static+fields'
+- title: ハッシュバン文法
+ id: proposal-hashbang
+ example: |-
+ #!/usr/bin/env node
+ // in the Module Goal
+ export {};
+ console.log(1);
+ presented:
+ - date: 11月 2018
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2018-11/nov-28.md#hash-bang-grammar
+ has_specification: true
+ description: このプロポーザルは、シェバン/ハッシュバンに対応しているいくつかのCLI JSのホストでデファクトとなっている使用方法と合わせるものです。それらのホストは現在、JSエンジンにソーステキストを渡す前にそれらを有効なものにするためにハッシュバンを取り除いています。これはそれがどのように行われるかを統一、また標準化します。
+ authors:
+ - Bradley Farias
+ champions:
+ - Bradley Farias
+ tests:
+ - 'https://github.com/tc39/test262/pull/2065'
+- title: トップレベルawait
+ id: proposal-top-level-await
+ example: |-
+ // file.html
+ <script type=module src="a.mjs"></script>
+ // a.mjs
+ await import("./b.mjs");
+ // b.mjs
+ await import("./a.mjs");
+ presented:
+ - date: 6月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2019-06/june-6.md#top-level-await-for-stage-3
+ has_specification: true
+ description: トップレベルawait
はモジュールを大きな非同期関数として実行することを可能にします。トップレベルawait
を使うことで、ECMAScript Modules (ESM)はリソースを待機することが可能となり、それらのモジュールをインポートする他のモジュールは自身の評価が始まる前に待機することになります。
+ authors:
+ - Myles Borins
+ champions:
+ - Myles Borins
+ tests:
+ - 'https://github.com/tc39/test262/pull/2274'
+- title: RegExp Match Indices
+ id: proposal-regexp-match-indices
+ example: |-
+ const re1 = /a+(?<Z>z)?/;
+ // indices are relative to start of the input string:
+ const s1 = "xaaaz";
+ const m1 = re1.exec(s1);
+ m1.indices[0][0] === 1;
+ m1.indices[0][1] === 5;
+ s1.slice(...m1.indices[0]) === "aaaz";
+ m1.indices[1][0] === 4;
+ m1.indices[1][1] === 5;
+ s1.slice(...m1.indices[1]) === "z";
+ m1.indices.groups["Z"][0] === 4;
+ m1.indices.groups["Z"][1] === 5;
+ s1.slice(...m1.indices.groups["Z"]) === "z";
+ // capture groups that are not matched return `undefined`:
+ const m2 = re1.exec("xaaay");
+ m2.indices[1] === undefined;
+ m2.indices.groups["Z"] === undefined;
+ presented:
+ - date: 12月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2019-12/december-3.md#regexp-match-indices-performance-feedback
+ has_specification: false
+ description: ECMAScript RegExp Match Indiciesは入力された文字列の先頭を基準にキャプチャされた部分文字列の開始インデックスと終了インデックスについての追加の情報を提供します。
+ authors:
+ - Ron Buckton
+ champions:
+ - Ron Buckton
+ tests:
+ - 'https://github.com/tc39/test262/pull/2309'
+- title: Atomics.waitAsync
+ id: proposal-atomics-wait-async
+ presented:
+ - date: 12月 2019
+ url: >-
+ https://github.com/tc39/notes/blob/master/meetings/2019-12/december-4.md#atomicswaitasync-for-stage-3
+ has_specification: true
+ description: 主にブロッキングが許されないエージェントで使用するための"Atomics.wait
の非同期版"をECMAScriptに追加するためのプロポーザルです。
+ authors:
+ - Lars Hansen
+ champions:
+ - Shu-yu Guo
+ - Lars Hansen
+ tests:
+ - 'https://github.com/tc39/test262/issues/2511'
+- title: .at()
+ id: proposal-relative-indexing-method
+ example: |-
+ var list = ["apple", "orange", "banana"];
+ list.at(-1) // banana, using negative index
+ list.at(0) // apple
+ list.at(1) // orange
+ list.at(2) // banana
+ presented:
+ - date: 9月 2020
+ url: at
+ has_specification: true
+ description: すべての基本的なインデックス可能なクラス(Array
, String
, TypedArray
)に、.at()
メソッドを追加するプロポーザルです。
+ authors:
+ - Shu-yu Guo
+ - Tab Atkins
+ champions:
+ - Shu-yu Guo
+ - Tab Atkins
+ tests:
+ - 'https://github.com/tc39/test262/pull/2812'
+- title: Importアサーション
+ id: proposal-import-assertions
+ example: >-
+ new Worker("foo.wasm", { type: "module", assert: { type:
+ "webassembly" } });
+ presented:
+ - date: 9月 2020
+ url: import-assertions
+ has_specification: true
+ description: ES Modulesをアサーション付きでインポートする構文のためのプロポーザルです。
+ authors:
+ - Myles Borins
+ - Sven Sauleau
+ - Dan Clark
+ - Daniel Ehrenberg
+ champions:
+ - Myles Borins
+ - Sven Sauleau
+ - Dan Clark
+ - Daniel Ehrenberg