|
Translation changed |
|
|
String added in the repository |
|
|
Translation changed |
|
|
String added in the repository |
The detection function above is suitably generic and targeted in focus that it may be used as a building block to create higher level abstractions. Our goal is to create a ['stream algorithm]: a function which is invoked with a stream, that reads or writes (or both) to achieve a purpose. In this case, to detect the TLS client handshake. Stream algorithms may be synchronous or asynchronous. Because synchronous algorithms are easier to write, we start there. Then we build the asynchronous version, trying to model it similarly to make reasoning about it easier.
The detection function above is suitably generic and targeted in focus that it may be used as a building block to create higher level abstractions. Our goal is to create a ['stream algorithm]: a function which is invoked with a stream, that reads or writes (or both) to achieve a purpose. In this case, to detect the TLS client handshake. Stream algorithms may be synchronous or asynchronous. Because synchronous algorithms are easier to write, we start there. Then we build the asynchronous version, trying to model it similarly to make reasoning about it easier.
|
| Shortcut | Action |
|---|---|
| ? | Open available keyboard shortcuts. |
| Alt + Home | Navigate to the first translation in the current search. |
| Alt + End | Navigate to the last translation in the current search. |
|
Alt + PageUp or
Ctrl + ↑ or Alt + ↑ or Cmd + ↑ or |
Navigate to the previous translation in the current search. |
|
Alt + PageDown or
Ctrl + ↓ or Alt + ↓ or Cmd + ↓ or |
Navigate to the next translation in the current search. |
|
Ctrl + Enter or
Cmd + Enter |
Submit current form; this works the same as pressing Save and continue while editing translation. |
|
Ctrl + Shift + Enter or
Cmd + Shift +Enter |
Unmark translation as Needing edit and submit it. |
|
Alt + Enter or
Option + Enter |
Submit the string as a suggestion; this works the same as pressing Suggest while editing translation. |
|
Ctrl + E or
Cmd + E |
Focus on translation editor. |
|
Ctrl + U or
Cmd + U |
Focus on comment editor. |
|
Ctrl + M or
Cmd + M |
Shows Automatic suggestions tab. |
|
Ctrl + 1 to
Ctrl + 9 or
Cmd + 1 to Cmd + 9 |
Copies placeable of a given number from source string. |
|
Ctrl + M followed by
1 to 9 or
Cmd + M followed by 1 to 9 |
Copy the machine translation of a given number to current translation. |
|
Ctrl + I followed by
1 to
9 or
Cmd + I followed by 1 to 9 |
Ignore one item in the list of failing checks. |
|
Ctrl + J or
Cmd + J |
Shows the Nearby strings tab. |
|
Ctrl + S or
Cmd + S |
Focus on search field. |
|
Ctrl + O or
Cmd + O |
Copy the source string. |
|
Ctrl + Y or
Cmd + Y |
Toggle the Needs editing checkbox. |
| → | Browse the next translation string. |
| ← | Browse the previous translation string. |
The detection function above is suitably generic and targeted in focus that it may be used as a building block to create higher level abstractions. Our goal is to create a ['stream algorithm]: a function which is invoked with a stream, that reads or writes (or both) to achieve a purpose. In this case, to detect the TLS client handshake. Stream algorithms may be synchronous or asynchronous. Because synchronous algorithms are easier to write, we start there. Then we build the asynchronous version, trying to model it similarly to make reasoning about it easier.上述检测函数足够通用,且目标明确,可以作为基础模块来构建更高级的抽象。接下来要创建一个流算法:该算法接收一个流作为参数,通过执行读写操作来达到特定目的,这里就是检测 TLS 客户端握手。流算法可以是同步的,也可以是异步的。同步算法更容易编写,因此先实现同步版本,再在此基础上构建异步版本,并尽量让两者风格相似,便于理解。