summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/ja/feature_advanced_keycodes.md85
-rw-r--r--docs/ja/feature_audio.md328
-rw-r--r--docs/ja/feature_auto_shift.md135
-rw-r--r--docs/ja/feature_backlight.md253
-rw-r--r--docs/ja/feature_bluetooth.md52
-rw-r--r--docs/ja/feature_bootmagic.md171
6 files changed, 1024 insertions, 0 deletions
diff --git a/docs/ja/feature_advanced_keycodes.md b/docs/ja/feature_advanced_keycodes.md
new file mode 100644
index 0000000000..d208d7f926
--- /dev/null
+++ b/docs/ja/feature_advanced_keycodes.md
@@ -0,0 +1,85 @@
+# レイヤーの切り替えとトグル :id=switching-and-toggling-layers
+
+<!---
+ original document: 5d5ff80:docs/feature_advanced_keycodes.md
+ git diff 5d5ff80 HEAD -- docs/feature_advanced_keycodes.md | cat
+-->
+
+これらの機能により、様々な方法でレイヤーをアクティブ化することができます。レイヤーは一般的に独立したレイアウトでは無いことに注意してください -- 複数のレイヤーを一度にアクティブ化することができ、レイヤーが `KC_TRNS` を使ってキーの押下を下のレイヤーに渡すことが一般的です。レイヤーの詳細については、[キーマップの概要](ja/keymap.md#keymap-and-layers)を見てください。MO()、LM()、TT() あるいは LT() を使って一時的なレイヤーの切り替えを使う場合、上のレイヤーのキーを透過にするようにしてください。さもないと意図したように動作しないかもしれません。
+
+* `DF(layer)` - デフォルトレイヤーを切り替えます。デフォルトレイヤーは、他のレイヤーがその上に積み重なっている、常にアクティブな基本レイヤーです。デフォルトレイヤーの詳細については以下を見てください。これは QWERTY から Dvorak レイアウトに切り替えるために使うことができます。(これは一時的な切り替えであり、キーボードの電源が切れるまでしか持続しないことに注意してください。デフォルトレイヤーを永続的に変更するには、[process_record_user](ja/custom_quantum_functions.md#programming-the-behavior-of-any-keycode) 内で `set_single_persistent_default_layer` 関数を呼び出すなど、より深いカスタマイズが必要です。)
+* `MO(layer)` - 一時的に*レイヤー*をアクティブにします。キーを放すとすぐに、レイヤーは非アクティブになります。
+* `LM(layer, mod)` - (`MO` のように)一時的に*レイヤー*をアクティブにしますが、モディファイア *mod* がアクティブな状態です。layer 0-15 と、左モディファイアのみをサポートします: `MOD_LCTL`、`MOD_LSFT`、`MOD_LALT`、`MOD_LGUI` (`KC_` の代わりに `MOD_` 定数を使うことに注意してください)。これらのモディファイアは、例えば `LM(_RAISE, MOD_LCTL | MOD_LALT)` のように、ビット単位の OR を使って組み合わせることができます。
+* `LT(layer, kc)` - ホールドされた時に*レイヤー*を一時的にアクティブにし、タップされた時に *kc* を送信します。layer 0-15 のみをサポートします。
+* `OSL(layer)` - 次のキーが押されるまで、一時的に*レイヤー*をアクティブにします。詳細と追加機能については、[ワンショットキー](ja/one_shot_keys.md)を見てください。
+* `TG(layer)` - *レイヤー*を切り替えます。非アクティブな場合はアクティブにし、逆も同様です。
+* `TO(layer)` - *レイヤー*をアクティブにし、他の全てのレイヤー(デフォルトレイヤーを除く)を非アクティブにします。この関数は特別です。1つのレイヤーをアクティブなレイヤースタックに追加/削除する代わりに、現在のアクティブなレイヤーを完全に置き換え、唯一上位のレイヤーを下位のレイヤーで置き換えることができるからです。これはキーダウンで(キーが押されるとすぐに)アクティブになります。
+* `TT(layer)` - レイヤーのタップ切り替え。キーを押したままにすると*レイヤー*がアクティブにされ、放すと非アクティブになります (`MO` 風)。繰り返しタップすると、レイヤーはオンあるいはオフを切り替えます (`TG` 風)。デフォルトでは5回のタップが必要ですが、`TAPPING_TOGGLE` を定義することで変更することができます -- 例えば、2回のタップだけで切り替えるには、`#define TAPPING_TOGGLE 2` を定義します。
+
+## 注意事項
+
+現在のところ、`LT()` と `MT()` は[基本的なキーコードセット](ja/keycodes_basic.md)に制限されています。つまり、`LCTL()`、`KC_TILD` あるいは `0xFF` より大きなキーコードを使うことができません。レイヤータップあるいはモッドタップのキーコードの一部として指定されたモディファイアは無視されます。タップしたキーコードにモディファイアを適用する必要がある場合は、[タップダンス](ja/feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys)を使うことができます。
+
+さらに、モッドタップあるいはレイヤータップで少なくとも1つの右手用のモディファイアが指定された場合、指定された全てのモディファイアが右手用になるため、2つをうまく組み合わせて一致させることはできません。
+
+# レイヤーの使用
+
+レイヤーを切り替える時は注意してください。(キーボードを取り外さずに)そのレイヤーを非アクティブにすることができずレイヤーから移動できなくなる可能性があります。最も一般的な問題を避けるためのガイドラインを作成しました。
+
+## 初心者
+
+QMK を使い始めたばかりの場合は、全てを単純にしたいでしょう。レイヤーをセットアップする時は、これらのガイドラインに従ってください:
+
+* デフォルトの "base" レイヤーとして、layer 0 をセットアップします。これは通常の入力レイヤーであり、任意のレイアウト (qwerty、dvorak、colemak など)にすることができます。通常はキーボードのキーのほとんどまたは全てが定義されているため、これを最下位のレイヤーとして設定することが重要です。そうすることで、もしそれが他のレイヤーの上 (つまりレイヤー番号が大きい)にある場合の影響を防ぎます。
+* layer 0 をルートとして、レイヤーを "ツリー" レイアウトに配置します。他の複数のレイヤーから同じレイヤーに行こうとしないでください。
+* 各レイヤーのキーマップでは、より高い番号のレイヤーのみを参照します。レイヤーは最大の番号(最上位)のアクティブレイヤーから処理されるため、下位レイヤーの状態を変更するのは難しくエラーが発生しやすくなります。
+
+## 中級ユーザ
+
+複数の基本レイヤーが必要な場合があります。例えば、QWERTY と Dvorak を切り替える場合、国ごとに異なるレイアウトを切り替える場合、あるいは異なるビデオゲームごとにレイアウトを切り替える場合などです。基本レイヤーは常に最小の番号のレイヤーである必要があります。複数の基本レイヤーがある場合、常にそれらを相互排他的に扱う必要があります。1つの基本レイヤーがオンの場合、他をオフにします。
+
+## 上級ユーザ
+
+レイヤーがどのように動作し、何ができるかを理解したら、より創造的になります。初心者のセクションで列挙されている規則は、幾つかの巧妙な詳細を回避するのに役立ちますが、特に超コンパクトなキーボードのユーザにとって制約になる場合があります。レイヤーの仕組みを理解することで、レイヤーをより高度な方法で使うことができます。
+
+レイヤーは番号順に上に積み重なっています。キーの押下の動作を決定する時に、QMK は上から順にレイヤーを走査し、`KC_TRNS` に設定されていない最初のアクティブなレイヤーに到達すると停止します。結果として、現在のレイヤーよりも数値的に低いレイヤーをアクティブにし、現在のレイヤー(あるいはアクティブでターゲットレイヤーよりも高い別のレイヤー)に `KC_TRNS` 以外のものがある場合、それが送信されるキーであり、アクティブ化したばかりのレイヤー上のキーではありません。これが、ほとんどの人の "なぜレイヤーが切り替わらないのか" 問題の原因です。
+
+場合によっては、マクロ内あるいはタップダンスルーチンの一部としてレイヤーを切り替えほうが良いかもしれません。`layer_on` はレイヤーをアクティブにし、`layer_off` はそれを非アクティブにします。もっと多くのレイヤーに関する関数は、[action_layer.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action_layer.h) で見つけることができます。
+
+# 修飾キー :id=modifier-keys
+
+以下のようにキーコードとモディファイアを組み合わせることができます。押すと、モディファイアのキーダウンイベントが送信され、次に `kc` のキーダウンイベントが送信されます。放すと、`kc` のキーアップイベントが送信され、次にモディファイアのキーアップイベントが送信されます。
+
+| キー | エイリアス | 説明 |
+|----------|-------------------------------|----------------------------------------------------|
+| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
+| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
+| `LALT(kc)` | `A(kc)` | 左 Alt を押しながら `kc`を押します。 |
+| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
+| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
+| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
+| `RALT(kc)` | `ALGR(kc)` | 右 Alt を押しながら `kc` を押します。 |
+| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
+| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と左 GUI を押しながら `kc` を押します。 |
+| `LCA(kc)` | | 左 Control と左 Alt を押しながら `kc` を押します。 |
+| `LCAG(kc)` | | 左 Control、左 Alt、左 GUI を押しながら `kc` を押します。 |
+| `MEH(kc)` | | 左 Control、左 Shift、左 Alt を押しながら `kc` を押します。 |
+| `HYPR(kc)` | | 左 Control、左 Shift、左 Alt、左 GUI を押しながら `kc` を押します。 |
+
+また、それらを繋げることができます。例えば、`LCTL(LALT(KC_DEL))` は1回のキー押下で Control+Alt+Delete を送信するキーを作成します。
+
+# 過去の内容
+
+このページには多くの機能が含まれていました。このページを構成していた多くのセクションをそれぞれのページに移動しました。これより下は全て単なるリダイレクトであるため、web上で古いリンクをたどっている人は探しているものを見つけることができます。
+
+## モッドタップ :id=mod-tap
+
+* [モッドタップ](ja/mod_tap.md)
+
+## ワンショットキー :id=one-shot-keys
+
+* [ワンショットキー](ja/one_shot_keys.md)
+
+## タップホールド設定オプション :id=tap-hold-configuration-options
+
+* [タップホールド設定オプション](ja/tap_hold.md)
diff --git a/docs/ja/feature_audio.md b/docs/ja/feature_audio.md
new file mode 100644
index 0000000000..0f845161eb
--- /dev/null
+++ b/docs/ja/feature_audio.md
@@ -0,0 +1,328 @@
+# オーディオ
+
+<!---
+ original document: 5d5ff80:docs/feature_audio.md
+ git diff 5d5ff80 HEAD -- docs/feature_audio.md | cat
+-->
+
+キーボードは音を出すことができます!Planck、Preonic あるいは特定の PWM 対応ピンにアクセスできる AVR キーボードがある場合は、単純なスピーカーを接続してビープ音を鳴らすことができます。これらのビープ音を使ってレイヤーの変化、モディファイア、特殊キーを示したり、あるいは単にイカした8ビットの曲を鳴らすことができます。
+
+最大2つの同時オーディオ音声がサポートされ、1つはタイマー1によってもう一つはタイマー3によって駆動されます。以下のピンは config.h の中でオーディオ出力として定義することができます:
+
+Timer 1:
+`#define B5_AUDIO`
+`#define B6_AUDIO`
+`#define B7_AUDIO`
+
+Timer 3:
+`#define C4_AUDIO`
+`#define C5_AUDIO`
+`#define C6_AUDIO`
+
+`rules.mk` に `AUDIO_ENABLE = yes` を追加すると、他の設定無しで自動的に有効になる幾つかの異なるサウンドがあります:
+
+```
+STARTUP_SONG // キーボードの起動時に再生 (audio.c)
+GOODBYE_SONG // RESET キーを押すと再生 (quantum.c)
+AG_NORM_SONG // AG_NORM キーを押すと再生 (quantum.c)
+AG_SWAP_SONG // AG_SWAP キーを押すと再生 (quantum.c)
+CG_NORM_SONG // CG_NORM キーを押すと再生 (quantum.c)
+CG_SWAP_SONG // CG_SWAP キーを押すと再生 (quantum.c)
+MUSIC_ON_SONG // 音楽モードがアクティブになると再生 (process_music.c)
+MUSIC_OFF_SONG // 音楽モードが非アクティブになると再生 (process_music.c)
+CHROMATIC_SONG // 半音階音楽モードが選択された時に再生 (process_music.c)
+GUITAR_SONG // ギター音楽モードが選択された時に再生 (process_music.c)
+VIOLIN_SONG // バイオリン音楽モードが選択された時に再生 (process_music.c)
+MAJOR_SONG // メジャー音楽モードが選択された時に再生 (process_music.c)
+```
+
+`config.h` の中で以下のような操作を行うことで、デフォルトの曲を上書きすることができます:
+
+```c
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(STARTUP_SOUND)
+#endif
+```
+
+サウンドの完全なリストは、[quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) で見つかります - このリストに自由に追加してください!利用可能な音は [quantum/audio/musical_notes.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/musical_notes.h) で見つかります。
+
+特定の時にカスタムサウンドを再生するために、以下のように曲を定義することができます(ファイルの上部付近に):
+
+```c
+float my_song[][2] = SONG(QWERTY_SOUND);
+```
+
+以下のように曲を再生します:
+
+```c
+PLAY_SONG(my_song);
+```
+
+または、以下のようにループで再生することができます:
+
+```c
+PLAY_LOOP(my_song);
+```
+
+オーディオがキーボードに組み込まれていない時に問題が起きる事を避けるために、`#ifdef AUDIO_ENABLE` / `#endif` で全てのオーディオ機能をくるむことをお勧めします。
+
+オーディオで利用可能なキーコードは以下の通りです:
+
+* `AU_ON` - オーディオ機能をオン
+* `AU_OFF` - オーディオ機能をオフ
+* `AU_TOG` - オーディオ機能を切り替え
+
+!> これらのキーコードは全てのオーディオ機能をオンおよびオフにします。オフにするとオーディオフィードバック、オーディオクリック、音楽モードなどが完全に無効になります。
+
+## ARM オーディオボリューム
+
+ARM デバイスの場合、DAC サンプル値を調整できます。キーボードがあなたやあなたの同僚にとって騒々しい場合、`config.h` 内の `DAC_SAMPLE_MAX` を使って最大量を設定することができます:
+
+```c
+#define DAC_SAMPLE_MAX 65535U
+```
+
+## 音楽モード
+
+音楽モードは列を半音階に、行をオクターブにマップします。これは格子配列キーボードで最適に動作しますが、他のものでも動作させることができます。`0xFF` 未満の全てのキーコードはブロックされるため、音の演奏中は入力できません - 特別なキー/mod があればそれらは引き続き動作します。これを回避するには、音楽モードを有効にする前(あるいは後)で、KC_NO を使って別のレイヤーにジャンプします。
+
+メモリの問題により、録音は実験的です - 奇妙な動作が発生した場合は、キーボードの取り外しと再接続で問題が解決するでしょう。
+
+利用可能なキーコード:
+
+* `MU_ON` - 音楽モードをオン
+* `MU_OFF` - 音楽モードをオフ
+* `MU_TOG` - 音楽モードの切り替え
+* `MU_MOD` - 音楽モードの循環
+ * `CHROMATIC_MODE` - 半音階。行はオクターブを変更します
+ * `GUITAR_MODE` - 半音階、ただし行は弦を変更します (+5 階)
+ * `VIOLIN_MODE` - 半音階。ただし行は弦を変換します (+7 階)
+ * `MAJOR_MODE` - メージャースケール
+
+音楽モードでは、以下のキーコードは動作が異なり、通過しません:
+
+* `LCTL` - 録音を開始
+* `LALT` - 録音を停止/演奏を停止
+* `LGUI` - 録音を再生
+* `KC_UP` - 再生をスピードアップ
+* `KC_DOWN` - 再生をスローダウン
+
+ピッチ標準 (`PITCH_STANDARD_A`) はデフォルトで 440.0f です - これを変更するには、`config.h` に以下のようなものを追加します:
+
+ #define PITCH_STANDARD_A 432.0f
+
+音楽モードも完全に無効にすることができます。コントローラの容量が足りなくて困っている場合に役に立ちます。無効にするには、これを `config.h` に追加します:
+
+ #define NO_MUSIC_MODE
+
+### 音楽マスク
+
+デフォルトで、`MUSIC_MASK` は `keycode < 0xFF` に設定されます。これは、`0xFF` 未満のキーコードが音に変換され、何も出力しないことを意味します。`config.h` の中で以下のものを定義することで、これを変更することができます:
+
+ #define MUSIC_MASK keycode != KC_NO
+
+これは全てのキーコードを捕捉します - これは、キーボードを再起動するまで、音楽モードで動けなくなることに注意してください!
+
+どのキーコードを引き続き処理するかを制御する、より高度な方法については、`<keyboard>.c` の中の `music_mask_kb(keycode)` および `keymap.c` の中の `music_mask_user(keycode)` を使うことができます:
+
+ bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+ }
+
+false を返すものはマスクの一部では無く、常に処理されます。
+
+### 音楽マップ
+
+デフォルトでは、音楽モードはキーのスケールを決定するために列と行を使います。キーボードレイアウトに一致する長方形のマトリックスを使うキーボードの場合、これで十分です。しかし、(Planck Rev6 あるいは多くの分割キーボードなどのように)より複雑なマトリックスを使うキーボードの場合、非常に歪んだ感じを受けることになります。
+
+しかしながら、音楽マップオプションにより、音楽モードのためにスケーリングを再マップすることができるため、レイアウトに一致し、より自然になります。
+
+この機能を使うには、`#define MUSIC_MAP` を `config.h` ファイルに追加します。そして、`キーボードの名前.c` または `keymap.c` に `uint8_t music_map` を追加します。
+
+```c
+const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_ortho_4x12(
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
+);
+```
+
+キーボードが使用する `LAYOUT` マクロも使用したいでしょう。これは正しいキーの位置にマップします。キーボードレイアウトの左下から開始し、右に移動してさらに上に移動します。完全なマトリックスができるまで、全てのエントリを入力します。
+
+これを実装する方法の例として、[Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e9ace1487887c1f8b4a7e8e6d87c322988bec9ce/keyboards/planck/planck.c#L24-L29) を見ることができます。
+
+## オーディオクリック
+
+これは、ボタンを押すたびにクリック音を追加し、キーボードからのクリック音をシミュレートします。キーを押すたびにわずかに音が異なるため、すばやく入力しても長い単一の音のようには聞こえません。
+
+* `CK_TOGG` - ステータスを切り替えます (有効にされた場合、音を再生します)
+* `CK_ON` - オーディオクリックをオンにします (音を再生します)
+* `CK_OFF` - オーディオクリックをオフにします (音を再生しません)
+* `CK_RST` - 周波数をデフォルトの状態に再設定します (デフォルトの周波数で音を再生します)
+* `CK_UP` - クリック音の周波数を増やします (新しい周波数で音を再生します)
+* `CK_DOWN` - クリック音の周波数を減らします (新しい周波数で音を再生します)
+
+
+容量を節約するためにデフォルトではこの機能は無効です。有効にするには、`config.h` に以下を追加します:
+
+ #define AUDIO_CLICKY
+
+
+これらの値を定義することで、デフォルト、最小および最大周波数、ステッピングおよび組み込みのランダム性を設定することができます:
+
+| オプション | デフォルト値 | 説明 |
+|--------|---------------|-------------|
+| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | クリック音のデフォルト/開始音の周波数を設定します。 |
+| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | 最小周波数を設定します (60f 未満は少しバグがあります)。 |
+| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | 最大周波数を設定します。高すぎると同僚があなたを攻撃する可能性があります。 |
+| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f | UP/DOWN キーコードのステップを設定します。これは掛け算の係数です。デフォルトでは、音楽のマイナーの1/3ずつ、周波数を上げ/下げします。 |
+| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | クリックのランダム性の係数を設定します。これを `0f` に設定すると各クリックが同一になり、`1.0f` に設定するとこの音は90年代のコンピュータ画面のスクロール/タイピングの効果があります。 |
+| `AUDIO_CLICKY_DELAY_DURATION` | 1 | 1がテンポの 1/16、または64分音符である整数音符の長さ (実装の詳細については、`quantum/audio/musical_notes.h` を見てください)。メインのクリック効果は、この時間だけ遅れます。これらを6-12前後の値に調整すると、うるさいスイッチの補正に役立ちます。 |
+
+
+
+
+## MIDI 機能
+
+これはまだ WIP ですが、何が起きているかを見るために、`quantum/process_keycode/process_midi.c` を調べてください。Makefile から有効にします。
+
+
+## オーディオキーコード
+
+| キー | エイリアス | 説明 |
+|----------------|---------|----------------------------------|
+| `AU_ON` | | オーディオモードオン |
+| `AU_OFF` | | オーディオモードオフ |
+| `AU_TOG` | | オーディオモードを切り替えます |
+| `CLICKY_TOGGLE` | `CK_TOGG` | オーディオクリックモードを切り替えます |
+| `CLICKY_UP` | `CK_UP` | クリック音の周波数を増やします |
+| `CLICKY_DOWN` | `CK_DOWN` | クリック音の周波数を減らします |
+| `CLICKY_RESET` | `CK_RST` | 周波数をデフォルトに再設定します |
+| `MU_ON` | | 音楽モードをオンにします |
+| `MU_OFF` | | 音楽モードをオフにします |
+| `MU_TOG` | | 音楽モードを切り替えます |
+| `MU_MOD` | | 音楽モードを循環します |
+
+<!-- FIXME: this formatting needs work
+
+## Audio
+
+```c
+#ifdef AUDIO_ENABLE
+ AU_ON,
+ AU_OFF,
+ AU_TOG,
+
+ #ifdef FAUXCLICKY_ENABLE
+ FC_ON,
+ FC_OFF,
+ FC_TOG,
+ #endif
+
+ // Music mode on/off/toggle
+ MU_ON,
+ MU_OFF,
+ MU_TOG,
+
+ // Music voice iterate
+ MUV_IN,
+ MUV_DE,
+#endif
+```
+
+### Midi
+
+#if !MIDI_ENABLE_STRICT || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
+ MI_ON, // send midi notes when music mode is enabled
+ MI_OFF, // don't send midi notes when music mode is enabled
+#endif
+
+MIDI_TONE_MIN,
+MIDI_TONE_MAX
+
+MI_C = MIDI_TONE_MIN,
+MI_Cs,
+MI_Db = MI_Cs,
+MI_D,
+MI_Ds,
+MI_Eb = MI_Ds,
+MI_E,
+MI_F,
+MI_Fs,
+MI_Gb = MI_Fs,
+MI_G,
+MI_Gs,
+MI_Ab = MI_Gs,
+MI_A,
+MI_As,
+MI_Bb = MI_As,
+MI_B,
+
+MIDI_TONE_KEYCODE_OCTAVES > 1
+
+where x = 1-5:
+MI_C_x,
+MI_Cs_x,
+MI_Db_x = MI_Cs_x,
+MI_D_x,
+MI_Ds_x,
+MI_Eb_x = MI_Ds_x,
+MI_E_x,
+MI_F_x,
+MI_Fs_x,
+MI_Gb_x = MI_Fs_x,
+MI_G_x,
+MI_Gs_x,
+MI_Ab_x = MI_Gs_x,
+MI_A_x,
+MI_As_x,
+MI_Bb_x = MI_As_x,
+MI_B_x,
+
+MI_OCT_Nx 1-2
+MI_OCT_x 0-7
+MIDI_OCTAVE_MIN = MI_OCT_N2,
+MIDI_OCTAVE_MAX = MI_OCT_7,
+MI_OCTD, // octave down
+MI_OCTU, // octave up
+
+MI_TRNS_Nx 1-6
+MI_TRNS_x 0-6
+MIDI_TRANSPOSE_MIN = MI_TRNS_N6,
+MIDI_TRANSPOSE_MAX = MI_TRNS_6,
+MI_TRNSD, // transpose down
+MI_TRNSU, // transpose up
+
+MI_VEL_x 1-10
+MIDI_VELOCITY_MIN = MI_VEL_1,
+MIDI_VELOCITY_MAX = MI_VEL_9,
+MI_VELD, // velocity down
+MI_VELU, // velocity up
+
+MI_CHx 1-16
+MIDI_CHANNEL_MIN = MI_CH1
+MIDI_CHANNEL_MAX = MI_CH16,
+MI_CHD, // previous channel
+MI_CHU, // next channel
+
+MI_ALLOFF, // all notes off
+
+MI_SUS, // sustain
+MI_PORT, // portamento
+MI_SOST, // sostenuto
+MI_SOFT, // soft pedal
+MI_LEG, // legato
+
+MI_MOD, // modulation
+MI_MODSD, // decrease modulation speed
+MI_MODSU, // increase modulation speed
+#endif // MIDI_ADVANCED
+
+-->
diff --git a/docs/ja/feature_auto_shift.md b/docs/ja/feature_auto_shift.md
new file mode 100644
index 0000000000..c230f93815
--- /dev/null
+++ b/docs/ja/feature_auto_shift.md
@@ -0,0 +1,135 @@
+# 自動シフト: なぜシフトキーが必要ですか?
+
+<!---
+ original document: 5d5ff80:docs/feature_auto_shift.md
+ git diff 5d5ff80 HEAD -- docs/feature_auto_shift.md | cat
+-->
+
+キーをタップすると、その文字を取得します。キーをタップするが、*わずかに*長く押し続けると、シフト状態になります。ほら!シフトキーは必要ありません!
+
+## なぜ自動シフトなのですか?
+
+多くの人が腱鞘炎などの症状に苦しんでいます。一般的な原因は、指を繰り返し長い距離を伸ばすことです。私たちはキーボード上でシフトキーに手を伸ばすためにあまりにも頻繁に小指を伸ばします。自動シフトキーはそれを軽減しようとしています。
+
+## どのように動作しますか?
+
+キーをタップする時に、キーを放す前にほんの短い間押したままにします。この押したままにする時間は全ての人にとって異なる長さです。自動シフトは、定数 `AUTO_SHIFT_TIMEOUT` を定義し、これは普段の押された状態の時間の2倍に通常は設定されます。タイマーは、キーを押す時に開始され、キーを放す時に止まります。押された時間が `AUTO_SHIFT_TIMEOUT` 以上の場合に、キーのシフトバージョンが発行されます。時間が `AUTO_SHIFT_TIMEOUT` 時間よりも短い場合は、通常の状態が発行されます。
+
+## 自動シフトには制限がありますか?
+
+残念ながらあります。
+
+1. キーリピートが動作しなくなります。例えば、20個の 'a' 文字が必要な場合、'a' キーを1、2秒押し続けるかもしれません。オペレーティングシステムに押されたキーの状態を発行する代わりに押された時間を計るので、自動シフトでは動作しません。
+2. シフトをするつもりがない時にシフトされた文字を取得し、シフトしたい時にそうではない他の文字を取得するでしょう。これは結局は練習になります。急いでいる時は、シフトされたバージョンのために十分長くキーを押したと思うかもしれませんが、そうではありませんでした。一方、キーをタップしていると思うかもしれませんが、実際には予想よりも少し長い間押していました。
+
+## どうやって自動シフトを有効にしますか?
+
+キーマップフォルダの `rules.mk` に追加します:
+
+ AUTO_SHIFT_ENABLE = yes
+
+`rules.mk` が存在しない場合、それを作成することができます。
+
+そして自動シフトキーを有効にした新しいファームウェアをコンパイルしてインストールします!以上です!
+
+## モディファイア
+
+デフォルトで、1つ以上のモディファイアと一緒にキーが押されると自動シフトは無効になります。従って、本当に長い間 Ctrl+A を保持しても、Ctrl+Shift+A と同じではありません。
+
+`config.h` に定義を追加することで、モディファイアの自動シフトを再度有効にすることができます
+
+```c
+#define AUTO_SHIFT_MODIFIERS
+```
+
+この場合、`AUTO_SHIFT_TIMEOUT` を超えて押された Ctrl+A は Ctrl+Shift+A として送信されます
+
+
+## 自動シフトの設定
+
+必要に応じて、自動シフトの挙動を変更することができる幾つかの設定があります。キーマップフォルダにある `config.h` に様々な変数を設定することで行われます。`config.h` ファイルが存在しない場合、それを作成することができます。
+
+例
+
+```c
+#pragma once
+
+#define AUTO_SHIFT_TIMEOUT 150
+#define NO_AUTO_SHIFT_SPECIAL
+```
+
+### AUTO_SHIFT_TIMEOUT (単位: ミリ秒)
+
+これは、シフトされた状態を取得するためにどれだけ長くキーを押し続けなければならないかを制御します。
+明らかにこれは人によって異なります。一般的な人にとって、135 から 150 の設定がうまく機能します。ただし、少なくとも 175 の値から開始する必要があります。これはデフォルト値です。その後、ここから下げていきます。間違って検出することなくシフトされた状態を取得するのに必要な、最も短い時間を得るという考え方です。
+
+完璧に動作するまで、いろいろな値を試してみます。多くの人は、全てが所定の値で適切に動作するものの、時々、1つあるいは2つのキーがシフト状態を発行することが分かるでしょう。これは単に習慣と、幾つかのキーを他のキーよりも少し長く押し続けることによるものです。この値を見つけたら、問題のキーを通常よりも少し早くタップするとともに、その値を設定します。
+
+?> 自動シフトには、この値を素早く取得するのに役立つ3つの特別なキーがあります。詳細は「自動シフトのセットアップ」を見てください!
+
+### NO_AUTO_SHIFT_SPECIAL (単純にこのように定義します)
+
+-\_, =+, [{, ]}, ;:, '", ,<, .> および /? を含む特殊キーを自動シフトしません
+
+### NO_AUTO_SHIFT_NUMERIC (単純にこのように定義します)
+
+0から9までの数字キーを自動シフトしません。
+
+### NO_AUTO_SHIFT_ALPHA (単純にこのように定義します)
+
+AからZを含むアルファベット文字を自動シフトしません。
+
+## 自動シフトセットアップの使用
+
+これにより、`AUTO_SHIFT_TIMEOUT` で設定している時間を一時的に増減させたり報告するために、3つのキーを定義することができます。
+
+### セットアップ
+
+3つのキーを一時的にキーマップにマップします:
+
+| キー名 | 説明 |
+|----------|-----------------------------------------------------|
+| KC_ASDN | 自動シフトタイムアウト変数を下げる |
+| KC_ASUP | 自動シフトタイムアウト変数を上げる |
+| KC_ASRP | 現在の自動シフトタイムアウト値を報告する |
+| KC_ASON | 自動シフト機能をオンにする |
+| KC_ASOFF | 自動シフト機能をオフにする |
+| KC_ASTG | 自動シフト機能の状態を切り替える |
+
+新しいファームウェアをコンパイルしてアップロードします。
+
+### 使い方
+
+これらのテスト中は、完全に普段通り入力する必要があり、意図的にシフトされたキーを使わずに入力するように注意する必要があります。
+
+1. アルファベットの複数の文を入力します。
+2. 大文字に注意してください。
+3. 大文字が存在しない場合は、自動シフトタイムアウト値を減らすために `KC_ASDN` にマップしたキーを押し、ステップ1に戻ります。
+4. 大文字が幾つかある場合は、押す時間を短くしてこれらのキーをタップする必要があるか、あるいはタイムアウトを増やす必要があるかを決定します。
+5. タイムアウトを増やすことに決めた場合は、`KC_ASUP` にマップしたキーを押し、ステップ1に戻ります。
+6. 結果に満足したら、`KC_ASRP` にマップしたキーを押します。キーボードは `AUTO_SHIFT_TIMEOUT` の値を自動的に入力します。
+7. 報告された値で `config.h` の `AUTO_SHIFT_TIMEOUT` を更新します。
+8. `config.h` から `AUTO_SHIFT_SETUP` を削除します。
+9. `KC_ASDN`、`KC_ASUP` および `KC_ASRP` のキーバインディングを削除します。
+10. 新しいファームウェアをコンパイルしてアップロードします。
+
+#### 実行例
+
+ hello world. my name is john doe. i am a computer programmer playing with
+ keyboards right now.
+
+ [KC_ASDN を何度か押します]
+
+ heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
+ KEYboArDS RiGHT NOw.
+
+ [KC_ASUP を数回押します]
+
+ hello world. my name is john Doe. i am a computer programmer playing with
+ keyboarDs right now.
+
+ [KC_ASRPを押します]
+
+ 115
+
+キーボードは現在の `AUTO_SHIFT_TIMEOUT` 値を表す `115` を入力しました。これで設定が完了しました!テスト中に現れる *D* キーを少し練習してください。それで完璧です。
diff --git a/docs/ja/feature_backlight.md b/docs/ja/feature_backlight.md
new file mode 100644
index 0000000000..e722656b79
--- /dev/null
+++ b/docs/ja/feature_backlight.md
@@ -0,0 +1,253 @@
+# バックライト
+
+<!---
+ original document: 5d5ff80:docs/feature_backlight.md
+ git diff 5d5ff80 HEAD -- docs/feature_backlight.md | cat
+-->
+
+多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
+
+QMK は *パルス幅変調*(*Pulse Width Modulation*) すなわち PWM として知られている技術で急速にオンおよびオフを切り替えることで、これらの LED の輝度を制御できます。PWM 信号のデューティサイクルを変えることで、調光の錯覚を起こすことができます。
+
+MCU は、GPIO ピンにはそんなに電流を供給できません。MCU から直接バックライトに給電せずに、バックライトピンは LED への電力を切り替えるトランジスタあるいは MOSFET に接続されます。
+
+## 機能の設定
+
+ほとんどのキーボードではバックライトをサポートしている場合にデフォルトで有効になっていますが、もし機能しない場合は `rules.mk` が以下を含んでいることを確認してください:
+
+```makefile
+BACKLIGHT_ENABLE = yes
+```
+
+## キーコード
+有効にすると、以下のキーコードを使ってバックライトレベルを変更することができます。
+
+| キー | 説明 |
+|---------|------------------------------------------|
+| `BL_TOGG` | バックライトをオンあるいはオフにする |
+| `BL_STEP` | バックライトレベルを循環する |
+| `BL_ON` | バックライトを最大輝度に設定する |
+| `BL_OFF` | バックライトをオフにする |
+| `BL_INC` | バックライトレベルを上げる |
+| `BL_DEC` | バックライトレベルを下げる |
+| `BL_BRTG` | バックライトの明滅動作を切り替える |
+
+## バックライト関数群
+
+| 関数 | 説明 |
+|----------|-----------------------------------------------------------|
+| `backlight_toggle()` | バックライトをオンあるいはオフにする |
+| `backlight_enable()` | バックライトをオンにする |
+| `backlight_disable()` | バックライトをオフにする |
+| `backlight_step()` | バックライトレベルを循環する |
+| `backlight_increase()` | バックライトレベルを上げる |
+| `backlight_decrease()` | バックライトレベルを下げる |
+| `backlight_level(x)` | バックライトのレベルを特定のレベルに設定する |
+| `get_backlight_level()` | 現在のバックライトレベルを返す |
+| `is_backlight_enabled()` | バックライトが現在オンかどうかを返す |
+
+### バックライトの明滅動作の関数群
+
+| 関数 | 説明 |
+|----------|---------------------------------------------------|
+| `breathing_toggle()` | バックライトの明滅動作をオンまたはオフにする |
+| `breathing_enable()` | バックライトの明滅動作をオンにする |
+| `breathing_disable()` | バックライトの明滅動作をオフにする |
+
+## ドライバの設定
+
+どのドライバを使うかを選択するには、以下を使って `rules.mk` を設定します:
+
+```makefile
+BACKLIGHT_DRIVER = software # 有効なドライバの値は 'pwm,software,no' です
+```
+
+各ドライバについてのヘルプは以下を見てください。
+
+## 共通のドライバ設定
+
+バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
+
+| 定義 | デフォルト | 説明 |
+|---------------------|-------------|--------------------------------------------------------------------------------------|
+| `BACKLIGHT_LEVELS` | `3` | 輝度のレベルの数 (オフを除いて最大 31) |
+| `BACKLIGHT_CAPS_LOCK` | *定義なし* | バックライトを使って Caps Lock のインジケータを有効にする (専用 LED の無いキーボードのため) |
+| `BACKLIGHT_BREATHING` | *定義なし* | サポートされる場合は、バックライトの明滅動作を有効にする |
+| `BREATHING_PERIOD` | `6` | 各バックライトの "明滅" の長さ(秒) |
+| `BACKLIGHT_ON_STATE` | `0` | バックライトが "オン" の時のバックライトピンの状態 - high の場合は `1`、low の場合は `0` |
+
+### バックライトオン状態
+
+ほとんどのバックライトの回路は N チャンネルの MOSFET あるいは NPN トランジスタによって駆動されます。これは、トランジスタを*オン*にして LED を点灯させるには、ゲートまたはベースに接続されているバックライトピンを *high* に駆動する必要があることを意味します。
+ただし、P チャンネルの MOSFET あるいは PNP トランジスタが使われる場合があります。この場合、トランジスタがオンの時、ピンは代わりに *low* で駆動されます。
+
+この機能は `BACKLIGHT_ON_STATE` 定義することでキーボードレベルで設定されます。
+
+## AVR ドライバ
+
+AVR ボードでは、デフォルトのドライバは現在のところ最善のシナリオを選択するために構成を探っています。ドライバはデフォルトで設定されますが、rules.mk 内の同等の設定は以下の通りです:
+```makefile
+BACKLIGHT_DRIVER = pwm
+```
+
+### 注意事項
+
+ハードウェア PWM は以下の表に従ってサポートされます:
+
+| バックライトピン | AT90USB64/128 | ATmega16/32U4 | ATmega16/32U2 | ATmega32A | ATmega328P |
+|-------------|-------------|-------------|-------------|---------|----------|
+| `B1` | | | | | Timer 1 |
+| `B2` | | | | | Timer 1 |
+| `B5` | Timer 1 | Timer 1 | | | |
+| `B6` | Timer 1 | Timer 1 | | | |
+| `B7` | Timer 1 | Timer 1 | Timer 1 | | |
+| `C4` | Timer 3 | | | | |
+| `C5` | Timer 3 | | Timer 1 | | |
+| `C6` | Timer 3 | Timer 3 | Timer 1 | | |
+| `D4` | | | | Timer 1 | |
+| `D5` | | | | Timer 1 | |
+
+他の全てのピンはソフトウェア PWM を使います。[オーディオ](ja/feature_audio.md)機能が無効あるいは1つのタイマだけを使っている場合は、ハードウェアタイマによってバックライト PWM を引き起こすことができます:
+
+| オーディオピン | オーディオタイマ | ソフトウェア PWM タイマ |
+|---------|-----------|------------------|
+| `C4` | Timer 3 | Timer 1 |
+| `C5` | Timer 3 | Timer 1 |
+| `C6` | Timer 3 | Timer 1 |
+| `B5` | Timer 1 | Timer 3 |
+| `B6` | Timer 1 | Timer 3 |
+| `B7` | Timer 1 | Timer 3 |
+
+両方のタイマーがオーディオのために使われている場合、バックライト PWM はハードウェアタイマを使いませんが、代わりにマトリックススキャンの間に引き起こされます。この場合、PWM の計算は十分なタイミングの精度で呼ばれないかもしれないため、バックライトの明滅はサポートされず、バックライトもちらつくかもしれません。
+
+### AVR 設定
+
+バックライトの挙動を変更するには、`config.h` の中で以下の `#define` をします:
+
+| 定義 | デフォルト | 説