From 5aa01c080e4ee37aea65fa8c91d8898a48e53153 Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Fri, 31 Jul 2020 00:18:34 +0900 Subject: [PATCH 1/6] add ref_functions.md translation --- docs/ja/ref_functions.md | 124 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 docs/ja/ref_functions.md diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md new file mode 100644 index 000000000000..a740fc5e3a4b --- /dev/null +++ b/docs/ja/ref_functions.md @@ -0,0 +1,124 @@ +# キーボードをより良くするための便利なコア関数のリスト + + + +QMK には信じられないほど便利な、またあなたが望んでいた機能を少し追加する隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 + +## (OLKB) Tri レイヤー :id=olkb-tri-layers + +目的に応じて、実際に使うことができる別個の関数があります。 + +### `update_tri_layer(x, y, z)` + +最初は `update_tri_layer(x, y, z)` 関数です。この関数はレイヤー `x` と `y` の両方がオンになっているかどうかを調べます。両方ともオンの場合は、レイヤー `z` がオンになります。それ以外の場合、`x` と `y` の両方がオンではない(一方のみがオン、またはどちらもオンでない)場合は、レイヤー `z` をオフにします。 + +この関数は、この機能を持つ特定のキーを作成したいが、他のレイヤーのキーコードではそうしたくない場合に便利です。 + +#### 例 + +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +} +``` + +### `update_tri_layer_state(state, x, y, z)` +もう1つの関数は `update_tri_layer_state(state, x, y, z)` です。この関数は [`layer_state_set_*` 関数](custom_quantum_functions.md#layer-change-code)から呼び出されることを意図しています。これは、キーコードを使ってレイヤーを変更するたびに、これがチェックされることを意味します。したがって、`LT(layer, kc)` を使ってレイヤーを変更すると、同じレイヤーチェックが引き起こされます。 + +このメソッドの注意点は、`x` および `y` レイヤーをオンにしないと、`z` レイヤーにアクセスできないことです。レイヤー `z` のみをアクティブにしようとすると、このコードが実行され、使用前にレイヤー `z` がオフになるからです。 + +#### 例 + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} +``` + +あるいは、すぐに値を"返す"必要はありません。複数の tri レイヤーを追加、あるいは追加の効果を追加する場合に便利です。 + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); + state = update_tri_layer_state(state, _RAISE, _SYMB, _SPECIAL); + return state; +} +``` + +## 永続的なデフォルトレイヤーの設定 + +デフォルトレイヤーを設定して、キーボードを取り外しても保持されるようにしたいですか?そうであれば、これがそのための関数です。 + +これを使うには、`set_single_persistent_default_layer(layer)` を使います。レイヤーに名前が定義されている場合は、代わりにそれを使うことができます (_QWERTY、_DVORAK、_COLEMAK など)。 + +これは、デフォルトレイヤーを設定し、永続設定が更新され、もし [Audio](feature_audio.md) がキーボードで有効でデフォルトレイヤーのサウンドセットがある場合は、曲を再生します。 + +デフォルトレイヤーの音を設定するには、以下のように `config.h` ファイルに定義する必要があります。 + +```c +#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +``` + + +?> [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) に使用できる多くの定義済みの曲があります。 + +## キーボードのリセット + +使用できる `RESET` quantum キーコードがあります。ただし、キーを個別に押すのではなくマクロの一部としてリセットしたい場合は、そうすることができます。 + +そのためには、`reset_keyboard()` を関数またはマクロに追加すると、ブートローダがリセットされます。 + +## EEPROM (永続ストレージ)の消去 + +オーディオ、RGB アンダーグロー、バックライト、キーの動作に問題がある場合は、EEPROM (永続的な設定のストレージ)をリセットすることができます。ブートマジックはこれを行う方法の1つですが、有効になっていない場合はカスタムマクロを使って行うことができます。 + +EEPROM を消去するには、関数またはマクロから `eeconfig_init()` を実行し、ほとんどの設定をデフォルトにリセットします。 + +## タップランダムキー + +ランダムな文字をホストコンピュータに送信する場合は、`tap_random_base64()` 関数を使うことができます。これは[疑似乱数的に](https://en.wikipedia.org/wiki/Pseudorandom_number_generator)0から63の数字を選択し、その選択に基づいてキー押下を送信します。(0–25 は `A`–`Z`、26–51 は `a`–`z`、52–61 は `0`–`9`、62 は `+`、63 は `/`)。 + +?> 言うまでもないですが、これはランダムに Base64 キーあるいはパスワードを生成する暗号的に安全な方法では_ありません_。 + +## ソフトウェアタイマー + +タイマーを開始し、時間固有のイベントの値を読み取ることができます。以下は例です: + +```c +static uint16_t key_timer; +key_timer = timer_read(); + +if (timer_elapsed(key_timer) < 100) { + // 100ms 未満が経過した場合に何かを行う +} else { + // 100ms 以上が経過した場合に何かを行う +} +``` From 61f1ed47d741d8babf2c8c65a7204d7775f99053 Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Fri, 31 Jul 2020 00:21:21 +0900 Subject: [PATCH 2/6] modify internal link for ja --- docs/ja/ref_functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index a740fc5e3a4b..34eb35b490be 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -48,7 +48,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { ``` ### `update_tri_layer_state(state, x, y, z)` -もう1つの関数は `update_tri_layer_state(state, x, y, z)` です。この関数は [`layer_state_set_*` 関数](custom_quantum_functions.md#layer-change-code)から呼び出されることを意図しています。これは、キーコードを使ってレイヤーを変更するたびに、これがチェックされることを意味します。したがって、`LT(layer, kc)` を使ってレイヤーを変更すると、同じレイヤーチェックが引き起こされます。 +もう1つの関数は `update_tri_layer_state(state, x, y, z)` です。この関数は [`layer_state_set_*` 関数](ja/custom_quantum_functions.md#layer-change-code)から呼び出されることを意図しています。これは、キーコードを使ってレイヤーを変更するたびに、これがチェックされることを意味します。したがって、`LT(layer, kc)` を使ってレイヤーを変更すると、同じレイヤーチェックが引き起こされます。 このメソッドの注意点は、`x` および `y` レイヤーをオンにしないと、`z` レイヤーにアクセスできないことです。レイヤー `z` のみをアクティブにしようとすると、このコードが実行され、使用前にレイヤー `z` がオフになるからです。 @@ -76,7 +76,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { これを使うには、`set_single_persistent_default_layer(layer)` を使います。レイヤーに名前が定義されている場合は、代わりにそれを使うことができます (_QWERTY、_DVORAK、_COLEMAK など)。 -これは、デフォルトレイヤーを設定し、永続設定が更新され、もし [Audio](feature_audio.md) がキーボードで有効でデフォルトレイヤーのサウンドセットがある場合は、曲を再生します。 +これは、デフォルトレイヤーを設定し、永続設定が更新され、もし [Audio](ja/feature_audio.md) がキーボードで有効でデフォルトレイヤーのサウンドセットがある場合は、曲を再生します。 デフォルトレイヤーの音を設定するには、以下のように `config.h` ファイルに定義する必要があります。 From d28ea5459718b52ce45a916bb627d7b1ac792885 Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Sun, 2 Aug 2020 01:26:39 +0900 Subject: [PATCH 3/6] update based on comment --- docs/ja/ref_functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index 34eb35b490be..9f27a3069f26 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -7,7 +7,7 @@ QMK には信じられないほど便利な、またあなたが望んでいた機能を少し追加する隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 -## (OLKB) Tri レイヤー :id=olkb-tri-layers +## (OLKB) トライレイヤー :id=olkb-tri-layers 目的に応じて、実際に使うことができる別個の関数があります。 @@ -60,7 +60,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { } ``` -あるいは、すぐに値を"返す"必要はありません。複数の tri レイヤーを追加、あるいは追加の効果を追加する場合に便利です。 +あるいは、すぐに値を「返す」必要はありません。複数のトライレイヤーを追加、あるいは追加の効果を追加する場合に便利です。 ```c layer_state_t layer_state_set_user(layer_state_t state) { @@ -76,7 +76,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { これを使うには、`set_single_persistent_default_layer(layer)` を使います。レイヤーに名前が定義されている場合は、代わりにそれを使うことができます (_QWERTY、_DVORAK、_COLEMAK など)。 -これは、デフォルトレイヤーを設定し、永続設定が更新され、もし [Audio](ja/feature_audio.md) がキーボードで有効でデフォルトレイヤーのサウンドセットがある場合は、曲を再生します。 +これは、デフォルトレイヤーを設定し、永続設定が更新され、もし [オーディオ](ja/feature_audio.md) がキーボードで有効でデフォルトレイヤーの音が設定されている場合は、曲を再生します。 デフォルトレイヤーの音を設定するには、以下のように `config.h` ファイルに定義する必要があります。 @@ -106,7 +106,7 @@ EEPROM を消去するには、関数またはマクロから `eeconfig_init()` ランダムな文字をホストコンピュータに送信する場合は、`tap_random_base64()` 関数を使うことができます。これは[疑似乱数的に](https://en.wikipedia.org/wiki/Pseudorandom_number_generator)0から63の数字を選択し、その選択に基づいてキー押下を送信します。(0–25 は `A`–`Z`、26–51 は `a`–`z`、52–61 は `0`–`9`、62 は `+`、63 は `/`)。 -?> 言うまでもないですが、これはランダムに Base64 キーあるいはパスワードを生成する暗号的に安全な方法では_ありません_。 +?> 言うまでもないですが、これはランダムに Base64 キーあるいはパスワードを生成する暗号的に安全な方法では _ありません_。 ## ソフトウェアタイマー From 902d33f9067aa6a2bf28384759089b3b3b3a76a8 Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Wed, 5 Aug 2020 23:37:02 +0900 Subject: [PATCH 4/6] reflect #9892 change --- docs/ja/ref_functions.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index 9f27a3069f26..687f09cbfc2f 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -1,8 +1,8 @@ # キーボードをより良くするための便利なコア関数のリスト QMK には信じられないほど便利な、またあなたが望んでいた機能を少し追加する隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 @@ -31,7 +31,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -41,7 +40,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; } return true; } From b4881bbd246d6e31a3a0d1b11a095933abfdc642 Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Mon, 17 Aug 2020 07:14:01 +0900 Subject: [PATCH 5/6] update based on comment --- docs/ja/ref_functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index 687f09cbfc2f..75a0747ff241 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -115,8 +115,8 @@ static uint16_t key_timer; key_timer = timer_read(); if (timer_elapsed(key_timer) < 100) { - // 100ms 未満が経過した場合に何かを行う + // 経過時間が 100ms 未満の場合に何かを行う } else { - // 100ms 以上が経過した場合に何かを行う + // 経過時間が 100ms 以上の場合に何かを行う } ``` From 14f46194e10b43d9c9c6aa9c51307e55b7017a6b Mon Sep 17 00:00:00 2001 From: umi-umi <57262844+umi-umi@users.noreply.github.com> Date: Sun, 30 Aug 2020 06:03:15 +0900 Subject: [PATCH 6/6] update based on comment --- docs/ja/ref_functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ja/ref_functions.md b/docs/ja/ref_functions.md index 75a0747ff241..e9c45fdecc31 100644 --- a/docs/ja/ref_functions.md +++ b/docs/ja/ref_functions.md @@ -5,7 +5,7 @@ git diff 0.9.47 HEAD -- docs/ref_functions.md | cat --> -QMK には信じられないほど便利な、またあなたが望んでいた機能を少し追加する隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 +QMK には、信じられないほど便利な、またはあなたが望んでいた機能を少し追加する、隠された関数がたくさんあります。特定の機能に固有の関数はそれぞれの機能のページにあるため、ここには含まれていません。 ## (OLKB) トライレイヤー :id=olkb-tri-layers