diff options
| author | ymzcdg <49898694+ymzcdg@users.noreply.github.com> | 2019-06-05 02:06:17 +0800 |
|---|---|---|
| committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-06-04 11:06:17 -0700 |
| commit | e0a0d80bd329b4a289e3c4f817c96857c25b0f16 (patch) | |
| tree | 88d7f5693ec3afc041589d7968da4be595c897ad | |
| parent | e7711b3b665c7df0a2a1d7272580cc01be28590d (diff) | |
| download | qmk_firmware-e0a0d80bd329b4a289e3c4f817c96857c25b0f16.tar.gz qmk_firmware-e0a0d80bd329b4a289e3c4f817c96857c25b0f16.zip | |
docs to Mandarin Chinese (#5960)
* faq_general.md to Chinese
faq_general.md to Chinese
faq finished
* custom_quantum_functions.md to Chinese
custom_quantum_functions.md to Chinese
* custom_quantum_functions.md fix
custom_quantum_functions.md fix
* custom_quantum_functions.md fix translate
custom_quantum_functions.md fix translate
* !ver.English! _summary.md bug fix
_summary.md bug fix of English doc. add".md" behind "feature_combo"
* !ver.English! custom_quantum_functions.md fix#5869
custom_quantum_functions.md in English : delete redundant "is" . issue#5869
* !ver.English! how_keyboards_work.md link fix
change
https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input
to
https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_input
"#Hexadecimal_code_input" not exist
* !English! how_keyboards_work.md add missing "t"
Tied to a specific OS a a time (need recompilation when changing OS);
change to
Tied to a specific OS at a time (need recompilation when changing OS);
* _summary.md improve translation
_summary.md improve translation
* reference_glossary.md into Chinese
reference_glossary.md into Chinese
术语表翻译,这个术语表英文版似乎不太全,应该补充英文版,并在中文版添加其他具有中国特色的术语。
| -rw-r--r-- | docs/custom_quantum_functions.md | 2 | ||||
| -rw-r--r-- | docs/how_keyboards_work.md | 4 | ||||
| -rw-r--r-- | docs/zh-cn/_summary.md | 66 | ||||
| -rw-r--r-- | docs/zh-cn/custom_quantum_functions.md | 490 | ||||
| -rw-r--r-- | docs/zh-cn/faq_general.md | 19 | ||||
| -rw-r--r-- | docs/zh-cn/reference_glossary.md | 170 |
6 files changed, 715 insertions, 36 deletions
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 6287b9530..7be82c650 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md | |||
| @@ -267,7 +267,7 @@ You should use this function if you need custom matrix scanning code. It can als | |||
| 267 | 267 | ||
| 268 | If the board supports it, it can be "idled", by stopping a number of functions. A good example of this is RGB lights or backlights. This can save on power consumption, or may be better behavior for your keyboard. | 268 | If the board supports it, it can be "idled", by stopping a number of functions. A good example of this is RGB lights or backlights. This can save on power consumption, or may be better behavior for your keyboard. |
| 269 | 269 | ||
| 270 | This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system is board is idled and when it wakes up, respectively. | 270 | This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system board is idled and when it wakes up, respectively. |
| 271 | 271 | ||
| 272 | 272 | ||
| 273 | ### Example suspend_power_down_user() and suspend_wakeup_init_user() Implementation | 273 | ### Example suspend_power_down_user() and suspend_wakeup_init_user() Implementation |
diff --git a/docs/how_keyboards_work.md b/docs/how_keyboards_work.md index 0772f055d..5697a2187 100644 --- a/docs/how_keyboards_work.md +++ b/docs/how_keyboards_work.md | |||
| @@ -63,10 +63,10 @@ You may wonder why a keyboard layout containing all of Unicode is not devised th | |||
| 63 | 63 | ||
| 64 | ## How to (Maybe) Enter Unicode Characters | 64 | ## How to (Maybe) Enter Unicode Characters |
| 65 | 65 | ||
| 66 | You can have the firmware send *sequences of keys* to use the [software Unicode Input Method](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input) of the target operating system, thus effectively entering characters independently of the layout defined in the OS. | 66 | You can have the firmware send *sequences of keys* to use the [software Unicode Input Method](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_input) of the target operating system, thus effectively entering characters independently of the layout defined in the OS. |
| 67 | 67 | ||
| 68 | Yet, it does come with multiple disadvantages: | 68 | Yet, it does come with multiple disadvantages: |
| 69 | 69 | ||
| 70 | - Tied to a specific OS a a time (need recompilation when changing OS); | 70 | - Tied to a specific OS at a time (need recompilation when changing OS); |
| 71 | - Within a given OS, does not work in all software; | 71 | - Within a given OS, does not work in all software; |
| 72 | - Limited to a subset of Unicode on some systems. | 72 | - Limited to a subset of Unicode on some systems. |
diff --git a/docs/zh-cn/_summary.md b/docs/zh-cn/_summary.md index df25a3ccd..b0d9f1c06 100644 --- a/docs/zh-cn/_summary.md +++ b/docs/zh-cn/_summary.md | |||
| @@ -7,27 +7,27 @@ | |||
| 7 | * [学习资源](newbs_learn_more_resources.md) | 7 | * [学习资源](newbs_learn_more_resources.md) |
| 8 | 8 | ||
| 9 | * [QMK基础](README.md) | 9 | * [QMK基础](README.md) |
| 10 | * [QMK 简介](getting_started_introduction.md) | 10 | * [QMK简介](getting_started_introduction.md) |
| 11 | * [贡献 QMK](contributing.md) | 11 | * [向QMK贡献](contributing.md) |
| 12 | * [如何使用Github](getting_started_github.md) | 12 | * [如何使用Github](getting_started_github.md) |
| 13 | * [获得帮助](getting_started_getting_help.md) | 13 | * [获得帮助](getting_started_getting_help.md) |
| 14 | 14 | ||
| 15 | * [问题解答](faq.md) | 15 | * [问题解答](faq.md) |
| 16 | * [一般问题](faq_general.md) | 16 | * [一般问题](faq_general.md) |
| 17 | * [构建/编译QMK](faq_build.md) | 17 | * [构建/编译](faq_build.md) |
| 18 | * [调试/故障排除 QMK](faq_debug.md) | 18 | * [调试/故障排除](faq_debug.md) |
| 19 | * [键盘局](faq_keymap.md) | 19 | * [键盘映](faq_keymap.md) |
| 20 | 20 | ||
| 21 | * 详细指南 | 21 | * 详细指南 |
| 22 | * [安装构建工具](getting_started_build_tools.md) | 22 | * [安装构建工具](getting_started_build_tools.md) |
| 23 | * [浪者南](getting_started_vagrant.md) | 23 | * [vagrant指南](getting_started_vagrant.md) |
| 24 | * [构建/编译指令](getting_started_make_guide.md) | 24 | * [构建/编译指令](getting_started_make_guide.md) |
| 25 | * [刷新固件](flashing.md) | 25 | * [刷新固件](flashing.md) |
| 26 | * [定制功能](custom_quantum_functions.md) | 26 | * [定制功能](custom_quantum_functions.md) |
| 27 | * [局概述](keymap.md) | 27 | * [映概述](keymap.md) |
| 28 | 28 | ||
| 29 | * [硬件](hardware.md) | 29 | * [硬件](hardware.md) |
| 30 | * [AVR 处理器](hardware_avr.md) | 30 | * [AVR处理器](hardware_avr.md) |
| 31 | * [驱动](hardware_drivers.md) | 31 | * [驱动](hardware_drivers.md) |
| 32 | 32 | ||
| 33 | * 参考 | 33 | * 参考 |
| @@ -35,8 +35,8 @@ | |||
| 35 | * [配置选项](config_options.md) | 35 | * [配置选项](config_options.md) |
| 36 | * [键码](keycodes.md) | 36 | * [键码](keycodes.md) |
| 37 | * [记录最佳实践](documentation_best_practices.md) | 37 | * [记录最佳实践](documentation_best_practices.md) |
| 38 | * [文档南](documentation_templates.md) | 38 | * [文档板](documentation_templates.md) |
| 39 | * [汇表](reference_glossary.md) | 39 | * [术表](reference_glossary.md) |
| 40 | * [单元测试](unit_testing.md) | 40 | * [单元测试](unit_testing.md) |
| 41 | * [有用的功能](ref_functions.md) | 41 | * [有用的功能](ref_functions.md) |
| 42 | * [配置器支持](reference_configurator_support.md) | 42 | * [配置器支持](reference_configurator_support.md) |
| @@ -44,35 +44,35 @@ | |||
| 44 | 44 | ||
| 45 | * [特性](features.md) | 45 | * [特性](features.md) |
| 46 | * [基本键码](keycodes_basic.md) | 46 | * [基本键码](keycodes_basic.md) |
| 47 | * [US ANSI 控制键](keycodes_us_ansi_shifted.md) | 47 | * [US ANSI控制码](keycodes_us_ansi_shifted.md) |
| 48 | * [量子键码](quantum_keycodes.md) | 48 | * [量子键码](quantum_keycodes.md) |
| 49 | * [高级键码](feature_advanced_keycodes.md) | 49 | * [高级键码](feature_advanced_keycodes.md) |
| 50 | * [音频](feature_audio.md) | 50 | * [音频](feature_audio.md) |
| 51 | * [自动控制](feature_auto_shift.md) | 51 | * [自动shift](feature_auto_shift.md) |
| 52 | * [背光](feature_backlight.md) | 52 | * [背光](feature_backlight.md) |
| 53 | * [蓝牙](feature_bluetooth.md) | 53 | * [蓝牙](feature_bluetooth.md) |
| 54 | * [Bootmagic](feature_bootmagic.md) | 54 | * [热改键](feature_bootmagic.md) |
| 55 | * [组合](feature_combo) | 55 | * [组合](feature_combo) |
| 56 | * [命令](feature_command.md) | 56 | * [命令](feature_command.md) |
| 57 | * [动态宏指令](feature_dynamic_macros.md) | 57 | * [动态宏指令](feature_dynamic_macros.md) |
| 58 | * [编码器](feature_encoders.md) | 58 | * [编码器](feature_encoders.md) |
| 59 | * [Grave Escape](feature_grave_esc.md) | 59 | * [重音号Esc复合键](feature_grave_esc.md) |
| 60 | * [](feature_key_lock.md) | 60 | * [自](feature_key_lock.md) |
| 61 | * [](feature_layouts.md) | 61 | * [](feature_layouts.md) |
| 62 | * [导键](feature_leader_key.md) | 62 | * [导键](feature_leader_key.md) |
| 63 | * [LED 阵列](feature_led_matrix.md) | 63 | * [LED阵列](feature_led_matrix.md) |
| 64 | * [宏指令](feature_macros.md) | 64 | * [宏指令](feature_macros.md) |
| 65 | * [鼠标键](feature_mouse_keys.md) | 65 | * [鼠标键](feature_mouse_keys.md) |
| 66 | * [一键功能](feature_advanced_keycodes.md#one-shot-keys) | 66 | * [一键功能](feature_advanced_keycodes.md#one-shot-keys) |
| 67 | * [指针设备](feature_pointing_device.md) | 67 | * [指针设备](feature_pointing_device.md) |
| 68 | * [PS/2 鼠标](feature_ps2_mouse.md) | 68 | * [PS/2鼠标](feature_ps2_mouse.md) |
| 69 | * [RGB 光](feature_rgblight.md) | 69 | * [RGB灯光](feature_rgblight.md) |
| 70 | * [RGB 矩阵](feature_rgb_matrix.md) | 70 | * [RGB矩阵](feature_rgb_matrix.md) |
| 71 | * [空格候补换挡](feature_space_cadet_shift.md) | 71 | * [空格候补换挡](feature_space_cadet_shift.md) |
| 72 | * [空格候补换挡回车](feature_space_cadet_shift_enter.md) | 72 | * [空格候补换挡回车](feature_space_cadet_shift_enter.md) |
| 73 | * [速录机](feature_stenography.md) | 73 | * [速录机](feature_stenography.md) |
| 74 | * [换手](feature_swap_hands.md) | 74 | * [换手](feature_swap_hands.md) |
| 75 | * [踢踏舞](feature_tap_dance.md) | 75 | * [多击键](feature_tap_dance.md) |
| 76 | * [终端](feature_terminal.md) | 76 | * [终端](feature_terminal.md) |
| 77 | * [热敏打印机](feature_thermal_printer.md) | 77 | * [热敏打印机](feature_thermal_printer.md) |
| 78 | * [Unicode](feature_unicode.md) | 78 | * [Unicode](feature_unicode.md) |
| @@ -80,16 +80,16 @@ | |||
| 80 | * [速度键](feature_velocikey.md) | 80 | * [速度键](feature_velocikey.md) |
| 81 | 81 | ||
| 82 | * 针对制造者和定制者 | 82 | * 针对制造者和定制者 |
| 83 | * [线指南](hand_wire.md) | 83 | * [手工线指南](hand_wire.md) |
| 84 | * [ISP 刷新指南](isp_flashing_guide.md) | 84 | * [ISP刷新指南](isp_flashing_guide.md) |
| 85 | * [ARM 调试指南](arm_debugging.md) | 85 | * [ARM调试指南](arm_debugging.md) |
| 86 | * [I2C 驱动](i2c_driver.md) | 86 | * [I2C驱动](i2c_driver.md) |
| 87 | * [GPIO 控制器](internals_gpio_control.md) | 87 | * [GPIO控制器](internals_gpio_control.md) |
| 88 | * [Proton C 转换](proton_c_conversion.md) | 88 | * [Proton C转换](proton_c_conversion.md) |
| 89 | 89 | ||
| 90 | * 深入了解 | 90 | * 深入了解 |
| 91 | * [键盘如何工作](how_keyboards_work.md) | 91 | * [键盘如何工作](how_keyboards_work.md) |
| 92 | * [理解 QMK](understanding_qmk.md) | 92 | * [理解QMK](understanding_qmk.md) |
| 93 | 93 | ||
| 94 | * 其他话题 | 94 | * 其他话题 |
| 95 | * [使用Eclipse开发QMK](other_eclipse.md) | 95 | * [使用Eclipse开发QMK](other_eclipse.md) |
| @@ -99,8 +99,8 @@ | |||
| 99 | * QMK 内构 (正在编写) | 99 | * QMK 内构 (正在编写) |
| 100 | * [定义](internals_defines.md) | 100 | * [定义](internals_defines.md) |
| 101 | * [输入回调寄存器](internals_input_callback_reg.md) | 101 | * [输入回调寄存器](internals_input_callback_reg.md) |
| 102 | * [Midi 设备](internals_midi_device.md) | 102 | * [Midi设备](internals_midi_device.md) |
| 103 | * [Midi 设备设置过程](internals_midi_device_setup_process.md) | 103 | * [Midi设备设置过程](internals_midi_device_setup_process.md) |
| 104 | * [Midi 工具库](internals_midi_util.md) | 104 | * [Midi工具库](internals_midi_util.md) |
| 105 | * [发送函数](internals_send_functions.md) | 105 | * [发送函数](internals_send_functions.md) |
| 106 | * [Sysex 工具](internals_sysex_tools.md) | 106 | * [Sysex工具](internals_sysex_tools.md) |
diff --git a/docs/zh-cn/custom_quantum_functions.md b/docs/zh-cn/custom_quantum_functions.md new file mode 100644 index 000000000..42ceba9ca --- /dev/null +++ b/docs/zh-cn/custom_quantum_functions.md | |||
| @@ -0,0 +1,490 @@ | |||
| 1 | # ζ̵Ĺ | ||
| 2 | |||
| 3 | ںܶ˵ƻ̿ɲֻĵԷ㰴Ǹô϶ʵֱȼͺӵĹܡQMKעĹ, ǹ, ⣬ԶڲͬµΪ | ||
| 4 | |||
| 5 | ҳٶκQMK֪ʶĶ[QMK](understanding_qmk.md)ڸIJⷢʲô | ||
| 6 | |||
| 7 | ## A Word on Core vs vs | ||
| 8 | |||
| 9 | ǰqmk֯һνṹ | ||
| 10 | |||
| 11 | * Core (`_quantum`) | ||
| 12 | * Keyboard/Revision (`_kb`) | ||
| 13 | * Keymap (`_user`) | ||
| 14 | |||
| 15 | ÿһڶϼһ`_kb()` `_user()` ڼ/ʹ`_kb()`ڲֲʹ`_user()` | ||
| 16 | |||
| 17 | ڼ/㶨庯ʱ`_kb()`ִκδǰȵ`_user()`DZҪģȻֲ㺯ͲҪá | ||
| 18 | <!-- ⣺Ǿ䷭IJ̫--> | ||
| 19 | # Զ | ||
| 20 | |||
| 21 | ĿǰΪֹǸмΪµļ롣ӴǶЩơ | ||
| 22 | |||
| 23 | ## һ¼ | ||
| 24 | |||
| 25 | һöٳȫҲǸֲΨһֵQMKûֱֵСṩһ`SAFE_RANGE`ꡣöʱ`SAFE_RANGE`֤ȡΨһļֵ | ||
| 26 | |||
| 27 | |||
| 28 | öӡӵ`keymap.c`Ļڲ`FOO``BAR`ˡ | ||
| 29 | |||
| 30 | ```c | ||
| 31 | enum my_keycodes { | ||
| 32 | FOO = SAFE_RANGE, | ||
| 33 | BAR | ||
| 34 | }; | ||
| 35 | ``` | ||
| 36 | |||
| 37 | ## ΪΪ | ||
| 38 | |||
| 39 | 㸲һѴڰΪʱΪ¼ʱҪ`process_record_kb()``process_record_user()`ڼʵ¼ǰQMKá`true`QMKķʽ롣ԺܷչĹܶ滻`false` QMKȻͼ̧ǰ¼ˡ | ||
| 40 | |||
| 41 | ij»ͷʱᱻá | ||
| 42 | |||
| 43 | ### process_record_user()`ʾʵ | ||
| 44 | |||
| 45 | ¡Զһ`FOO`ļΪڰ»سʱ | ||
| 46 | |||
| 47 | ```c | ||
| 48 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 49 | switch (keycode) { | ||
| 50 | case FOO: | ||
| 51 | if (record->event.pressed) { | ||
| 52 | // ʱЩʲô | ||
| 53 | } else { | ||
| 54 | // ͷʱЩʲô | ||
| 55 | } | ||
| 56 | return false; // ˼нһ | ||
| 57 | case KC_ENTER: | ||
| 58 | // »سʱ | ||
| 59 | if (record->event.pressed) { | ||
| 60 | PLAY_NOTE_ARRAY(tone_qwerty); | ||
| 61 | } | ||
| 62 | return true; // QMKس/ͷ¼ | ||
| 63 | default: | ||
| 64 | return true; // | ||
| 65 | } | ||
| 66 | } | ||
| 67 | ``` | ||
| 68 | |||
| 69 | ### `process_record_*` ĵ | ||
| 70 | |||
| 71 | * /: `bool process_record_kb(uint16_t keycode, keyrecord_t *record)` | ||
| 72 | * : `bool process_record_user(uint16_t keycode, keyrecord_t *record)` | ||
| 73 | |||
| 74 | `keycode()`ڲ϶ģ`MO(1)`, `KC_L`, ȵȡ Ҫ `switch...case` Щ¼ | ||
| 75 | |||
| 76 | `record`ʵʰϢ | ||
| 77 | |||
| 78 | ```c | ||
| 79 | keyrecord_t record { | ||
| 80 | keyevent_t event { | ||
| 81 | keypos_t key { | ||
| 82 | uint8_t col | ||
| 83 | uint8_t row | ||
| 84 | } | ||
| 85 | bool pressed | ||
| 86 | uint16_t time | ||
| 87 | } | ||
| 88 | } | ||
| 89 | ``` | ||
| 90 | |||
| 91 | # LED | ||
| 92 | |||
| 93 | qmkṩ˶ȡHID淶5LEDķ: | ||
| 94 | |||
| 95 | * `USB_LED_NUM_LOCK` | ||
| 96 | * `USB_LED_CAPS_LOCK` | ||
| 97 | * `USB_LED_SCROLL_LOCK` | ||
| 98 | * `USB_LED_COMPOSE` | ||
| 99 | * `USB_LED_KANA` | ||
| 100 | |||
| 101 | ӦLED״̬λλ | ||
| 102 | ַԻLED״̬ | ||
| 103 | |||
| 104 | * ִͨ `led_set_user()` | ||
| 105 | * ͨ `host_keyboard_leds()` | ||
| 106 | |||
| 107 | ## `led_set_user()` | ||
| 108 | |||
| 109 | 5LEDκһ״̬Ҫıʱ˺á˺ͨLED | ||
| 110 | ʹ`IS_LED_ON(usb_led, led_name)``IS_LED_OFF(usb_led, led_name)`LED״̬ | ||
| 111 | |||
| 112 | !> `host_keyboard_leds()`ܻ`led_set_user()`ǰֵ | ||
| 113 | |||
| 114 | ### `led_set_user()`ʾʵ | ||
| 115 | |||
| 116 | ```c | ||
| 117 | void led_set_user(uint8_t usb_led) { | ||
| 118 | if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { | ||
| 119 | writePinLow(B0); | ||
| 120 | } else { | ||
| 121 | writePinHigh(B0); | ||
| 122 | } | ||
| 123 | if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { | ||
| 124 | writePinLow(B1); | ||
| 125 | } else { | ||
| 126 | writePinHigh(B1); | ||
| 127 | } | ||
| 128 | if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { | ||
| 129 | writePinLow(B2); | ||
| 130 | } else { | ||
| 131 | writePinHigh(B2); | ||
| 132 | } | ||
| 133 | if (IS_LED_ON(usb_led, USB_LED_COMPOSE)) { | ||
| 134 | writePinLow(B3); | ||
| 135 | } else { | ||
| 136 | writePinHigh(B3); | ||
| 137 | } | ||
| 138 | if (IS_LED_ON(usb_led, USB_LED_KANA)) { | ||
| 139 | writePinLow(B4); | ||
| 140 | } else { | ||
| 141 | writePinHigh(B4); | ||
| 142 | } | ||
| 143 | } | ||
| 144 | ``` | ||
| 145 | |||
| 146 | ### `led_set_*`ĵ | ||
| 147 | |||
| 148 | * /: `void led_set_kb(uint8_t usb_led)` | ||
| 149 | * : `void led_set_user(uint8_t usb_led)` | ||
| 150 | |||
| 151 | ## `host_keyboard_leds()` | ||
| 152 | |||
| 153 | ᷵յLED״̬`led_set_*`֮ȡLED״̬ʱã[`matrix_scan_user()`](#ɨ). | ||
| 154 | Ϊ˱ݣ`IS_HOST_LED_ON(led_name)``IS_HOST_LED_OFF(led_name)` ֱ꣬ӵúͼ`host_keyboard_leds()` | ||
| 155 | |||
| 156 | ## LED״̬ | ||
| 157 | |||
| 158 | һЩʵΪLED״̬ṩ˷ķ | ||
| 159 | |||
| 160 | ### Ergodox Boards | ||
| 161 | |||
| 162 | Ergodoxʵṩ`ergodox_right_led_1`/`2`/`3_on`/`off()`ÿLED, Ҳ `ergodox_right_led_on`/`off(uint8_t led)` رǡ | ||
| 163 | |||
| 164 | ⣬ʹ`ergodox_led_all_set(uint8_t n)`ָLEDȼÿLED`ergodox_right_led_1`/`2`/`3_set(uint8_t n)`ʹĻ`ergodox_right_led_set(uint8_t led, uint8_t n)` | ||
| 165 | |||
| 166 | Ergodox boards ͬʱȼ`LED_BRIGHTNESS_LO`ȼ`LED_BRIGHTNESS_HI`(Ĭ). | ||
| 167 | |||
| 168 | # ̳ʼ | ||
| 169 | |||
| 170 | ̳ʼм衣ǸȡҪʲô | ||
| 171 | |||
| 172 | Ҫʼ˳г | ||
| 173 | |||
| 174 | * `keyboard_pre_init_*` - ڴǰСЩҪǰеӲʼ | ||
| 175 | * `matrix_init_*` - ڹ̼м䱻áʱӲѳʼδʼ | ||
| 176 | * `keyboard_post_init_*` - ڹ̼á£ġƻ붼Է | ||
| 177 | |||
| 178 | !> ڴ˵`keyboard_post_init_user`Ҫõĺ, ʱRGBƷ⡣ | ||
| 179 | |||
| 180 | ## Ԥʼ | ||
| 181 | |||
| 182 | 뼫УUSBʼǰС | ||
| 183 | |||
| 184 | ֮þͱʼˡ | ||
| 185 | |||
| 186 | ڴû˵,òΪҪӲijʼ | ||
| 187 | |||
| 188 | ӲʼĻٺò(ʼLEDһ). | ||
| 189 | |||
| 190 | ### `keyboard_pre_init_user()`ʾʵ | ||
| 191 | |||
| 192 | ڼ̼趨 B0, B1, B2, B3, B4 LEDš | ||
| 193 | |||
| 194 | ```c | ||
| 195 | void keyboard_pre_init_user(void) { | ||
| 196 | // üԤʼ | ||
| 197 | |||
| 198 | // LEDΪģʽ | ||
| 199 | setPinOutput(B0); | ||
| 200 | setPinOutput(B1); | ||
| 201 | setPinOutput(B2); | ||
| 202 | setPinOutput(B3); | ||
| 203 | setPinOutput(B4); | ||
| 204 | } | ||
| 205 | ``` | ||
| 206 | |||
| 207 | ### `keyboard_pre_init_*` ĵ | ||
| 208 | |||
| 209 | * /: `void keyboard_pre_init_kb(void)` | ||
| 210 | * : `void keyboard_pre_init_user(void)` | ||
| 211 | |||
| 212 | ## ʼ | ||
| 213 | |||
| 214 | ⽫ھʼʱãijЩӲúúһЩܱʼǰ | ||
| 215 | |||
| 216 | طõĶʱãӲأҲλá | ||
| 217 | |||
| 218 | |||
| 219 | ### `matrix_init_*`ĵ | ||
| 220 | |||
| 221 | * /: `void matrix_init_kb(void)` | ||
| 222 | * : `void matrix_init_user(void)` | ||
| 223 | |||
| 224 | |||
| 225 | ## ̺ʼ | ||
| 226 | |||
| 227 | Ǽ̳ʼеһijЩԣãΪʱӦöǽгʼ | ||
| 228 | |||
| 229 | |||
| 230 | ### `keyboard_post_init_user()`ʾʵ | ||
| 231 | |||
| 232 | ʾгʼɺУRGBơ | ||
| 233 | |||
| 234 | ```c | ||
| 235 | void keyboard_post_init_user(void) { | ||
| 236 | // úʼ | ||
| 237 | rgblight_enable_noeeprom(); // ʹRgb | ||
| 238 | rgblight_sethsv_noeeprom(180, 255, 255); // ɫõɫ(ɫ) | ||
| 239 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // ÿٺģʽ | ||
| 240 | } | ||
| 241 | ``` | ||
| 242 | |||
| 243 | ### `keyboard_post_init_*` ĵ | ||
| 244 | |||
| 245 | * /: `void keyboard_post_init_kb(void)` | ||
| 246 | * : `void keyboard_post_init_user(void)` | ||
| 247 | |||
| 248 | # ɨ | ||
| 249 | |||
| 250 | ܵĻҪ`process_record_*()`Զַ̣ʽӵ¼Уȷ벻Լ̲Ӱ졣Ȼڼ£бҪоɨ衣ЩҪرעܣΪÿٱ10Ρ | ||
| 251 | |||
| 252 | ### `matrix_scan_*`ʾʵ | ||
| 253 | |||
| 254 | ӱʡˡhookһܼе֮ǰӦ㹻˽qmkڲṹԱûʾ±дҪ[һissue](https://github.com/qmk/qmk_firmware/issues/new)[Discordǽ](https://discord.gg/Uq7gcHh). | ||
| 255 | |||
| 256 | ### `matrix_scan_*` ĵ | ||
| 257 | |||
| 258 | * /: `void matrix_scan_kb(void)` | ||
| 259 | * : `void matrix_scan_user(void)` | ||
| 260 | |||
| 261 | úÿξɨʱãMCUͬдҪΪкܶΡ | ||
| 262 | |||
| 263 | ԶɨʱõҲԶ״̬(LEDƻĻ)ûҲ붨еĹܡ | ||
| 264 | |||
| 265 | |||
| 266 | # / | ||
| 267 | |||
| 268 | ֧־ͿֹͨͣһƱﵽ""RGBƺͱǺܺõӡԽԼܺģҲ̷ζѡ | ||
| 269 | |||
| 270 | : `suspend_power_down_*``suspend_wakeup_init_*`, ֱϵͳкͻʱá | ||
| 271 | |||
| 272 | |||
| 273 | ### suspend_power_down_user()suspend_wakeup_init_user()ʾʵ | ||
| 274 | |||
| 275 | |||
| 276 | ```c | ||
| 277 | void suspend_power_down_user(void) { | ||
| 278 | rgb_matrix_set_suspend_state(true); | ||
| 279 | } | ||
| 280 | |||
| 281 | void suspend_wakeup_init_user(void) { | ||
| 282 | rgb_matrix_set_suspend_state(false); | ||
| 283 | } | ||
| 284 | ``` | ||
| 285 | |||
| 286 | ### / ĵ | ||
| 287 | |||
| 288 | * /: `void suspend_power_down_kb(void)` `void suspend_wakeup_init_user(void)` | ||
| 289 | * : `void suspend_power_down_kb(void)` `void suspend_wakeup_init_user(void)` | ||
| 290 | |||
| 291 | # ı | ||
| 292 | |||
| 293 | ÿıд롣ڲָʾԶ㴦á | ||
| 294 | |||
| 295 | ### `layer_state_set_*` ʾʵ | ||
| 296 | |||
| 297 | ʹPlanckʾ [RGB](feature_rgblight.md)ʹ֮Ӧ | ||
| 298 | |||
| 299 | ```c | ||
| 300 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 301 | switch (biton32(state)) { | ||
| 302 | case _RAISE: | ||
| 303 | rgblight_setrgb (0x00, 0x00, 0xFF); | ||
| 304 | break; | ||
| 305 | case _LOWER: | ||
| 306 | rgblight_setrgb (0xFF, 0x00, 0x00); | ||
| 307 | break; | ||
| 308 | case _PLOVER: | ||
| 309 | rgblight_setrgb (0x00, 0xFF, 0x00); | ||
| 310 | break; | ||
| 311 | case _ADJUST: | ||
| 312 | rgblight_setrgb (0x7A, 0x00, 0xFF); | ||
| 313 | break; | ||
| 314 | default: // for any other layers, or the default layer | ||
| 315 | rgblight_setrgb (0x00, 0xFF, 0xFF); | ||
| 316 | break; | ||
| 317 | } | ||
| 318 | return state; | ||
| 319 | } | ||
| 320 | ``` | ||
| 321 | ### `layer_state_set_*` ĵ | ||
| 322 | |||
| 323 | * /: `uint32_t layer_state_set_kb(uint32_t state)` | ||
| 324 | * : `uint32_t layer_state_set_user(uint32_t state)` | ||
| 325 | |||
| 326 | |||
| 327 | `״̬`ǻbitmask, [ָ](keymap.md#ֵIJ״̬) | ||
| 328 | |||
| 329 | |||
| 330 | # 籣 (EEPROM) | ||
| 331 | |||
| 332 | óڵıڼСЩñصEEPROM粻ʧ ÿ`eeconfig_read_kb``eeconfig_read_user`ȡ`eeconfig_update_kb``eeconfig_update_user`д롣ϣܹлĹܺ(лRGBָʾ⣬`eeconfig_init_kb``eeconfig_init_user`EEPROMĬֵ | ||
| 333 | |||
| 334 | ӵIJֿǣкܶͨEEPROM洢ͷݣҲûַǡȷġÿֻһ˫(ֽ)ռ䡣 | ||
| 335 | |||
| 336 | סEEPROMдġдܸߣDzֻдEEPROMСдƵMCU̡ | ||
| 337 | |||
| 338 | * ӣôϣʹԣΪ൱ӡ | ||
| 339 | |||
| 340 | ### ʾʵ | ||
| 341 | |||
| 342 | ãҶдʹû֡һӵĺкܶҪʵϣʹ˺ܶ | ||
| 343 | |||
| 344 | |||
| 345 | keymap.cļУ´: | ||
| 346 | ```c | ||
| 347 | typedef union { | ||
| 348 | uint32_t raw; | ||
| 349 | struct { | ||
| 350 | bool rgb_layer_change :1; | ||
| 351 | }; | ||
| 352 | } user_config_t; | ||
| 353 | |||
| 354 | user_config_t user_config; | ||
| 355 | ``` | ||
| 356 | |||
| 357 | ϴ뽨һṹ壬ýṹԴ洢òдEEPROM㽫趨ΪڽṹȻ塣Ҫס`bool` ()ֵʹ1λ, `uint8_t`ʹ8λ, `uint16_t`ʹ16λԻϴʹã˳Ǵܻ鷳Ϊǻıддֵ | ||
| 358 | |||
| 359 | `layer_state_set_*`ʹ`rgb_layer_change`ʹ`keyboard_post_init_user``process_record_user`һС | ||
| 360 | |||
| 361 | Ҫʹ`keyboard_post_init_userҪ`eeconfig_read_user()`ոմĽṹ塣ȻʹṹIJеĹܡ | ||
| 362 | ```c | ||
| 363 | void keyboard_post_init_user(void) { | ||
| 364 | // òּľʼ | ||
| 365 | |||
| 366 | // EEPROMû | ||
| 367 | user_config.raw = eeconfig_read_user(); | ||
| 368 | |||
| 369 | // ʹܣĬϲ | ||
| 370 | if (user_config.rgb_layer_change) { | ||
| 371 | rgblight_enable_noeeprom(); | ||
| 372 | rgblight_sethsv_noeeprom_cyan(); | ||
| 373 | rgblight_mode_noeeprom(1); | ||
| 374 | } | ||
| 375 | } | ||
| 376 | ``` | ||
| 377 | ϺڶEEPROMúʹøĬϲRGBɫ"raw"ֵǴ"union"Ľṹתġ | ||
| 378 | |||
| 379 | ```c | ||
| 380 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 381 | switch (biton32(state)) { | ||
| 382 | case _RAISE: | ||
| 383 | if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } | ||
| 384 | break; | ||
| 385 | case _LOWER: | ||
| 386 | if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } | ||
| 387 | break; | ||
| 388 | case _PLOVER: | ||
| 389 | if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(1); } | ||
| 390 | break; | ||
| 391 | case _ADJUST: | ||
| 392 | if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_white(); rgblight_mode_noeeprom(1); } | ||
| 393 | break; | ||
| 394 | default: // Ĭϲ | ||
| 395 | if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_cyan(); rgblight_mode_noeeprom(1); } | ||
| 396 | break; | ||
| 397 | } | ||
| 398 | return state; | ||
| 399 | } | ||
| 400 | ``` | ||
| 401 | ֵʹʱıRGBơֵ, Ϊ`process_record_user`һ¼`RGB_LYR`ҪȷʹRGB룬ʹʾرգ뽫Ϊ | ||
| 402 | ```c | ||
| 403 | |||
| 404 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 405 | switch (keycode) { | ||
| 406 | case FOO: | ||
| 407 | if (record->event.pressed) { | ||
| 408 | // ʱʲô | ||
| 409 | } else { | ||
| 410 | // ͷʱʲô | ||
| 411 | } | ||
| 412 | return false; // ˼Ľһ | ||
| 413 | case KC_ENTER: | ||
| 414 | // ڰ»سʱ | ||
| 415 | if (record->event.pressed) { | ||
| 416 | PLAY_NOTE_ARRAY(tone_qwerty); | ||
| 417 | } | ||
| 418 | return true; // QMKس/ͷ¼ | ||
| 419 | case RGB_LYR: // underglowΪָʾʹá | ||
| 420 | if (record->event.pressed) { | ||
| 421 | user_config.rgb_layer_change ^= 1; // л״̬ | ||
| 422 | eeconfig_update_user(user_config.raw); // EEPROMд״̬ | ||
| 423 | if (user_config.rgb_layer_change) { // ״̬ʹ | ||
| 424 | layer_state_set(layer_state); // ô̸²ɫ | ||
| 425 | } | ||
| 426 | } | ||
| 427 | return false; break; | ||
| 428 | case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // еRGB (see quantum_keycodes.h, L400 Բο) | ||
| 429 | if (record->event.pressed) { //ʧָܲʾıҪ | ||
| 430 | if (user_config.rgb_layer_change) { // ʹʱ | ||
| 431 | user_config.rgb_layer_change = false; // ʧܣȻ | ||
| 432 | eeconfig_update_user(user_config.raw); // EEPROMд | ||
| 433 | } | ||
| 434 | } | ||
| 435 | return true; break; | ||
| 436 | default: | ||
| 437 | return true; // | ||
| 438 | } | ||
| 439 | } | ||
| 440 | ``` | ||
| 441 | Ҫ`eeconfig_init_user`ԵEEPROMʱָĬֵ, ԶǿEEPROM`EEP_RST`[Bootmagic](feature_bootmagic.md)磬ҪĬRGBָʾĬֵ | ||
| 442 | |||
| 443 | ```c | ||
| 444 | void eeconfig_init_user(void) { // EEPROM | ||
| 445 | user_config.raw = 0; | ||
| 446 | user_config.rgb_layer_change = true; // ҪĬʹ | ||
| 447 | eeconfig_update_user(user_config.raw); // EEPROMдĬֵ | ||
| 448 | |||
| 449 | // use the non noeeprom versions, ҪEEPROMдЩֵ | ||
| 450 | rgblight_enable(); // ĬʹRGB | ||
| 451 | rgblight_sethsv_cyan(); // Ĭɫ | ||
| 452 | rgblight_mode(1); // Ĭó | ||
| 453 | } | ||
| 454 | ``` | ||
| 455 | |||
| 456 | ȻˡRGBָʾʱûһֱ棬¼̡ʹRGB룬ָʾʧܣˡ | ||
| 457 | |||
| 458 | ### 'EECONFIG' ĵ | ||
| 459 | |||
| 460 | * /: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)``void eeconfig_update_kb(uint32_t val)` | ||
| 461 | * : `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)``void eeconfig_update_user(uint32_t val)` | ||
| 462 | |||
| 463 | `val` дEEPROMֵ`eeconfig_read_*`EEPROMһ32λ(˫)ֵ | ||
| 464 | |||
| 465 | # Զ-ٽֵ(TAPPING_TERM) | ||
| 466 | Ĭ,-ٽֵȫͳһģҲͨáڴû˵ܺáЩ£`LT`˵ʱ˫ܼΪЩļװסΪ˲ÿԶ룬ܿΪÿ`TAPPING_TERM` | ||
| 467 | |||
| 468 | ʹܵĻ, Ҫ`config.h``#define TAPPING_TERM_PER_KEY` | ||
| 469 | |||
| 470 | |||
| 471 | ## `get_tapping_term`ʾʵ | ||
| 472 | |||
| 473 | ҪĻڼ`TAPPING TERM`,Ҫ`keymap.c`ļ´: | ||
| 474 | |||
| 475 | ```c | ||
| 476 | uint16_t get_tapping_term(uint16_t keycode) { | ||
| 477 | switch (keycode) { | ||
| 478 | case SFT_T(KC_SPC): | ||
| 479 | return TAPPING_TERM + 1250; | ||
| 480 | case LT(1, KC_GRV): | ||
| 481 | return 130; | ||
| 482 | default: | ||
| 483 | return TAPPING_TERM; | ||
| 484 | } | ||
| 485 | } | ||
| 486 | ``` | ||
| 487 | |||
| 488 | ### `get_tapping_term` ĵ | ||
| 489 | |||
| 490 | ƪ,Ҫquantum̼ĺֻҪûɡ | ||
diff --git a/docs/zh-cn/faq_general.md b/docs/zh-cn/faq_general.md new file mode 100644 index 000000000..4949acb8c --- /dev/null +++ b/docs/zh-cn/faq_general.md | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | # | ||
| 2 | |||
| 3 | ## QMKʲô? | ||
| 4 | |||
| 5 | [QMK](https://github.com/qmk), ӻе(Quantum Mechanical Keyboard)дһȺԴΪƼ̿ĹߡǴ[QMK̼](https://github.com/qmk/qmk_firmware)ʼ[TMK](https://github.com/tmk/tmk_keyboard)ħķֲ档 | ||
| 6 | |||
| 7 | ### Ϊʲô(Quantum)? | ||
| 8 | |||
| 9 | <!-- ²ۣĵ߾ȻҲ֪Ϊɶ --> | ||
| 10 | |||
| 11 | ## QMKTMKʲô? | ||
| 12 | |||
| 13 | TMK[Jun Wako](https://github.com/tmk)ƺִСQMKʼ[Jack Humbert](https://github.com/jackhumbert)ΪPlanck̴TMKֲ档һʱJackķֲͺTMKȥԶˣ2015꣬JackQMK | ||
| 14 | |||
| 15 | Ӽ۵QMKTMKһЩ¹ܶɵġQMKչ˿õļ룬ʹܽһḻ `S()`, `LCTL()`, `MO()`ȫ[](keycodes.md). | ||
| 16 | |||
| 17 | ӹ̵TMKԼάйٷֵ֧ļֻ̣кСһ֧֡άѴڷֲΪ̴ķֲ档Ĭֺ֧ٵļ룬ûͨ˷֡QMKͨйֺֿͼ̣ǻзPRͼı֤άͬʱQMKСҲڱҪʱ | ||
| 18 | |||
| 19 | ַŵȱ㣬ҴʱTMKQMK֮ | ||
diff --git a/docs/zh-cn/reference_glossary.md b/docs/zh-cn/reference_glossary.md new file mode 100644 index 000000000..7b9adcc2a --- /dev/null +++ b/docs/zh-cn/reference_glossary.md | |||
| @@ -0,0 +1,170 @@ | |||
| 1 | # QMK术语表 | ||
| 2 | |||
| 3 | ## ARM | ||
| 4 | 多家公司生产的32位单片机系列,例如Atmel, Cypress, Kinetis, NXP, ST, 和 TI等公司。 | ||
| 5 | |||
| 6 | ## AVR | ||
| 7 | [Atmel](http://www.microchip.com/)公司的单片机系列。 AVR是TMK的初始支持平台。 | ||
| 8 | |||
| 9 | ## AZERTY | ||
| 10 | Français (法国)标准键盘布局。用键盘的前六个字母命名。 | ||
| 11 | |||
| 12 | ## Backlight(背光) | ||
| 13 | 键盘上照明的通称。背光通常是一组LED灯,通过键帽或者按轴发光,但也不总是这样。 | ||
| 14 | |||
| 15 | ## Bluetooth(蓝牙) | ||
| 16 | 一种短距离点对点无线协议。许多多无线键盘使用此协议。 | ||
| 17 | |||
| 18 | ## Bootloader(引导加载程序) | ||
| 19 | 一种写到你单片机的保护区的特殊的程序,该程序可以使单片机升级自己的固件,通常是通过USB来升级。 | ||
| 20 | |||
| 21 | ## Bootmagic(热改键) | ||
| 22 | 允许各种键盘行为动态变化的功能,如交换或禁用常用键。 | ||
| 23 | |||
| 24 | ## C | ||
| 25 | 一种适用于系统代码的低级编程语言。大多数qmk代码是用C编写的。 | ||
| 26 | |||
| 27 | ## Colemak | ||
| 28 | 一种流行的键盘布局。 | ||
| 29 | |||
| 30 | ## Compile(编译) | ||
| 31 | 把人可读的代码转换成你的单片机可以运行的机器代码的过程。 | ||
| 32 | |||
| 33 | ## Dvorak | ||
| 34 | 一个由August Dvorak博士在20世纪30年代创建的布局。Dvorak简化键盘(Dvorak Simplified Keyboard)的缩写。 | ||
| 35 | |||
| 36 | ## Dynamic Macro(动态宏) | ||
| 37 | 一种记录在键盘上的宏,当键盘拔出或计算机重新启动时,宏将丢失。 | ||
| 38 | |||
| 39 | * [动态宏文档](feature_dynamic_macros.md) | ||
| 40 | |||
| 41 | ## Eclipse | ||
| 42 | 是一种受C语言开发者追捧的集成开发环境(IDE)。 | ||
| 43 | |||
| 44 | * [Eclipse安装说明](eclipse.md) | ||
| 45 | |||
| 46 | ## Firmware(固件) | ||
| 47 | 用来控制单片机的软件。 | ||
| 48 | |||
| 49 | ## FLIP | ||
| 50 | 爱特梅尔(Atmel)提供的AVR器件刷写软件。我们一般推荐 [QMK刷写工具](https://github.com/qmk/qmk_flasher),但是对于一些高级用例,需要FLIP。 | ||
| 51 | |||
| 52 | ## git | ||
| 53 | 命令行版本控制软件 | ||
| 54 | |||
| 55 | ## GitHub | ||
| 56 | 负责大多数QMK项目的网站。它是Git、问题跟踪和其他帮助我们运行qmk的功能的集成平台。 | ||
| 57 | |||
| 58 | ## ISP(在系统编程) | ||
| 59 | 在系统编程(In-system programming), 使用外部硬件和JTAG管脚对AVR芯片进行编程的一种方法。 | ||
| 60 | |||
| 61 | ## hid_listen | ||
| 62 | 从键盘接收调试消息的接口。 您可以使用[QMK Flasher](https://github.com/qmk/qmk_flasher)或[PJRC's hid_listen](https://www.pjrc.com/teensy/hid_listen.html)查看这些消息 | ||
| 63 | |||
| 64 | ## Keycode(键码) | ||
| 65 | 表示特定键的2字节数据。`0x00`-`0xFF`用于[基本键码](keycodes_basic.md)而`0x100`-`0xFFFF`用于[量子键码](quantum_keycodes.md). | ||
| 66 | |||
| 67 | ## Key Down | ||
| 68 | 一个键按下尚未抬起时触发的事件。 | ||
| 69 | |||
| 70 | ## Key Up | ||
| 71 | 一个键抬起时触发的事件。 | ||
| 72 | |||
| 73 | ## Keymap(键映射) | ||
| 74 | 映射到物理键盘布局的一组键码,在按键和按键释放时进行处理。有时翻译为布局,意为软件上表示的布局,即映射。 | ||
| 75 | |||
| 76 | ## Layer(层) | ||
| 77 | 为了让一个键实现多个功能的抽象结构。最高活动层有限。 | ||
| 78 | |||
| 79 | ## Leader Key(前导键、设置菜单键) | ||
| 80 | 本功能允许您点击前导键,然后按顺序按1-3个键子来激活按键或其他量子功能。 | ||
| 81 | |||
| 82 | * [前导键文档](feature_leader_key.md) | ||
| 83 | |||
| 84 | ## LED | ||
| 85 | 发光二极管,键盘上最常用的指示灯装置。 | ||
| 86 | |||
| 87 | ## Make | ||
| 88 | 用于编译所有源文件的软件包。可以使用`make`命令和其他参数来编译你的固件。 | ||
| 89 | |||
| 90 | ## Matrix(矩阵) | ||
| 91 | 一种由列和行组成的接线模式,使单片机能够用较少的引脚检测按键。矩阵通常包含二极管,以达到全键无冲。 | ||
| 92 | |||
| 93 | ## Macro(宏) | ||
| 94 | 本功能可以在敲击单个键后发送多个按键事件(hid报告)。 | ||
| 95 | |||
| 96 | * [宏文档](feature_macros.md) | ||
| 97 | |||
| 98 | ## MCU(单片机、微控制单元) | ||
| 99 | 微控制单元,键盘的处理器。 | ||
| 100 | |||
| 101 | ## Modifier(修改键、修饰键、功能键) | ||
| 102 | 按住该键将会改变其他键的功能,修饰键包括 Ctrl, Alt, 和 Shift。 | ||
| 103 | |||
| 104 | ## Mousekeys(鼠标键) | ||
| 105 | 本功能在您敲击键盘时会控制鼠标光标。 | ||
| 106 | |||
| 107 | * [鼠标键文档](feature_mouse_keys.md) | ||
| 108 | |||
| 109 | ## N-Key Rollover (NKRO、全键无冲) | ||
| 110 | 一种术语,适用于能够同时报告任意数量按键的键盘。 | ||
| 111 | |||
| 112 | ## Oneshot Modifier(粘滞键) | ||
| 113 | 一种能让你的功能键一直保持按下,直到你按下其他键的功能。它叫做粘滞键或叫做粘连键,该功能由软件实现而非机械结构。 | ||
| 114 | |||
| 115 | ## ProMicro | ||
| 116 | 一种低成本AVR开发板。这种板子很容易在购物网站找到(价格不到20RMB),但是据说刷写pro micro有点令人抓狂。 | ||
| 117 | |||
| 118 | ## Pull Request(拉请求、PR) | ||
| 119 | 向QMK请求提交代码。我们鼓励所有用户提交你们自己的键盘的代码。 | ||
| 120 | |||
| 121 | ## QWERTY | ||
| 122 | 标准英文键盘,通常也用于其他语言,例如中文。是用键盘前6个字母命名的。 | ||
| 123 | |||
| 124 | ## QWERTZ | ||
| 125 | 标准Deutsche(德语)键盘布局。使用前6个字母明名。 | ||
| 126 | |||
| 127 | ## Rollover(允许翻转、无冲形式) | ||
| 128 | 该术语表示在一个键已按下时按下另一个键。形式包括2KRO(双键无冲),6KRO(6键无冲),和NKRO(全键无冲),无冲表示可同时按下而不产生冲突的键的数量。 | ||
| 129 | |||
| 130 | ## Scancode(扫描码) | ||
| 131 | HID报告中的一个1字节的数字,表示一个键子。这些数字在下列文档中[HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)该文档发布于[USB-IF](http://www.usb.org/)。 | ||
| 132 | |||
| 133 | ## Space Cadet键盘的shift键 | ||
| 134 | 一种特使的shift设置,能让你通过敲击左或右shift一次或多次键入不同的括号。 | ||
| 135 | |||
| 136 | * [Space Cadet键盘文档](feature_space_cadet.md) | ||
| 137 | |||
| 138 | ## Tap(敲击、单击) | ||
| 139 | 按下并释放一个键。在某些情况下您需要区分键按下和键抬起,但是单击把两个事件都包括了。 | ||
| 140 | |||
| 141 | ## Tap Dance(多击键) | ||
| 142 | 本功能允许向同一个键子分配多个键码,并根据按键次数区分。 | ||
| 143 | |||
| 144 | * [多击键文档](feature_tap_dance.md) | ||
| 145 | |||
| 146 | ## Teensy | ||
| 147 | 一种低成本AVR开发板<!--译者吐槽:我怎么感觉成本不低。好吧,我穷。 -->,通常用于手工连线键盘。这个teensy是有点小贵但是halfkay bootloader会让它刷写十分简单,所以也很常用。 | ||
| 148 | |||
| 149 | ## Underlight(背光) | ||
| 150 | 用于照亮电路板底面的LED的总称。这些LED通常从印刷电路板的底部向键盘所在的表面发光。 | ||
| 151 | |||
| 152 | ## Unicode | ||
| 153 | 在较大的计算机世界中,Unicode是一组编码方案,用于表示任何语言中的字符。 与qmk相关的是,它意味着使用各种操作系统方案来发送Unicode代码点,而不是扫描码。 | ||
| 154 | |||
| 155 | * [Unicode文档](feature_unicode.md) | ||
| 156 | |||
| 157 | ## Unit Testing(单元测试) | ||
| 158 | 针对qmk的自动运行测试框架。单元测试帮助我们确信我们的更改不会破坏任何东西。 | ||
| 159 | |||
| 160 | * [单元测试文档](unit_testing.md) | ||
| 161 | |||
| 162 | ## USB | ||
| 163 | 通用串行总线,键盘最常见的有线接口。 | ||
| 164 | |||
| 165 | ## USB 主机 (或简易主机) | ||
| 166 | USB诸暨市你的电脑,或者你的键盘所插的任何设备。 | ||
| 167 | |||
| 168 | # 并没有找到你想找到的术语? | ||
| 169 | |||
| 170 | [建立一个issue](https://github.com/qmk/qmk_firmware/issues) ,想好你的问题,或许你所问的术语就会添加到这里。创建一个PR帮我们添加需要添加的术语当然坠吼了:) | ||
