Translations update from Weblate#1
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (14)
📝 WalkthroughWalkthroughAdds a set of Simplified Chinese Quickbook documentation files for Boost.Beast (library main page, release notes, and multiple concept pages). All changes are documentation-only; no code, public API, or build configuration is modified. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Currently translated at 0.0% (0 of 6 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / Main (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-main-qbk/zh_Hans/
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
doc/qbk/main_zh_Hans.qbk (1)
10-23: Consider translating library metadata for consistency.The library metadata block (purpose, license description) remains in English. While structural metadata often stays in the original language, consider translating user-facing fields like
[purpose Networking Protocol Library]to Chinese for consistency with the translation effort.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@doc/qbk/main_zh_Hans.qbk` around lines 10 - 23, The library metadata block currently contains English user-facing fields; update the `[purpose Networking Protocol Library]` and the human-readable license description text inside the `[license ...]` block to Chinese to match the translated document while keeping identifiers and tags unchanged (e.g., the `library Boost.Beast` block, `[id beast]`, `[purpose ...]`, and `[license ...]`); ensure the translated strings preserve the original meaning and formatting within the Quickbook brackets so only the text content is changed and structure/tags remain identical.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@doc/qbk/main_zh_Hans.qbk`:
- Around line 1-200: The Jamfile is missing rules for the new Chinese Quickbook
file (qbk/main_zh_Hans.qbk); add a new xml rule (e.g. beast_doc_zh_Hans) that
lists qbk/main_zh_Hans.qbk and the same dependencies used by the English xml
rule, then add a corresponding boostbook rule (e.g. beast_zh_Hans) that depends
on beast_doc_zh_Hans and mirrors the English boostbook parameters (xsl:param
entries and image dependency) so the Chinese variant is built; ensure to remove
or adjust the <dependency>reference.qbk later as noted.
- Around line 170-174: Translate the three legend tokens "__new__",
"__example__", and "__video__" from English to Simplified Chinese in this
Chinese localization file so the user-facing descriptions match the locale;
replace their English phrases ("indicates a new or updated section in this
version.", "contains example source code.", "contains video presentation
content") with concise Simplified Chinese equivalents while preserving the
tokens "__new__", "__example__", and "__video__" exactly as identifiers.
- Line 178: Translate the English description "__new__ indicates an item that
was recently added." into Simplified Chinese and replace the existing English
sentence in the "__new__" section so the entry reads in Chinese (for example:
"__new__ 表示最近新增的项目。"); ensure the translation preserves meaning and punctuation
and is placed in the same section that currently contains the English phrase
"__new__ indicates an item that was recently added.".
- Around line 188-198: Replace the English release notes include in the Chinese
main file by switching the include from release_notes.qbk to
release_notes_zh_Hans.qbk (update the line that currently reads [include
release_notes.qbk] to reference [include release_notes_zh_Hans.qbk]); then scan
the other includes (version.qbk, 01_intro/_intro.qbk … 08_design/_design.qbk) to
confirm whether corresponding _zh_Hans variants exist and, if Chinese variants
are intended, replace those includes with their _zh_Hans counterparts or
document that they will fall back to English.
---
Nitpick comments:
In `@doc/qbk/main_zh_Hans.qbk`:
- Around line 10-23: The library metadata block currently contains English
user-facing fields; update the `[purpose Networking Protocol Library]` and the
human-readable license description text inside the `[license ...]` block to
Chinese to match the translated document while keeping identifiers and tags
unchanged (e.g., the `library Boost.Beast` block, `[id beast]`, `[purpose ...]`,
and `[license ...]`); ensure the translated strings preserve the original
meaning and formatting within the Quickbook brackets so only the text content is
changed and structure/tags remain identical.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 103537f3-7db6-4cab-97a3-8ae6238ac644
📒 Files selected for processing (1)
doc/qbk/main_zh_Hans.qbk
| [/ | ||
| Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) | ||
|
|
||
| Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
| file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|
|
||
| Official repository: https://github.com/boostorg/beast | ||
| ] | ||
|
|
||
| [library Boost.Beast | ||
| [id beast] | ||
| [quickbook 1.6] | ||
| [copyright 2016 - 2019 Vinnie Falco] | ||
| [purpose Networking Protocol Library] | ||
| [license | ||
| Distributed under the Boost Software License, Version 1.0. | ||
| (See accompanying file LICENSE_1_0.txt or copy at | ||
| [@http://www.boost.org/LICENSE_1_0.txt]) | ||
| ] | ||
| [authors [Falco, Vinnie]] | ||
| [category template] | ||
| [category generic] | ||
| ] | ||
|
|
||
| [template mdash[] '''— '''] | ||
| [template indexterm1[term1] '''<indexterm><primary>'''[term1]'''</primary></indexterm>'''] | ||
| [template indexterm2[term1 term2] '''<indexterm><primary>'''[term1]'''</primary><secondary>'''[term2]'''</secondary></indexterm>'''] | ||
|
|
||
| [template path_link[path name] '''<ulink url="../../'''[path]'''">'''[name]'''</ulink>'''] | ||
| [template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]] | ||
| [template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>'''] | ||
|
|
||
| [def __N3747__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3747.pdf [*N3747]]] | ||
| [def __NetTS__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf Networking TS]] | ||
| [def __rfc6455__ [@https://tools.ietf.org/html/rfc6455 rfc6455]] | ||
| [def __rfc7230__ [@https://tools.ietf.org/html/rfc7230 rfc7230]] | ||
| [def __Asio__ [@boost:/libs/asio/index.html Boost.Asio]] | ||
| [def __async_initfn__ [@boost:/doc/html/boost_asio/reference/asynchronous_operations.html initiating function]] | ||
|
|
||
| [/ C++ Named Requirements ] | ||
|
|
||
| [def __Allocator__ [@https://en.cppreference.com/w/cpp/named_req/Allocator ['Allocator]]] | ||
|
|
||
| [/ Networking Identifiers ] | ||
|
|
||
| [def __basic_stream_socket__ [@boost:/doc/html/boost_asio/reference/basic_stream_socket.html `basic_stream_socket`]] | ||
| [def __const_buffer__ [@boost:/doc/html/boost_asio/reference/const_buffer.html `const_buffer`]] | ||
| [def __deduced__ [@boost:/doc/html/boost_asio/reference/asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type ['DEDUCED]]] | ||
| [def __executor_work_guard__ [@boost:/doc/html/boost_asio/reference/executor_work_guard.html `net::executor_work_guard`]] | ||
| [def __get_associated_allocator__ [@boost:/doc/html/boost_asio/reference/get_associated_allocator.html `net::get_associated_allocator`]] | ||
| [def __get_associated_executor__ [@boost:/doc/html/boost_asio/reference/get_associated_executor.html `net::get_associated_executor`]] | ||
| [def __io_context__ [@boost:/doc/html/boost_asio/reference/io_context.html `net::io_context`]] | ||
| [def __mutable_buffer__ [@boost:/doc/html/boost_asio/reference/mutable_buffer.html `mutable_buffer`]] | ||
| [def __post__ [@boost:/doc/html/boost_asio/reference/post.html `net::post`]] | ||
| [def __socket__ [@boost:/doc/html/boost_asio/reference/ip__tcp/socket.html `tcp::socket`]] | ||
| [def __strand__ [@boost:/doc/html/boost_asio/reference/strand.html `net::strand`]] | ||
| [def __ssl_context__ [@boost:/doc/html/boost_asio/reference/ssl__context.html `net::ssl::context`]] | ||
| [def __ssl_stream__ [@boost:/doc/html/boost_asio/reference/ssl__stream.html `net::ssl::stream`]] | ||
| [def __streambuf__ [@boost:/doc/html/boost_asio/reference/streambuf.html `net::streambuf`]] | ||
| [def __system_executor__ [@boost:/doc/html/boost_asio/reference/system_executor.html `net::system_executor`]] | ||
| [def __use_future__ [@boost:/doc/html/boost_asio/reference/use_future_t.html `net::use_future`]] | ||
| [def __yield_context__ [@boost:/doc/html/boost_asio/reference/yield_context.html `net::yield_context`]] | ||
|
|
||
| [/ Networking Named Requirements] | ||
|
|
||
| [def __AsyncReadStream__ [@boost:/doc/html/boost_asio/reference/AsyncReadStream.html ['AsyncReadStream]]] | ||
| [def __AsyncWriteStream__ [@boost:/doc/html/boost_asio/reference/AsyncWriteStream.html ['AsyncWriteStream]]] | ||
| [def __CompletionCondition__ [@boost:/doc/html/boost_asio/reference/CompletionCondition.html ['CompletionCondition]]] | ||
| [def __CompletionHandler__ [@boost:/doc/html/boost_asio/reference/CompletionHandler.html ['CompletionHandler]]] | ||
| [def __CompletionToken__ [@boost:/doc/html/boost_asio/reference/asynchronous_operations.html#boost_asio.reference.asynchronous_operations.completion_tokens_and_handlers ['CompletionToken]]] | ||
| [def __ConnectCondition__ [@boost:/doc/html/boost_asio/reference/ConnectCondition.html ['ConnectCondition]]] | ||
| [def __ConnectHandler__ [@boost:/doc/html/boost_asio/reference/ConnectHandler.html ['ConnectHandler]]] | ||
| [def __ConstBufferSequence__ [@boost:/doc/html/boost_asio/reference/ConstBufferSequence.html ['ConstBufferSequence]]] | ||
| [def __EndpointSequence__ [@boost:/doc/html/boost_asio/reference/EndpointSequence.html ['EndpointSequence]]] | ||
| [def __Executor__ [@boost:/doc/html/boost_asio/reference/Executor1.html ['Executor]]] | ||
| [def __Executor1__ [@boost:/doc/html/boost_asio/reference/Executor1.html ['Executor1]]] | ||
| [def __Executor2__ [@boost:/doc/html/boost_asio/reference/Executor1.html ['Executor2]]] | ||
| [def __ExecutionContext__ [@boost:/doc/html/boost_asio/reference/ExecutionContext.html ['ExecutionContext]]] | ||
| [def __Handler__ [@boost:/doc/html/boost_asio/reference/Handler.html ['Handler]]] | ||
| [def __IteratorConnectHandler__ [@boost:/doc/html/boost_asio/reference/IteratorConnectHandler.html ['IteratorConnectHandler]]] | ||
| [def __MutableBufferSequence__ [@boost:/doc/html/boost_asio/reference/MutableBufferSequence.html ['MutableBufferSequence]]] | ||
| [def __Protocol__ [@boost:/doc/html/boost_asio/reference/Protocol.html ['Protocol]]] | ||
| [def __RangeConnectHandler__ [@boost:/doc/html/boost_asio/reference/RangeConnectHandler.html ['RangeConnectHandler]]] | ||
| [def __ReadHandler__ [@boost:/doc/html/boost_asio/reference/ReadHandler.html ['ReadHandler]]] | ||
| [def __SyncReadStream__ [@boost:/doc/html/boost_asio/reference/SyncReadStream.html ['SyncReadStream]]] | ||
| [def __SyncWriteStream__ [@boost:/doc/html/boost_asio/reference/SyncWriteStream.html ['SyncWriteStream]]] | ||
| [def __WriteHandler__ [@boost:/doc/html/boost_asio/reference/WriteHandler.html ['WriteHandler]]] | ||
| [def __DynamicBuffer__v1__ [@boost:/doc/html/boost_asio/reference/DynamicBuffer_v1.html ['DynamicBuffer_v1']]] | ||
| [def __DynamicBuffer__v2__ [@boost:/doc/html/boost_asio/reference/DynamicBuffer_v2.html ['DynamicBuffer_v2']]] | ||
|
|
||
| [/ Beast Named Requirements ] | ||
|
|
||
| [def __AsyncStream__ [link beast.concepts.streams.AsyncStream ['AsyncStream]]] | ||
| [def __Body__ [link beast.concepts.Body ['Body]]] | ||
| [def __BodyReader__ [link beast.concepts.BodyReader ['BodyReader]]] | ||
| [def __BodyWriter__ [link beast.concepts.BodyWriter ['BodyWriter]]] | ||
| [def __BufferSequence__ [link beast.concepts.BufferSequence ['BufferSequence]]] | ||
| [def __BuffersGenerator__ [link beast.concepts.BufferSequence ['BuffersGenerator]]] | ||
| [def __DynamicBuffer__ [link beast.concepts.DynamicBuffer ['DynamicBuffer]]] | ||
| [def __Fields__ [link beast.concepts.Fields ['Fields]]] | ||
| [def __FieldsWriter__ [link beast.concepts.FieldsWriter ['FieldsWriter]]] | ||
| [def __File__ [link beast.concepts.File ['File]]] | ||
| [def __RatePolicy__ [link beast.concepts.RatePolicy ['RatePolicy]]] | ||
| [def __Stream__ [link beast.concepts.streams ['Stream]]] | ||
| [def __SyncStream__ [link beast.concepts.streams.SyncStream ['SyncStream]]] | ||
|
|
||
| [/ Beast Identifiers ] | ||
|
|
||
| [def __basic_fields__ [link beast.ref.boost__beast__http__basic_fields `basic_fields`]] | ||
| [def __basic_multi_buffer__ [link beast.ref.boost__beast__basic_multi_buffer `basic_multi_buffer`]] | ||
| [def __basic_parser__ [link beast.ref.boost__beast__http__basic_parser `basic_parser`]] | ||
| [def __bind_handler__ [link beast.ref.boost__beast__bind_handler `bind_handler`]] | ||
| [def __buffer_body__ [link beast.ref.boost__beast__http__buffer_body `buffer_body`]] | ||
| [def __fields__ [link beast.ref.boost__beast__http__fields `fields`]] | ||
| [def __flat_buffer__ [link beast.ref.boost__beast__flat_buffer `flat_buffer`]] | ||
| [def __header__ [link beast.ref.boost__beast__http__header `header`]] | ||
| [def __message__ [link beast.ref.boost__beast__http__message `message`]] | ||
| [def __multi_buffer__ [link beast.ref.boost__beast__multi_buffer `multi_buffer`]] | ||
| [def __parser__ [link beast.ref.boost__beast__http__parser `parser`]] | ||
| [def __serializer__ [link beast.ref.boost__beast__http__serializer `serializer`]] | ||
| [def __flat_static_buffer__ [link beast.ref.boost__beast__flat_static_buffer `flat_static_buffer`]] | ||
| [def __flat_static_buffer_base__ [link beast.ref.boost__beast__flat_static_buffer_base `flat_static_buffer_base`]] | ||
| [def __websocket_stream__ [link beast.ref.boost__beast__websocket__stream `websocket::stream`]] | ||
|
|
||
| [/ Dingbat Legend] | ||
|
|
||
| [def __new__ [role green \u2605]] | ||
| [def __example__ \U0001f4a1] | ||
| [def __video__ \U0001f3a6] | ||
| [def __report__ \U0001f4cb] | ||
| [def __star__ \u2b50] | ||
|
|
||
| [/ | ||
| VFALCO unfortunately quickbook wants relative paths and we have no | ||
| variables so all of the .cpp and .hpp files are placed here to keep | ||
| the paths close to absolute. | ||
| ] | ||
|
|
||
| [import ../../example/doc/http_examples.hpp] | ||
| [import ../../example/echo-op/echo_op.cpp] | ||
| [import ../../example/http/client/sync/http_client_sync.cpp] | ||
| [import ../../example/websocket/client/sync/websocket_client_sync.cpp] | ||
|
|
||
| [import ../../include/boost/beast/http/basic_file_body.hpp] | ||
| [import ../../include/boost/beast/websocket/stream_fwd.hpp] | ||
|
|
||
| [import ../../test/doc/exemplars.cpp] | ||
| [import ../../test/doc/core_snippets.cpp] | ||
| [import ../../test/doc/http_snippets.cpp] | ||
|
|
||
| [import ../../test/doc/core_1_refresher.cpp] | ||
| [import ../../test/doc/core_3_timeouts.cpp] | ||
| [import ../../test/doc/core_4_layers.cpp] | ||
| [import ../../test/doc/http_10_custom_parser.cpp] | ||
| [import ../../test/doc/websocket_common.ipp] | ||
| [import ../../test/doc/websocket.cpp] | ||
| [import ../../test/doc/websocket_1_connecting.cpp] | ||
| [import ../../test/doc/websocket_2_handshaking.cpp] | ||
| [import ../../test/doc/websocket_3_decorator.cpp] | ||
| [import ../../test/doc/websocket_4_messages.cpp] | ||
| [import ../../test/doc/websocket_5_control_frames.cpp] | ||
| [import ../../test/doc/websocket_6_timeouts.cpp] | ||
| [import ../../test/doc/websocket_7_teardown.cpp] | ||
| [import ../../test/doc/websocket_8_notes.cpp] | ||
|
|
||
| [import ../../include/boost/beast/core/detect_ssl.hpp] | ||
| [import ../../include/boost/beast/version.hpp] | ||
| [import ../../test/beast/core/rate_policy.cpp] | ||
|
|
||
| __new__ indicates a new or updated section in this version. | ||
|
|
||
| __example__ contains example source code. | ||
|
|
||
| __video__ contains video presentation content | ||
|
|
||
| [section:quickref Reference] | ||
|
|
||
| __new__ indicates an item that was recently added. | ||
|
|
||
| [xinclude quickref.xml] | ||
| [endsect] | ||
| [block'''<reference id="beast_hidden"><title>This Page Intentionally Left Blank 1/2</title>'''] | ||
| [section:ref This Page Intentionally Left Blank 2/2] | ||
| [include reference.qbk] | ||
| [endsect] | ||
| [block'''</reference>'''] | ||
|
|
||
| [include release_notes.qbk] | ||
| [include version.qbk] | ||
|
|
||
| [include 01_intro/_intro.qbk] | ||
| [include 02_examples/_examples.qbk] | ||
| [include 03_core/_core.qbk] | ||
| [include 04_http/_http.qbk] | ||
| [include 05_http_examples/_http_examples.qbk] | ||
| [include 06_websocket/_websocket.qbk] | ||
| [include 07_concepts/_concepts.qbk] | ||
| [include 08_design/_design.qbk] | ||
|
|
||
| [xinclude index.xml] |
There was a problem hiding this comment.
Integrate Chinese documentation into the build system.
The new Chinese documentation file is not referenced in doc/Jamfile. According to the current build configuration, only qbk/main.qbk (English version) is processed. To build the Chinese documentation, you need to add corresponding xml and boostbook rules in the Jamfile.
As per coding guidelines (Context snippet 1): The xml rule currently only references qbk/main.qbk but does not include qbk/main_zh_Hans.qbk. To properly build the Chinese documentation, a separate xml rule needs to be added for the Chinese variant.
📝 Example Jamfile additions needed
Add to doc/Jamfile:
# Chinese documentation
xml beast_doc_zh_Hans
:
qbk/main_zh_Hans.qbk
:
<dependency>images
<dependency>reference.qbk
;
explicit beast_doc_zh_Hans ;
boostbook beast_zh_Hans
:
beast_doc_zh_Hans
:
<xsl:param>boost.root=../../../..
<xsl:param>chapter.autolabel=1
# ... other parameters same as English version
:
<dependency>images
;
Note: You'll also need to remove the <dependency>reference.qbk once that issue is resolved.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/main_zh_Hans.qbk` around lines 1 - 200, The Jamfile is missing rules
for the new Chinese Quickbook file (qbk/main_zh_Hans.qbk); add a new xml rule
(e.g. beast_doc_zh_Hans) that lists qbk/main_zh_Hans.qbk and the same
dependencies used by the English xml rule, then add a corresponding boostbook
rule (e.g. beast_zh_Hans) that depends on beast_doc_zh_Hans and mirrors the
English boostbook parameters (xsl:param entries and image dependency) so the
Chinese variant is built; ensure to remove or adjust the
<dependency>reference.qbk later as noted.
| [include release_notes.qbk] | ||
| [include version.qbk] | ||
|
|
||
| [include 01_intro/_intro.qbk] | ||
| [include 02_examples/_examples.qbk] | ||
| [include 03_core/_core.qbk] | ||
| [include 04_http/_http.qbk] | ||
| [include 05_http_examples/_http_examples.qbk] | ||
| [include 06_websocket/_websocket.qbk] | ||
| [include 07_concepts/_concepts.qbk] | ||
| [include 08_design/_design.qbk] |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify existence of included .qbk files for Chinese translation
echo "Checking for included .qbk files..."
# List of files to check
files=(
"doc/qbk/release_notes.qbk"
"doc/qbk/version.qbk"
"doc/qbk/01_intro/_intro.qbk"
"doc/qbk/02_examples/_examples.qbk"
"doc/qbk/03_core/_core.qbk"
"doc/qbk/04_http/_http.qbk"
"doc/qbk/05_http_examples/_http_examples.qbk"
"doc/qbk/06_websocket/_websocket.qbk"
"doc/qbk/07_concepts/_concepts.qbk"
"doc/qbk/08_design/_design.qbk"
)
for file in "${files[@]}"; do
if [ -f "$file" ]; then
echo "✓ Found: $file"
else
echo "✗ Missing: $file"
fi
done
# Check for Chinese variants with _zh_Hans suffix
echo ""
echo "Checking for _zh_Hans variants..."
fd -t f "_zh_Hans.qbk" doc/qbk/Repository: CppDigest/beast
Length of output: 582
Update line 188 to include the Chinese version of release notes.
Line 188 should reference [include release_notes_zh_Hans.qbk] instead of the English version. A Chinese translation of the release notes file (release_notes_zh_Hans.qbk) exists in the repository but is not being included in this Chinese translation file.
Additionally, verify whether Chinese translations for the other included sections (version.qbk, 01_intro through 08_design) are intended. Currently, only the main file and release notes have _zh_Hans variants; all other sections will fall back to English content.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/main_zh_Hans.qbk` around lines 188 - 198, Replace the English release
notes include in the Chinese main file by switching the include from
release_notes.qbk to release_notes_zh_Hans.qbk (update the line that currently
reads [include release_notes.qbk] to reference [include
release_notes_zh_Hans.qbk]); then scan the other includes (version.qbk,
01_intro/_intro.qbk … 08_design/_design.qbk) to confirm whether corresponding
_zh_Hans variants exist and, if Chinese variants are intended, replace those
includes with their _zh_Hans counterparts or document that they will fall back
to English.
Currently translated at 0.0% (0 of 4 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / Version (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-version-qbk/zh_Hans/
Currently translated at 0.0% (0 of 303 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / Release Notes (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-release-notes-qbk/zh_Hans/
Currently translated at 0.0% (0 of 30 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Bodyreader (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-bodyreader-qbk/zh_Hans/
Currently translated at 0.0% (0 of 12 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Streams (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-streams-qbk/zh_Hans/
Currently translated at 0.0% (0 of 37 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Dynamicbuffer (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-dynamicbuffer-qbk/zh_Hans/
Updated by "Cleanup translation files" add-on in Weblate. Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Dynamicbuffer (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-dynamicbuffer-qbk/
Currently translated at 0.0% (0 of 30 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Ratepolicy (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-ratepolicy-qbk/zh_Hans/
There was a problem hiding this comment.
Actionable comments posted: 15
🧹 Nitpick comments (1)
doc/qbk/07_concepts/File_zh_Hans.qbk (1)
86-87: Extra blank line within table cell.There's an unnecessary blank line before the closing bracket on line 87, which may affect Quickbook rendering. Similar trailing whitespace exists on lines 70, 85, 99, 112, 126, and 165 (space before
]).Proposed fix for this cell
The function will ensure that `!ec` is `true` if there was no error or set to the appropriate error code if an error - occurred. - + occurred. ] ]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@doc/qbk/07_concepts/File_zh_Hans.qbk` around lines 86 - 87, Remove the extra blank line and any trailing spaces immediately before the closing table-cell bracket (the standalone "]") in the File_zh_Hans.qbk table cell; open the table cell where you see the solitary "]" (the closing bracket token) and delete the blank line and trailing whitespace so the bracket directly follows the last content line, and repeat the same fix for the other occurrences noted (the trailing space before `]` on the other cells).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@doc/qbk/07_concepts/BodyReader_zh_Hans.qbk`:
- Around line 27-30: Merge the English fragment "changes in subsequent
versions." into the preceding warning line and replace the entire warning text
with a fully translated Chinese sentence; specifically change the two-line
warning block that currently contains "这些要求可能发生非向后兼容的变更" and "changes in
subsequent versions." into a single Chinese line such as
"这些要求可能在后续版本中发生非向后兼容的变更。" so the warning is fully translated and reads as one
coherent sentence.
- Around line 16-17: Replace the untranslated English fragment "to compress it
first." in BodyReader_zh_Hans.qbk so the sentence reads fully in Chinese; update
the line to the suggested translation "在存储前对传入的主体数据进行转换(例如先进行压缩)" to make the
documentation consistent and complete.
In `@doc/qbk/07_concepts/BuffersGenerator_zh_Hans.qbk`:
- Around line 10-145: The zh_Hans translation file still contains English
content (section title "BuffersGenerator", headings like "Associated Types",
"Requirements", the table entries, and the exemplar struct `BuffersGenerator`),
so update the document by replacing all English prose, table text, headings, and
exemplar comments with accurate Simplified Chinese (zh-Hans) equivalents; if a
translation is not yet available, remove this localized file from the PR instead
of merging; locate the content by searching for the section marker
`section:BuffersGenerator BuffersGenerator`, the exemplar `struct
BuffersGenerator`, and headings such as "Associated Types"/"Requirements" to
ensure all English strings are translated or the file is omitted.
In `@doc/qbk/07_concepts/FieldsWriter_zh_Hans.qbk`:
- Around line 10-100: The file FieldsWriter_zh_Hans.qbk contains English text
but is named for Simplified Chinese; either supply the proper Chinese
translation from Weblate for the entire content (translate the
section/heading/table/model blocks including "section:FieldsWriter", "Associated
Types", "Requirements", the table entries for W::const_buffers_type and
constructors, and the model reference basic_fields::writer), or if this is
intentionally a placeholder, rename the file to remove the locale (e.g.,
FieldsWriter.qbk) or add a clear untranslated placeholder marker/comment and
update the project metadata to reflect it so builds/users aren’t confused; also
verify and, if missing, re-sync the translated strings from Weblate so
translation progress aligns with the commit messages.
In `@doc/qbk/07_concepts/File_zh_Hans.qbk`:
- Around line 8-12: The file labeled with the _zh_Hans locale contains English
text for the File concept ([section:File File] and symbol [*File]); either
translate the content into Simplified Chinese or, if this English copy is
intentional as a template, remove/rename the _zh_Hans suffix and add a comment
stating it's a template. Update the file so the displayed content matches the
filename locale: replace the English sentences under the [section:File File]
heading with their Simplified Chinese translations or rename the file and
document why no translation exists.
- Line 41: Replace the incorrect term "constructable" with the standard C++ term
"constructible" in the documentation line that currently reads "Default
constructable"; update it to "Default constructible" and, where appropriate, use
the exact standard symbol name std::is_default_constructible to match C++
terminology (e.g., in the sentence or nearby references).
- Around line 34-36: The "Valid expressions" table contains duplicated header
rows—two consecutive header rows ([[Expression] [Type] [Semantics,
Pre/Post-conditions]] and [[Operation] [Return Type] [Semantics,
Pre/Post-conditions]])—so remove the accidental duplicate header line and leave
a single header row (choose the correct header labels to keep) to prevent
rendering issues; update the table in the File_zh_Hans.qbk content where the
"Valid expressions" table is defined.
In `@doc/qbk/07_concepts/RatePolicy_zh_Hans.qbk`:
- Around line 49-53: The note for available_write_bytes() mistakenly says "读取操作"
when describing the retry behavior; change that to "写入操作" so it correctly
documents write throttling and retry semantics for the function
available_write_bytes().
- Around line 18-21: The warning block contains mixed languages: replace the
English fragment "changes in subsequent versions." with its full Simplified
Chinese translation (e.g., "在后续版本中发生更改") so the entire warning is in Chinese;
edit the warning paragraph that currently reads "这些要求可能会发生非向后兼容的变更 changes in
subsequent versions." and produce a single fully translated Chinese sentence
inside that warning block.
- Around line 27-29: Update the second bullet (the entry for symbol `x`) to
match the style of the other entries: replace the awkward "x值" phrasing with a
clear Chinese description such as "x 表示某个类型为 `P` 的值" (consistent with `P` and
`a`), so the three items read uniformly (`P`, `x`, `a`) and avoid the
concatenated "x值" wording.
In `@doc/qbk/07_concepts/Streams_zh_Hans.qbk`:
- Around line 10-37: The Quickbook references use undefined Chinese macros
__异步读流__, __异步写流__, __同步读流__, and __同步写流__; either add corresponding macro
definitions in the Chinese main Quickbook (e.g., define __异步读流__ ->
__AsyncReadStream__, __异步写流__ -> __AsyncWriteStream__, __同步读流__ ->
__SyncReadStream__, __同步写流__ -> __SyncWriteStream__ in main_zh_Hans.qbk) or
update the usages in Streams_zh_Hans.qbk to the existing English macros
(__AsyncReadStream__, __AsyncWriteStream__, __SyncReadStream__,
__SyncWriteStream__) so the references resolve during the doc build.
In `@doc/qbk/release_notes_zh_Hans.qbk`:
- Around line 20-32: The Simplified Chinese release notes contain untranslated
English explanatory sentences (e.g., around the references to
http::parser::merge_all_trailers, http::basic_parser::on_trailer_field_impl, and
http::field); translate those prose blocks into zh-Hans while preserving the
code identifiers, link anchors, and formatting exactly as-is, and apply the same
translation cleanup to the other flagged ranges mentioned in the review so the
file contains only localized explanatory text with code symbols left intact.
- Around line 422-424: Update the release note text to correct the misspelled
header name: replace the incorrect `core/buffers_adapator.hpp` with the correct
`core/buffers_adaptor.hpp` and ensure the replacement type name
`buffers_adaptor` is referenced consistently (the removed alias
`buffers_adapter` remains as-is in the note). Locate the string occurrences in
the content that mention `core/buffers_adapator.hpp` and change them to
`core/buffers_adaptor.hpp`.
- Line 18: The Quickbook `issue` macro has been translated to Chinese (e.g., "问题
3042"), which breaks Quickbook markup; revert all translated instances to the
original `issue` macro (for example change "[问题 3042]" back to "[issue 3042]" or
use the inline `issue` macro syntax) throughout the document and other Quickbook
files, using a global search/replace for the translated token pattern and
ensuring occurrences inside square brackets or inline markup are restored to the
exact `issue` identifier so references remain valid.
- Around line 1041-1044: Replace the incorrect reference IDs that currently
point all test utilities to beast.ref.boost__beast__test__error: update the link
for test::connect to use beast.ref.boost__beast__test__connect, update
test::fail_count to beast.ref.boost__beast__test__fail_count, and update
test::stream to beast.ref.boost__beast__test__stream so each utility
(test::connect, test::error, test::fail_count, test::stream) links to its
correct beast.ref identifier.
---
Nitpick comments:
In `@doc/qbk/07_concepts/File_zh_Hans.qbk`:
- Around line 86-87: Remove the extra blank line and any trailing spaces
immediately before the closing table-cell bracket (the standalone "]") in the
File_zh_Hans.qbk table cell; open the table cell where you see the solitary "]"
(the closing bracket token) and delete the blank line and trailing whitespace so
the bracket directly follows the last content line, and repeat the same fix for
the other occurrences noted (the trailing space before `]` on the other cells).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 93098666-391b-4a23-a097-369ce76f8c00
📒 Files selected for processing (13)
doc/qbk/07_concepts/BodyReader_zh_Hans.qbkdoc/qbk/07_concepts/BodyWriter_zh_Hans.qbkdoc/qbk/07_concepts/Body_zh_Hans.qbkdoc/qbk/07_concepts/BuffersGenerator_zh_Hans.qbkdoc/qbk/07_concepts/DynamicBuffer_zh_Hans.qbkdoc/qbk/07_concepts/FieldsWriter_zh_Hans.qbkdoc/qbk/07_concepts/Fields_zh_Hans.qbkdoc/qbk/07_concepts/File_zh_Hans.qbkdoc/qbk/07_concepts/RatePolicy_zh_Hans.qbkdoc/qbk/07_concepts/Streams_zh_Hans.qbkdoc/qbk/07_concepts/_concepts_zh_Hans.qbkdoc/qbk/release_notes_zh_Hans.qbkdoc/qbk/version_zh_Hans.qbk
✅ Files skipped from review due to trivial changes (6)
- doc/qbk/07_concepts/Fields_zh_Hans.qbk
- doc/qbk/version_zh_Hans.qbk
- doc/qbk/07_concepts/DynamicBuffer_zh_Hans.qbk
- doc/qbk/07_concepts/Body_zh_Hans.qbk
- doc/qbk/07_concepts/BodyWriter_zh_Hans.qbk
- doc/qbk/07_concepts/_concepts_zh_Hans.qbk
| * 在存储前对传入的主体数据进行转换(例如) | ||
| to compress it first. |
There was a problem hiding this comment.
Incomplete translation: English text left in Chinese documentation.
Line 17 contains untranslated English text to compress it first. which should be translated to Chinese to maintain consistency. The sentence at line 16 appears incomplete.
Suggested translation: 在存储前对传入的主体数据进行转换(例如先进行压缩)
Proposed fix
-* 在存储前对传入的主体数据进行转换(例如)
- to compress it first.
+* 在存储前对传入的主体数据进行转换(例如先进行压缩)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| * 在存储前对传入的主体数据进行转换(例如) | |
| to compress it first. | |
| * 在存储前对传入的主体数据进行转换(例如先进行压缩) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/07_concepts/BodyReader_zh_Hans.qbk` around lines 16 - 17, Replace the
untranslated English fragment "to compress it first." in BodyReader_zh_Hans.qbk
so the sentence reads fully in Chinese; update the line to the suggested
translation "在存储前对传入的主体数据进行转换(例如先进行压缩)" to make the documentation consistent and
complete.
| [warning | ||
| 这些要求可能发生非向后兼容的变更 | ||
| changes in subsequent versions. | ||
| ] |
There was a problem hiding this comment.
Incomplete translation: Warning message left partially in English.
Line 29 contains untranslated English text changes in subsequent versions. that should be merged with line 28 and translated to Chinese.
Proposed fix
[warning
- 这些要求可能发生非向后兼容的变更
- changes in subsequent versions.
+ 这些要求在后续版本中可能发生非向后兼容的变更。
]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/07_concepts/BodyReader_zh_Hans.qbk` around lines 27 - 30, Merge the
English fragment "changes in subsequent versions." into the preceding warning
line and replace the entire warning text with a fully translated Chinese
sentence; specifically change the two-line warning block that currently contains
"这些要求可能发生非向后兼容的变更" and "changes in subsequent versions." into a single Chinese
line such as "这些要求可能在后续版本中发生非向后兼容的变更。" so the warning is fully translated and
reads as one coherent sentence.
| [section:FieldsWriter FieldsWriter] | ||
|
|
||
| A [*FieldsWriter] provides a algorithm to obtain a sequence of buffers | ||
| representing the complete serialized HTTP/1 header for a set of fields. | ||
| The implementation constructs an instance of this type when needed, and | ||
| calls into it once to retrieve the buffers. | ||
|
|
||
| [heading Associated Types] | ||
|
|
||
| * __FieldsWriter__ | ||
|
|
||
| [heading Requirements] | ||
|
|
||
| [warning | ||
| These requirements may undergo non-backward compatible | ||
| changes in subsequent versions. | ||
| ] | ||
|
|
||
| In this table: | ||
|
|
||
| * `W` denotes a type that meets the requirements of [*FieldsWriter]. | ||
| * `F` denotes a __Fields__ where | ||
| `std::is_same<W, F::writer>::value == true`. | ||
| * `a` is a value of type `W`. | ||
| * `f` is a value of type `F`. | ||
| * `v` is an `unsigned` value representing the HTTP version. | ||
| * `c` is an `unsigned` representing the HTTP status-code. | ||
| * `m` is a value of type [link beast.ref.boost__beast__http__verb `verb`]. | ||
|
|
||
| [table Valid expressions | ||
| [[expression][type][semantics, pre/post-conditions]] | ||
| [ | ||
| [`W::const_buffers_type`] | ||
| [] | ||
| [ | ||
| A type which meets the requirements of __ConstBufferSequence__. | ||
| This is the type of buffer returned by `W::get`. | ||
| ] | ||
| ][ | ||
| [`W{f,v,m}`] | ||
| [] | ||
| [ | ||
| The implementation calls this constructor to indicate | ||
| that the fields being serialized form part of an HTTP | ||
| request. The lifetime of `f` is guaranteed | ||
| to end no earlier than after the `W` is destroyed. | ||
| ] | ||
| ][ | ||
| [`W{f,v,c}`] | ||
| [] | ||
| [ | ||
| The implementation calls this constructor to indicate | ||
| that the fields being serialized form part of an HTTP | ||
| response. The lifetime of `f` is guaranteed | ||
| to end no earlier than after the `W` is destroyed. | ||
| ] | ||
| ][ | ||
| [`W{f}`] | ||
| [] | ||
| [ | ||
| The implementation calls this constructor to indicate | ||
| that the fields being serialized form part of a chunked | ||
| encoding final-chunk trailer. The lifetime of `f` is | ||
| guaranteed to end no earlier than after the `W` is | ||
| destroyed. | ||
| ] | ||
| ][ | ||
| [`a.get()`] | ||
| [`W::const_buffers_type`] | ||
| [ | ||
| Called once after construction, this function returns | ||
| a constant buffer sequence containing the serialized | ||
| representation of the HTTP request or response including | ||
| the final carriage return linefeed sequence (`"\r\n"`). | ||
|
|
||
| Copies may be made of the returned sequence, but the | ||
| underlying memory is still owned by the writer. The | ||
| implementation will destroy all copies of the buffer | ||
| sequence before destroying `a`. | ||
| ] | ||
| ]] | ||
|
|
||
| [heading Exemplar] | ||
|
|
||
| [concept_FieldsWriter] | ||
|
|
||
| [heading Models] | ||
|
|
||
| * [link beast.ref.boost__beast__http__basic_fields.writer `basic_fields::writer`] | ||
|
|
||
| [endsect] |
There was a problem hiding this comment.
File named as Chinese translation but contains only English text.
This file is named FieldsWriter_zh_Hans.qbk, indicating it should contain Simplified Chinese translations, but the entire content from the section title through all headings, requirements, table entries, and model references is in English.
Given the PR objective states this is a translation update from Weblate and the commit messages indicate 0.0% translation progress on several components, this may be intentional as a placeholder. However, shipping untranslated files with locale-specific naming could confuse users and documentation build systems expecting Chinese content.
Please confirm whether:
- This is intentionally a placeholder awaiting future translation, or
- The translated content was not properly synchronized from Weblate
,
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/07_concepts/FieldsWriter_zh_Hans.qbk` around lines 10 - 100, The file
FieldsWriter_zh_Hans.qbk contains English text but is named for Simplified
Chinese; either supply the proper Chinese translation from Weblate for the
entire content (translate the section/heading/table/model blocks including
"section:FieldsWriter", "Associated Types", "Requirements", the table entries
for W::const_buffers_type and constructors, and the model reference
basic_fields::writer), or if this is intentionally a placeholder, rename the
file to remove the locale (e.g., FieldsWriter.qbk) or add a clear untranslated
placeholder marker/comment and update the project metadata to reflect it so
builds/users aren’t confused; also verify and, if missing, re-sync the
translated strings from Weblate so translation progress aligns with the commit
messages.
| [section:streams 流] | ||
|
|
||
| 在Beast和网络编程的语境中,流表示两个程序或主机之间的全双工连接,其中以字节表示的数据能够按写入顺序可靠接收。流可以支持同步和/或异步读写的任意组合。 | ||
|
|
||
| 流概念基于网络领域的命名要求: | ||
|
|
||
| [heading:Stream 流] | ||
|
|
||
| 一个类型建模为[*流]需满足以下一个或两个要求: | ||
|
|
||
| * [*异步流] | ||
| * [*同步流] | ||
|
|
||
| [heading:AsyncStream 异步流] | ||
|
|
||
| 一个类型建模为[*异步流]需满足以下要求: | ||
|
|
||
| * __异步读流__ | ||
| * __异步写流__ | ||
|
|
||
| [heading:SyncStream 同步流] | ||
|
|
||
| 一个类型建模为[*同步流]需满足以下要求: | ||
|
|
||
| * __同步读流__ | ||
| * __同步写流__ | ||
|
|
||
| [endsect] |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Search for Chinese macro definitions in the documentation build files
# Expect: Definitions for __异步读流__, __异步写流__, __同步读流__, __同步写流__
echo "=== Searching for Chinese macro definitions ==="
rg -n '异步读流|异步写流|同步读流|同步写流' --type-add 'qbk:*.qbk' --type qbk
echo ""
echo "=== Checking for macro definition files (typically in a defs or common qbk file) ==="
fd -e qbk -x grep -l 'def ' {} \; 2>/dev/null | head -20
echo ""
echo "=== Looking for template/macro definition patterns ==="
rg -n '\[def\s+__' --type-add 'qbk:*.qbk' --type qbk | head -30Repository: CppDigest/beast
Length of output: 4923
🏁 Script executed:
#!/bin/bash
# Comprehensive search for Chinese macro definitions
echo "=== Searching for all macro definitions for Chinese stream types ==="
rg -n '\[def\s+__(异步读流|异步写流|同步读流|同步写流)__' --type-add 'qbk:*.qbk' --type qbk
echo ""
echo "=== Checking if English macro definitions exist ==="
rg -n '\[def\s+__(AsyncReadStream|AsyncWriteStream|SyncReadStream|SyncWriteStream)__' --type-add 'qbk:*.qbk' --type qbk
echo ""
echo "=== Checking English stream concept file for macro structure ==="
fd -type f -name "*Streams*" -not -path "*zh_Hans*" -path "*.qbk"
echo ""
echo "=== Checking if there's a translation mapping or common defs file ==="
fd -type f -name "*defs*" -o -name "*common*" | grep qbk
echo ""
echo "=== Checking main_zh_Hans.qbk for ALL stream-related macro definitions ==="
rg -n '\[def\s+__.*Stream' --type-add 'qbk:*.qbk' --type qbk doc/qbk/main_zh_Hans.qbkRepository: CppDigest/beast
Length of output: 2574
🏁 Script executed:
#!/bin/bash
# Check for any definitions or special handling of Chinese stream macros
echo "=== Searching all qbk files for Chinese stream macro definitions ==="
rg -n '异步读流|异步写流|同步读流|同步写流' --type-add 'qbk:*.qbk' --type qbk | grep -v "Streams_zh_Hans.qbk"
echo ""
echo "=== Checking if there's any include or reference pattern for Chinese macros ==="
rg -n '\[def\s+__' doc/qbk/main_zh_Hans.qbk | wc -l
echo ""
echo "=== Checking the English Streams file for comparison ==="
fd -type f -name "Streams.qbk" -not -path "*zh*"
echo ""
echo "=== Count total macro definitions in main_zh_Hans.qbk ==="
rg -c '\[def\s+__' doc/qbk/main_zh_Hans.qbk
echo ""
echo "=== List ALL macro definitions in main_zh_Hans.qbk to check for Chinese stream macros ==="
rg '\[def\s+__' doc/qbk/main_zh_Hans.qbk | grep -i 'stream\|read\|write'Repository: CppDigest/beast
Length of output: 2205
Chinese macro definitions are missing and will cause documentation build failures.
The documentation file references Chinese-named Quickbook macros (__异步读流__, __异步写流__, __同步读流__, __同步写流__) in lines 27–28 and 34–35, but none of these macros are defined in the documentation configuration. While the English equivalents (__AsyncReadStream__, __AsyncWriteStream__, __SyncReadStream__, __SyncWriteStream__) are properly defined in doc/qbk/main_zh_Hans.qbk, the Chinese versions do not exist, which will cause unresolved reference errors during the documentation build.
Either define these Chinese macros in main_zh_Hans.qbk or replace the references with the English macro names.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/07_concepts/Streams_zh_Hans.qbk` around lines 10 - 37, The Quickbook
references use undefined Chinese macros __异步读流__, __异步写流__, __同步读流__, and
__同步写流__; either add corresponding macro definitions in the Chinese main
Quickbook (e.g., define __异步读流__ -> __AsyncReadStream__, __异步写流__ ->
__AsyncWriteStream__, __同步读流__ -> __SyncReadStream__, __同步写流__ ->
__SyncWriteStream__ in main_zh_Hans.qbk) or update the usages in
Streams_zh_Hans.qbk to the existing English macros (__AsyncReadStream__,
__AsyncWriteStream__, __SyncReadStream__, __SyncWriteStream__) so the references
resolve during the doc build.
|
|
||
| [*API Changes] | ||
|
|
||
| * [问题 3042] `http::parser` 默认拒绝非标准尾部字段。 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify whether issue references were translated from the Quickbook macro name.
rg -n '\[问题\s+[0-9]+' --glob '*.qbk'
rg -n '\[issue\s+[0-9]+' --glob '*.qbk'Repository: CppDigest/beast
Length of output: 38530
Keep the Quickbook issue macro untranslated.
issue is markup, not user-facing prose. Translating it to 问题 changes the Quickbook syntax and will break issue references throughout this file. This pattern occurs over 100 times and must be fixed globally.
Suggested fix
-* [问题 3042] `http::parser` 默认拒绝非标准尾部字段。
+* [issue 3042] `http::parser` 默认拒绝非标准尾部字段。🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/release_notes_zh_Hans.qbk` at line 18, The Quickbook `issue` macro
has been translated to Chinese (e.g., "问题 3042"), which breaks Quickbook markup;
revert all translated instances to the original `issue` macro (for example
change "[问题 3042]" back to "[issue 3042]" or use the inline `issue` macro
syntax) throughout the document and other Quickbook files, using a global
search/replace for the translated token pattern and ensuring occurrences inside
square brackets or inline markup are restored to the exact `issue` identifier so
references remain valid.
| * If your code relies on a non-standard trailer field, consider setting | ||
| [link beast.ref.boost__beast__http__parser.merge_all_trailers.overload2 `http::parser::merge_all_trailers`] | ||
| after you have validated the `Trailer` header field in the header section of the message. | ||
| * [问题 3042] `http::basic_parser` 使用专用回调处理尾部字段。 | ||
| ['Actions Required]: | ||
| * Custom parsers derived from `http::basic_parser` must override the new virtual function | ||
| [link beast.ref.boost__beast__http__basic_parser.on_trailer_field_impl `http::basic_parser::on_trailer_field_impl`] | ||
| which is invoked for each field received while parsing the trailer section | ||
| of a chunked HTTP message. | ||
| * [问题 3042] `http::field` 常量已更新。 | ||
| ['Actions Required]: | ||
| * Most removed constants were unrelated to the HTTP protocol. If your code | ||
| used one of them, please use the corresponding string literal value. |
There was a problem hiding this comment.
This zh_Hans file still contains large untranslated prose blocks.
These ranges still include explanatory English sentences, not just code identifiers. That leaves the localized release notes mixed-language and hard to consume.
Also applies to: 261-265, 365-367, 388-397
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/release_notes_zh_Hans.qbk` around lines 20 - 32, The Simplified
Chinese release notes contain untranslated English explanatory sentences (e.g.,
around the references to http::parser::merge_all_trailers,
http::basic_parser::on_trailer_field_impl, and http::field); translate those
prose blocks into zh-Hans while preserving the code identifiers, link anchors,
and formatting exactly as-is, and apply the same translation cleanup to the
other flagged ranges mentioned in the review so the file contains only localized
explanatory text with code symbols left intact.
| * The file `core/buffers_adapter.hpp` has been removed along with the deprecated | ||
| alias typename `buffers_adapter`. Affected programs should use | ||
| ` core/buffers_adapator.hpp` and the type `buffers_adaptor`. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the documented header spelling against the repo.
fd 'buffers_.*\.hpp$'
rg -n 'buffers_adapator|buffers_adaptor|buffers_adapter' --glob '*.qbk' --glob '*.hpp'Repository: CppDigest/beast
Length of output: 2321
Fix the documented replacement header spelling.
core/buffers_adapator.hpp is misspelled here. If readers follow this migration note as written, they will look for the wrong header name. The correct header is core/buffers_adaptor.hpp.
Suggested fix
- ` core/buffers_adapator.hpp` and the type `buffers_adaptor`.
+ `core/buffers_adaptor.hpp` and the type `buffers_adaptor`.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| * The file `core/buffers_adapter.hpp` has been removed along with the deprecated | |
| alias typename `buffers_adapter`. Affected programs should use | |
| ` core/buffers_adapator.hpp` and the type `buffers_adaptor`. | |
| * The file `core/buffers_adapter.hpp` has been removed along with the deprecated | |
| alias typename `buffers_adapter`. Affected programs should use | |
| `core/buffers_adaptor.hpp` and the type `buffers_adaptor`. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/release_notes_zh_Hans.qbk` around lines 422 - 424, Update the release
note text to correct the misspelled header name: replace the incorrect
`core/buffers_adapator.hpp` with the correct `core/buffers_adaptor.hpp` and
ensure the replacement type name `buffers_adaptor` is referenced consistently
(the removed alias `buffers_adapter` remains as-is in the note). Locate the
string occurrences in the content that mention `core/buffers_adapator.hpp` and
change them to `core/buffers_adaptor.hpp`.
| [link beast.ref.boost__beast__test__error `test::connect`], | ||
| [link beast.ref.boost__beast__test__error `test::error`], | ||
| [link beast.ref.boost__beast__test__error `test::fail_count`], and | ||
| [link beast.ref.boost__beast__test__error `test::stream`] utilities for writing unit tests. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Inspect existing Beast ref IDs for the documented test utilities.
rg -n 'beast\.ref\.boost__beast__test__' --glob '*.qbk'
rg -n '\btest::(connect|error|fail_count|stream)\b' --glob '*.qbk'Repository: CppDigest/beast
Length of output: 2442
🏁 Script executed:
#!/bin/bash
# Search for where these test utilities are defined/anchored in the documentation
rg -n 'beast\.ref\.boost__beast__test__(connect|fail_count|stream)' --glob '*.qbk'
# Also search for their definitions in the main header or reference sections
rg -n '\[id beast\.ref\.boost__beast__test__' --glob '*.qbk'Repository: CppDigest/beast
Length of output: 41
🏁 Script executed:
#!/bin/bash
# Search for any reference definitions for test utilities
rg -n '\[id beast\.ref\.' --glob '*.qbk' | head -20
# Look for test utilities in a broader context
rg -n 'boost__beast__test' --glob '*.qbk' | head -30Repository: CppDigest/beast
Length of output: 908
🏁 Script executed:
#!/bin/bash
# List qbk files to understand the structure
find doc/qbk -name "*.qbk" -type f | sortRepository: CppDigest/beast
Length of output: 2620
🏁 Script executed:
#!/bin/bash
# Search for test utility definitions in the Beast include directory
find include -name "*.hpp" -type f 2>/dev/null | head -20
# Look for test utilities in the include directory
rg -n 'test::(connect|error|fail_count|stream)' include/ 2>/dev/null | head -20Repository: CppDigest/beast
Length of output: 41
🏁 Script executed:
#!/bin/bash
# Search for test namespace definitions
rg -n 'namespace test' -A 5 include/boost/beast/test/ 2>/dev/null | head -40
# Try to find these symbols in header files
rg -n 'struct connect|class connect|struct error|class error|struct fail_count|class fail_count|struct stream|class stream' include/boost/beast/test/ 2>/dev/null | head -40Repository: CppDigest/beast
Length of output: 41
🏁 Script executed:
#!/bin/bash
# Find where test utilities might be defined
fd -t f 'test' include/ 2>/dev/null | head -20
# Look for test utilities more broadly
rg -l 'test::connect|test::error|test::fail_count|test::stream' --type hpp --type h 2>/dev/null | head -10Repository: CppDigest/beast
Length of output: 41
🏁 Script executed:
#!/bin/bash
# Look for test directory at repo root
ls -la | grep -i test
# Search entire repo for these test utilities
rg -l 'connect|fail_count|stream' --type hpp | head -20
# Check if there's documentation about test utilities
rg -n 'test::connect|test::error|test::fail_count|test::stream' --type txt --type md 2>/dev/nullRepository: CppDigest/beast
Length of output: 1292
🏁 Script executed:
#!/bin/bash
# Look at the structure of reference IDs in qbk files
rg -n '\[id beast\.ref\.' doc/qbk --type-add 'qbk:*.qbk' | head -30
# Also check if there are any definitions for test utilities
rg -n 'test::(connect|error|fail_count|stream)' doc/qbk --type-add 'qbk:*.qbk' -B 2 -A 2 | head -50Repository: CppDigest/beast
Length of output: 2776
🏁 Script executed:
#!/bin/bash
# Search for Doxygen comments or actual definitions of test utilities
find . -name "*.hpp" -o -name "*.h" 2>/dev/null | xargs grep -l "test::" 2>/dev/null | head -10
# Look for where beast/test is defined
find . -path "*/beast/test*" -type f 2>/dev/null | head -20Repository: CppDigest/beast
Length of output: 41
🏁 Script executed:
#!/bin/bash
# Check overall repository structure
ls -la
# Look for test files/directories
find . -type d -name "test" 2>/dev/null | head -10
# Search for files containing these test utilities
rg -l "test::error" --max-count 20Repository: CppDigest/beast
Length of output: 1142
🏁 Script executed:
#!/bin/bash
# Check what's in the doc directory
ls -la doc/
# Look for generated reference documentation
find doc -type f -name "*.xml" -o -name "*.html" 2>/dev/null | head -20
# Search for test utility references in quickref or other reference files
cat doc/qbk/quickref.xml 2>/dev/null | grep -i "test::" | head -20Repository: CppDigest/beast
Length of output: 1361
Fix incorrect reference links for test utilities.
Lines 1041-1044 reference test::connect, test::fail_count, and test::stream but incorrectly link all four to beast.ref.boost__beast__test__error. The same issue exists in the English version at lines 1048-1051.
Correct the reference IDs to:
test::connect→beast.ref.boost__beast__test__connecttest::fail_count→beast.ref.boost__beast__test__fail_counttest::stream→beast.ref.boost__beast__test__stream
Suggested fix
-* 新的
- [link beast.ref.boost__beast__test__error `test::connect`],
- [link beast.ref.boost__beast__test__error `test::error`],
- [link beast.ref.boost__beast__test__error `test::fail_count`], and
- [link beast.ref.boost__beast__test__error `test::stream`] utilities for writing unit tests.
+* 新的
+ [link beast.ref.boost__beast__test__connect `test::connect`],
+ [link beast.ref.boost__beast__test__error `test::error`],
+ [link beast.ref.boost__beast__test__fail_count `test::fail_count`], and
+ [link beast.ref.boost__beast__test__stream `test::stream`] utilities for writing unit tests.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| [link beast.ref.boost__beast__test__error `test::connect`], | |
| [link beast.ref.boost__beast__test__error `test::error`], | |
| [link beast.ref.boost__beast__test__error `test::fail_count`], and | |
| [link beast.ref.boost__beast__test__error `test::stream`] utilities for writing unit tests. | |
| [link beast.ref.boost__beast__test__connect `test::connect`], | |
| [link beast.ref.boost__beast__test__error `test::error`], | |
| [link beast.ref.boost__beast__test__fail_count `test::fail_count`], and | |
| [link beast.ref.boost__beast__test__stream `test::stream`] utilities for writing unit tests. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@doc/qbk/release_notes_zh_Hans.qbk` around lines 1041 - 1044, Replace the
incorrect reference IDs that currently point all test utilities to
beast.ref.boost__beast__test__error: update the link for test::connect to use
beast.ref.boost__beast__test__connect, update test::fail_count to
beast.ref.boost__beast__test__fail_count, and update test::stream to
beast.ref.boost__beast__test__stream so each utility (test::connect,
test::error, test::fail_count, test::stream) links to its correct beast.ref
identifier.
Currently translated at 0.0% (0 of 32 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Buffersgenerator (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-buffersgenerator-qbk/zh_Hans/
Currently translated at 0.0% (0 of 23 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Body (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-body-qbk/zh_Hans/
Currently translated at 0.0% (0 of 26 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Bodywriter (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-bodywriter-qbk/zh_Hans/
Currently translated at 0.0% (0 of 40 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / File (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-file-qbk/zh_Hans/
Currently translated at 0.0% (0 of 3 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 07 Concepts / Buffersequence (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-07-concepts-buffersequence-qbk/zh_Hans/
Currently translated at 0.0% (0 of 11 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 03 Core / 8 Conf Macros (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-03-core-8-conf-macros-qbk/zh_Hans/
Currently translated at 0.0% (0 of 52 strings) Translation: Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / 03 Core / 9 Ssl Tls Certificate (qbk) Translate-URL: http://localhost:8000/projects/boost-beast-documentation-zh_Hans/boost-beast-documentation-doc-qbk-03-core-9-ssl-tls-certificate-qbk/zh_Hans/
Translations update from Weblate for Boost Beast Translation (zh_Hans)/Boost Beast Documentation / Doc / Qbk / Main (qbk).
Current translation status:
Summary by CodeRabbit