diff --git a/FAQ.zh-Hans.md b/FAQ.zh-Hans.md
index c3e220f..49079ba 100644
--- a/FAQ.zh-Hans.md
+++ b/FAQ.zh-Hans.md
@@ -1,305 +1,212 @@
-_Only the original [FAQ] is guaranteed to be up-to-date._
-
-[FAQ]: https://github.com/Genymobile/scrcpy/blob/master/FAQ.md
-
_只有原版的 [FAQ.md](FAQ.md)是保证最新的。_
-Current version is based on [28054cd]
-
-本文根据[28054cd]进行翻译。
-
-[28054cd]: https://github.com/Genymobile/scrcpy/blob/28054cd471f848733e11372c9d745cd5d71e6ce7/FAQ.md
+本文根据 https://github.com/Genymobile/scrcpy/blob/master/FAQ.md 进行翻译。
# 常见问题
-这里是一些常见的问题以及他们的状态。
+[用另一种语言阅读](#翻译)
-- [常见问题](#常见问题)
- - [`adb` 相关问题](#adb-相关问题)
- - [找不到`adb`](#找不到adb)
- - [设备未授权](#设备未授权)
- - [未检测到设备](#未检测到设备)
- - [已连接多个设备](#已连接多个设备)
- - [adb版本之间冲突](#adb版本之间冲突)
- - [设备断开连接](#设备断开连接)
- - [控制相关问题](#控制相关问题)
- - [鼠标和键盘不起作用](#鼠标和键盘不起作用)
- - [特殊字符不起作用](#特殊字符不起作用)
- - [客户端相关问题](#客户端相关问题)
- - [效果很差](#效果很差)
- - [Wayland相关的问题](#wayland相关的问题)
- - [KWin compositor 崩溃](#kwin-compositor-崩溃)
- - [崩溃](#崩溃)
- - [异常](#异常)
- - [Windows命令行](#windows命令行)
+以下是常见的报告问题及其状态。
-## `adb` 相关问题
+如果遇到任何错误,第一步是升级到最新版本。
-`scrcpy` 执行 `adb` 命令来初始化和设备之间的连接。如果 `adb` 执行失败了, scrcpy 就无法工作。
+## `adb` 和 USB 问题
-在这种情况中,将会输出这个错误:
+`scrcpy` 执行 `adb` 命令来初始化与设备的连接。如果
+`adb` 失败,则 scrcpy 将无法工作。
-> ERROR: "adb get-serialno" returned with value 1
+这通常不是 _scrcpy_ 中的错误,而是您环境中的问题。
-这通常不是 _scrcpy_ 的bug,而是你的环境的问题。
+### `adb` not found
-要找出原因,请执行以下操作:
+您需要从您的 `PATH` 访问 `adb`。
-```bash
+在 Windows 上,当前目录在您的 `PATH` 中,并且 `adb.exe` 包含在版本中,因此它应该可以开箱即用。
+
+### Device not detected
+
+> ERROR: Could not find any ADB device
+
+检查您是否正确启用了 [adb 调试](enable-adb)。
+
+您的设备必须通过 `adb` 检测:
+
+```
adb devices
```
-### 找不到`adb`
+如果未检测到您的设备,您可能需要一些 [驱动程序](在 Windows 上)。有一个单独的 [Google 设备 USB 驱动程序][google-usb-driver]。
+[enable-adb]:https://developer.android.com/studio/command-line/adb.html#Enabling
+[驱动程序]:https://developer.android.com/studio/run/oem-usb.html
+[google-usb-driver]:https://developer.android.com/studio/run/win-usb
-你的`PATH`中需要能访问到`adb`。
+### Device unauthorized
+```
+ERROR: Device is unauthorized:
+ERROR: --> (usb) 0123456789abcdef unauthorized
+ERROR: A popup should open on the device to request authorization.
+```
+连接时,设备上应打开一个弹出窗口。您必须授权 USB 调试。
-在Windows上,当前目录会包含在`PATH`中,并且`adb.exe`也包含在发行版中,因此它应该是开箱即用(直接解压就可以)的。
+如果打不开,请检查[stackoverflow] [device-unauthorized](https://stackoverflow.com/questions/23081263/adb-android-device-unauthorized)
+### Several devices connected
-### 设备未授权
-
-
-> error: device unauthorized.
-> This adb server's $ADB_VENDOR_KEYS is not set
-> Try 'adb kill-server' if that seems wrong.
-> Otherwise check for a confirmation dialog on your device.
-
-连接时,在设备上应该会打开一个弹出窗口。 您必须授权 USB 调试。
-
-如果没有打开,参见[stackoverflow][device-unauthorized].
-
-[device-unauthorized]: https://stackoverflow.com/questions/23081263/adb-android-device-unauthorized
-
-
-### 未检测到设备
-
-> error: no devices/emulators found
-
-确认已经正确启用 [adb debugging][enable-adb].
-
-如果你的设备没有被检测到,你可能需要一些[驱动][drivers] (在 Windows上)。这里有一个单独的 [适用于Google设备的USB驱动][google-usb-driver].
-
-[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling
-[drivers]: https://developer.android.com/studio/run/oem-usb.html
-[google-usb-driver]: https://developer.android.com/studio/run/win-usb
-
-
-### 已连接多个设备
-
-如果连接了多个设备,您将遇到以下错误:
-
-> error: more than one device/emulator
-
-必须提供要镜像的设备的标识符:
+如果已连接多台设备,您将遇到此错误:
+```
+ERROR: Multiple (2) ADB devices:
+ERROR: --> (usb) 0123456789abcdef device Nexus_5
+ERROR: --> (tcpip) 192.168.1.5:5555 device GM1913
+ERROR: Select a device via -s (--serial), -d (--select-usb) or -e (--select-tcpip)
+```
+在这种情况下,您可以提供要镜像的设备的标识符:
```bash
-scrcpy -s 01234567890abcdef
+scrcpy -s 0123456789abcdef
```
-注意,如果你的设备是通过 TCP/IP 连接的, 你将会收到以下消息:
-
-> adb: error: more than one device/emulator
-> ERROR: "adb reverse" returned with value 1
-> WARN: 'adb reverse' failed, fallback to 'adb forward'
-
-这是意料之中的 (由于旧版安卓的一个bug, 请参见 [#5]),但是在这种情况下,scrcpy会退回到另一种方法,这种方法应该可以起作用。
-
-[#5]: https://github.com/Genymobile/scrcpy/issues/5
-
-
-### adb版本之间冲突
-
-> adb server version (41) doesn't match this client (39); killing...
-
-同时使用多个版本的`adb`时会发生此错误。你必须查找使用不同`adb`版本的程序,并在所有地方使用相同版本的`adb`。
-
-你可以覆盖另一个程序中的`adb`二进制文件,或者通过设置`ADB`环境变量来让 _scrcpy_ 使用特定的`adb`二进制文件。
+或者请求单个 USB(或TCP/IP) 设备:
```bash
-set ADB=/path/to/your/adb
+scrcpy -d # USB 设备
+scrcpy -e # TCP/IP 设备
+```
+
+请注意,如果您的设备通过 TCP/IP 连接,您可能会收到以下消息:
+```
+adb: error: more than one device/emulator
+ERROR: "adb reverse" returned with value 1
+WARN: 'adb reverse' failed, fallback to 'adb forward'
+```
+这是预期的(由于旧 Android 版本上的错误,请参阅 [#5](https://github.com/Genymobile/scrcpy/issues/5),但在这种情况下,scrcpy 会回退到另一种方法,这应该可以工作。
+
+
+### Conflicts between adb versions
+
+> adb server version (41) doesn't match this client (39); killing...
+
+当您同时使用多个 `adb` 版本时,会发生此错误。您必须使用不同的 `adb` 版本找到该程序,并在所有地方使用相同的 `adb` 版本。
+
+您可以通过设置 `ADB` 环境变量覆盖其他程序中的 `adb` 二进制文件,或要求 _scrcpy_
+使用特定的 `adb` 二进制文件:
+
+```bash
+# in bash
+export ADB=/path/to/your/adb
scrcpy
```
+```cmd
+:: in cmd
+set ADB=C:\path\to\your\adb.exe
+scrcpy
+```
-### 设备断开连接
+```powershell
+# in PowerShell
+$env:ADB = 'C:\path\to\your\adb.exe'
+scrcpy
+```
-如果 _scrcpy_ 在警告“设备连接断开”的情况下自动中止,那就意味着`adb`连接已经断开了。
+### Device disconnected
-请尝试使用另一条USB线或者电脑上的另一个USB接口。请参看 [#281] 和 [#283]。
+如果 _scrcpy_ 自行停止并显示“设备已断开连接”警告,则 `adb` 连接已关闭。
-[#281]: https://github.com/Genymobile/scrcpy/issues/281
-[#283]: https://github.com/Genymobile/scrcpy/issues/283
+尝试使用另一根 USB 电缆或将其插入另一个 USB 端口。请参阅 [#281](https://github.com/Genymobile/scrcpy/issues/281) 和
+[#283](https://github.com/Genymobile/scrcpy/issues/283)。
+## Windows 上的 OTG 问题
-## 控制相关问题
+在 Windows 上,如果 `scrcpy --otg`(或 `--keyboard=aoa`/`--mouse=aoa`)导致:
+
+> ERROR: Could not find any USB device
+
+(或者如果只检测到不相关的 USB 设备),则可能存在驱动程序问题。
+
+请阅读 [#3654],特别是 [此评论](#3654-comment1)和 [下一个](#3654-comment2)。
+
+[#3654]: https://github.com/Genymobile/scrcpy/issues/3654
+[#3654-comment1]: https://github.com/Genymobile/scrcpy/issues/3654#issuecomment-1369278232
+[#3654-comment2]: https://github.com/Genymobile/scrcpy/issues/3654#issuecomment-1369295011
+
+## 控制问题
### 鼠标和键盘不起作用
+在某些设备上,您可能需要启用一个选项以允许 [模拟输入]。
-在某些设备上,您可能需要启用一个选项以允许 [模拟输入][simulating input]。
-在开发者选项中,打开:
+在开发者选项中,启用:
-> **USB调试 (安全设置)**
-> _允许通过USB调试修改权限或模拟点击_
+> **USB 调试(安全设置)**
+> _允许授予权限并通过 USB 调试模拟输入_
-[simulating input]: https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323
+设置此选项后,可能需要重启设备。
+[模拟输入]:https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323
### 特殊字符不起作用
-可输入的文本[被限制为ASCII字符][text-input]。也可以用一些小技巧输入一些[带重音符号的字符][accented-characters],但是仅此而已。参见[#37]。
+默认的文本注入方法是 [仅限于 ASCII 字符][text-input]。
-自 Linux 上的 scrcpy v1.20 之后,可以模拟[物理键盘][hid] (HID)。
+一个技巧允许注入一些 [重音字符][accented-characters],
+
+但仅此而已。请参阅 [#37]。
+
+为了避免这个问题,[更改键盘模式以模拟物理键盘][hid]。
[text-input]: https://github.com/Genymobile/scrcpy/issues?q=is%3Aopen+is%3Aissue+label%3Aunicode
[accented-characters]: https://blog.rom1v.com/2018/03/introducing-scrcpy/#handle-accented-characters
[#37]: https://github.com/Genymobile/scrcpy/issues/37
-[hid]: README.md#physical-keyboard-simulation-hid
+[hid]: doc/keyboard.md#physical-keyboard-simulation
+## 客户端问题
-## 客户端相关问题
+### Wayland 问题
-### 效果很差
+默认情况下,SDL 在 Linux 上使用 x11。 [视频驱动程序] 可以通过
+`SDL_VIDEODRIVER` 环境变量进行更改:
-如果你的客户端窗口分辨率比你的设备屏幕小,则可能出现效果差的问题,尤其是在文本上(参见 [#40])。
-
-[#40]: https://github.com/Genymobile/scrcpy/issues/40
-
-为了提升降尺度的质量,如果渲染器是OpenGL并且支持mip映射,就会自动开启三线性过滤。
-
-在Windows上,你可能希望强制使用OpenGL:
-
-```
-scrcpy --render-driver=opengl
-```
-
-你可能还需要配置[缩放行为][scaling behavior]:
-
-> `scrcpy.exe` > Properties > Compatibility > Change high DPI settings >
-> Override high DPI scaling behavior > Scaling performed by: _Application_.
-
-[scaling behavior]: https://github.com/Genymobile/scrcpy/issues/40#issuecomment-424466723
-
-
-### Wayland相关的问题
-
-在Linux上,SDL默认使用x11。可以通过`SDL_VIDEODRIVER`环境变量来更改[视频驱动][video driver]:
-
-[video driver]: https://wiki.libsdl.org/FAQUsingSDL#how_do_i_choose_a_specific_video_driver
+[视频驱动程序]:https://wiki.libsdl.org/FAQUsingSDL#how_do_i_choose_a_specific_video_driver
```bash
export SDL_VIDEODRIVER=wayland
scrcpy
```
-在一些发行版上 (至少包括 Fedora), `libdecor` 包必须手动安装。
+在某些发行版(至少是 Fedora)上,必须手动安装包 `libdecor`。
-参见 [#2554] 和 [#2559]。
+请参阅问题 [#2554] 和 [#2559]。
-[#2554]: https://github.com/Genymobile/scrcpy/issues/2554
-[#2559]: https://github.com/Genymobile/scrcpy/issues/2559
+[#2554]:https://github.com/Genymobile/scrcpy/issues/2554
+[#2559]:https://github.com/Genymobile/scrcpy/issues/2559
+### KWin 合成器崩溃
-### KWin compositor 崩溃
+在 Plasma Desktop 上,_scrcpy_ 运行时合成器被禁用。
-在Plasma桌面中,当 _scrcpy_ 运行时,会禁用compositor。
-
-一种解决方法是, [禁用 "Block compositing"][kwin].
-
-[kwin]: https://github.com/Genymobile/scrcpy/issues/114#issuecomment-378778613
+解决方法是[禁用“块合成”][kwin]。
+[kwin]:https://github.com/Genymobile/scrcpy/issues/114#issuecomment-378778613
## 崩溃
### 异常
-可能有很多原因。一个常见的原因是您的设备无法按给定清晰度进行编码:
-
-> ```
-> ERROR: Exception on thread Thread[main,5,main]
-> android.media.MediaCodec$CodecException: Error 0xfffffc0e
-> ...
-> Exit due to uncaughtException in main thread:
-> ERROR: Could not open video stream
-> INFO: Initial texture: 1080x2336
-> ```
-
-或者
-
-> ```
-> ERROR: Exception on thread Thread[main,5,main]
-> java.lang.IllegalStateException
-> at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
-> ```
-
-请尝试使用更低的清晰度:
+如果您收到与 `MediaCodec` 相关的任何异常:
```
-scrcpy -m 1920
-scrcpy -m 1024
-scrcpy -m 800
+ERROR: Exception on thread Thread[main,5,main]
+java.lang.IllegalStateException
+ at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
```
-自 scrcpy v1.22以来,scrcpy 会自动在失败前以更低的分辨率重试。这种行为可以用`--no-downsize-on-error`关闭。
+然后尝试使用另一个 [编码器](doc/video.md#encoder)。
-你也可以尝试另一种 [编码器](README.md#encoder)。
+## 翻译
+此常见问题解答的其他语言翻译可在 [wiki](wiki) 中找到。
-如果您在 Android 12 上遇到此异常,则只需升级到 scrcpy >= 1.18 (见 [#2129]):
+[wiki]:https://github.com/Genymobile/scrcpy/wiki
-```
-> ERROR: Exception on thread Thread[main,5,main]
-java.lang.AssertionError: java.lang.reflect.InvocationTargetException
- at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:75)
- ...
-Caused by: java.lang.reflect.InvocationTargetException
- at java.lang.reflect.Method.invoke(Native Method)
- at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:73)
- ... 7 more
-Caused by: java.lang.IllegalArgumentException: displayToken must not be null
- at android.view.SurfaceControl$Transaction.setDisplaySurface(SurfaceControl.java:3067)
- at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2147)
- ... 9 more
-```
-
-[#2129]: https://github.com/Genymobile/scrcpy/issues/2129
-
-
-## Windows命令行
-
-从 v1.22 开始,增加了一个“快捷方式”,可以直接在 scrcpy 目录打开一个终端。双击`open_a_terminal_here.bat`,然后输入你的命令。 例如:
-
-```
-scrcpy --record file.mkv
-```
-
-您也可以打开终端并手动转到 scrcpy 文件夹:
-
- 1. 按下 Windows+r,打开一个对话框。
- 2. 输入 `cmd` 并按 Enter,这样就打开了一个终端。
- 3. 通过输入以下命令,切换到你的 _scrcpy_ 所在的目录 (根据你的实际位置修改路径):
-
- ```bat
- cd C:\Users\user\Downloads\scrcpy-win64-xxx
- ```
-
- 然后按 Enter
- 4. 输入你的命令。比如:
-
- ```bat
- scrcpy --record file.mkv
- ```
-
-如果你打算总是使用相同的参数,在`scrcpy`目录创建一个文件 `myscrcpy.bat`
-(启用 [显示文件拓展名][show file extensions] 避免混淆),文件中包含你的命令。例如:
-
-```bat
-scrcpy --prefer-text --turn-screen-off --stay-awake
-```
-
-然后只需双击刚刚创建的文件。
-
-你也可以编辑 `scrcpy-console.bat` 或者 `scrcpy-noconsole.vbs`(的副本)来添加参数。
-
-[show file extensions]: https://www.howtogeek.com/205086/beginner-how-to-make-windows-show-file-extensions/
+只有此常见问题解答文件保证是最新的。
\ No newline at end of file