|
Translation changed |
|
|
String added in the repository |
|
|
Translation changed |
|
|
String added in the repository |
The implementation strategy is to make the composed object meet the requirements of a completion handler by being movable, and by making it invocable so it can be used as a continuation for the asynchronous operations it launches. Rather than using `std::bind` or `boost::bind`, which destroys the type information and therefore breaks the associators, we will simply pass `std::move(*this)` as the completion handler parameter for any operations that we initiate. For the move to work correctly, care must be taken to ensure that no access to data members are made after the move takes place. Here is the complete implementation of our composed operation:
The implementation strategy is to make the composed object meet the requirements of a completion handler by being movable, and by making it invocable so it can be used as a continuation for the asynchronous operations it launches. Rather than using `std::bind` or `boost::bind`, which destroys the type information and therefore breaks the associators, we will simply pass `std::move(*this)` as the completion handler parameter for any operations that we initiate. For the move to work correctly, care must be taken to ensure that no access to data members are made after the move takes place. Here is the complete implementation of our composed operation:
|
| 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 implementation strategy is to make the composed object meet the requirements of a completion handler by being movable, and by making it invocable so it can be used as a continuation for the asynchronous operations it launches. Rather than using实现策略是让组合对象满足完成处理器的要求:一方面要支持移动语义,另一方面要使其可调用,这样它就能作为其发起的异步操作的后续回调来使用。我们不使用 `std::bind`or或 `boost::bind`, which destroys the type information and therefore breaks the associators, we will simply pass `std::move(*this)` as the completion handler parameter for any operations that we initiate. For the move to work correctly, care must be taken to ensure that no access to data members are made after the move takes place. Here is the complete implementation of our composed operation:,因为它们会丢失类型信息,从而破坏关联器。相反,我们会直接把 `std::move(*this)` 作为完成处理器参数,传递给所发起的每个异步操作。为确保移动操作能正确工作,需要注意在移动发生之后,不能再访问任何数据成员。以下是该组合操作的完整实现: