-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/translate #288
Feature/translate #288
Conversation
Warning Rate limit exceeded@newbe36524 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 11 minutes and 5 seconds before requesting another review. ⌛ 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. 📒 Files selected for processing (1)
WalkthroughThis pull request updates several GitHub Actions workflows and removes legacy workflow files related to Crowdin synchronization by refining cron schedules, removing version-tag matrix strategies, and switching to static branch names. In addition, a comprehensive set of new Chinese documentation files is added across multiple directories covering contributing guides, concepts, API overviews, and tutorials. No changes were made to exported or public API declarations. Changes
Sequence Diagram(s)sequenceDiagram
participant Cron as Cron Scheduler
participant Runner as Workflow Runner
participant Repo as GitHub Repository
participant Crowdin as Crowdin Service
Cron->>Runner: Trigger workflow (updated schedule)
Runner->>Repo: Remove old translation files & setup new directories
Runner->>Crowdin: Execute Crowdin action to download translations
Crowdin-->>Runner: Return translation data
Runner->>Repo: Create pull request (branch "l10n_crowdin_action", base "main")
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 8
🧹 Nitpick comments (82)
src/translated_content/zh_CN/docs/concepts/dapr-services/_index.md (1)
9-26
: Content Clarity and List Structure are Well-Established.
The document concisely presents an overview of Dapr services in Chinese. The bullet list clearly enumerates the core services with brief descriptions. Optionally, consider reviewing the punctuation within the bullet items (e.g., consistency between full-width and half-width punctuation) for a polished and uniform documentation style.src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/conversation-overview.md (1)
17-20
: Bullet List Consistency.
The bullet list explaining integration with other Dapr features is informative. However, the first bullet's trailing ",或" may suggest an incomplete thought. Please review whether an additional item should be added or if the wording should be modified for clarity.src/translated_content/zh_CN/docs/concepts/dapr-services/placement.md (3)
33-35
: Specify Language for Fenced Code BlockThe fenced code block under the HTTP请求 section does not specify a language. Specifying a language (e.g.,
http
orbash
) can improve syntax highlighting and clarity.Diff suggestion:
-``` +```http🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
33-33: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
46-46
: Use Proper Heading Instead of EmphasisThe text "Placement表API响应对象" is used for what appears to be a heading. For better semantic structure and accessibility, consider using a proper heading level (e.g.,
####
).Diff suggestion:
-**Placement表API响应对象** +#### Placement表API响应对象🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
46-46: Emphasis used instead of a heading
null(MD036, no-emphasis-as-heading)
53-53
: Refactor Anchor and Heading CombinationInstead of combining an HTML anchor tag with bold formatting for the "Actor主机信息" heading, consider using markdown header syntax with an embedded identifier. This approach is more consistent with the rest of the document.
Diff suggestion:
-<a id="actorhostinfo"></a>**Actor主机信息** +#### Actor主机信息 {#actorhostinfo}src/translated_content/zh_CN/docs/concepts/observability-concept.md (5)
15-16
: Distributed Systems Challenges & Punctuation Consistency
The sentence describing the challenges in distributed systems is comprehensive. However, note that the sentence ends with a Western period (.) rather than using a Chinese full stop (。). For consistency in a Chinese document, consider updating punctuation. Additionally, the phrase “对于由多个微服务组成的分布式系统来说” is grammatically correct, though double-check if any stylistic improvements (e.g., “构成” instead of “组成”) are desired based on internal style guidelines.🧰 Tools
🪛 LanguageTool
[uncategorized] ~15-~15: 固定搭配: “来说” 应与 “对” 或 “对于” 搭配使用:对于...来说。
Context: ... - 评估其性能 - 在问题发生时立即意识到 对于由多个微服务组成的分布式系统来说,这尤其具有挑战性,因为一个由多个调用组成的流程可能在一个微服务中开始并在另一个...(wb2)
17-21
: Production and Development Relevance
The section explaining the importance of observability in production and development phases is clear and well structured with bullet points. Again, consider reviewing punctuation consistency (e.g., replacing periods with Chinese full stops “。”) at the end of sentences to maintain a uniform style throughout the document.
30-31
: Dapr Advantages in Service Communication
The paragraph explains well how Dapr’s sidecar architecture helps in reducing the burden of adding in-application detection code. Minor punctuation adjustments (e.g., replacing the concluding period with “。”) would enhance consistency.
38-41
: Section: 自动追踪上下文生成
This section effectively explains how Dapr leverages the W3C追踪规范 to generate and propagate context headers. The clarity of purpose is evident, with proper reference usage. A small note on punctuation consistency (switching the ending period to “。”) might be considered.
58-58
: Log Events Explanation
This line provides a detailed explanation of log events generated by Dapr. Maintaining a consistent punctuation style (using “。” instead of “.”) is recommended.src/translated_content/zh_CN/docs/concepts/terminology.md (2)
13-13
: Table Column Count Issue: Missing a Cell in Some Rows.
Static analysis indicates that the rows on line 13 ("应用程序") and line 22 ("服务") only contain two cells whereas three are expected. This will result in missing data in the table rendering.
Consider adding an empty cell to ensure a three-column structure. For example:-| 应用程序 | 一个正在运行的服务或程序,通常是由用户创建和运行的。 | +| 应用程序 | 一个正在运行的服务或程序,通常是由用户创建和运行的。 | |-| 服务 | 一个正在运行的应用程序或程序。这可以指您的应用程序或Dapr应用程序。 | +| 服务 | 一个正在运行的应用程序或程序。这可以指您的应用程序或Dapr应用程序。 | |Also applies to: 22-22
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
13-13: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data(MD056, table-column-count)
14-21
: Table Formatting: Missing Trailing Pipe Characters.
Multiple table rows (lines 14–21 and line 23) are missing the trailing pipe (|
), which is required for consistent "leading_and_trailing" pipe styling. Consistent use of the trailing|
improves readability and compliance with markdown style guidelines.For instance, update line 14 as follows:
-| 构件 | Dapr为用户提供的API,帮助创建微服务和应用程序。 | [Dapr构件]({{< ref building-blocks-concept.md >}}) +| 构件 | Dapr为用户提供的API,帮助创建微服务和应用程序。 | [Dapr构件]({{< ref building-blocks-concept.md >}}) |Please apply similar updates to the rows on lines 15, 16, 17, 18, 19, 20, 21, and 23.
Also applies to: 23-23
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
14-14: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
15-15: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
16-16: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
17-17: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
18-18: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
19-19: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
20-20: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
21-21: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe(MD055, table-pipe-style)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/howto-cryptography.md (7)
26-48
: Python Encryption Example:
The Python snippet demonstrates how to invoke the Dapr encryption API with clear inline comments. For clarity, you might add a brief note about importing necessary modules (e.g., theDaprClient
and associated types) and consider mentioning error handling for production use.
71-88
: JavaScript Stream Encryption Example:
The stream-encryption example usingpipeline
is well demonstrated. In a production scenario, it may be helpful to include error handling for issues that might occur during the streaming process.
132-164
: Go Encryption Example (File Encryption):
The file encryption example is comprehensive, using proper file handling (withdefer
for closing resources) and illustrating the process end-to-end. Consider including comments or logging for error conditions in a production environment.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
136-136: Hard tabs
Column: 1(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1(MD010, no-hard-tabs)
161-161: Hard tabs
Column: 1(MD010, no-hard-tabs)
168-187
: Go Encryption Example (String Encryption):
This snippet shows how to encrypt a string via stream manipulation. Note that the variableenc
is reused; while acceptable in sample code, in larger examples a more descriptive name might improve clarity.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
174-174: Hard tabs
Column: 1(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1(MD010, no-hard-tabs)
185-185: Hard tabs
Column: 1(MD010, no-hard-tabs)
203-226
: Python Decryption Example:
The decryption snippet mirrors the encryption example well, demonstrating stream reading and output comparison. It would be beneficial to clarify that theencrypt_bytes
variable should originate from the encryption process shown earlier.
119-128
: Formatting: Hard Tabs in Code Blocks:
Static analysis has flagged several instances where hard tabs are used for indentation in code blocks (e.g., in some Go snippets). To comply with markdownlint MD010 guidelines, please consider replacing hard tabs with spaces.Also applies to: 134-145, 148-156, 158-164, 174-180, 185-191, 289-292
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
120-120: Hard tabs
Column: 1(MD010, no-hard-tabs)
121-121: Hard tabs
Column: 1(MD010, no-hard-tabs)
122-122: Hard tabs
Column: 1(MD010, no-hard-tabs)
123-123: Hard tabs
Column: 1(MD010, no-hard-tabs)
124-124: Hard tabs
Column: 1(MD010, no-hard-tabs)
125-125: Hard tabs
Column: 1(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1(MD010, no-hard-tabs)
260-262
: Language Clarity Suggestion:
The sentence beginning “在以下示例中,我们将获取一个字节数组...” might benefit from inserting an appropriate measure word between the numeral and the noun to improve clarity in Chinese.🧰 Tools
🪛 LanguageTool
[uncategorized] ~261-~261: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...。 在以下示例中,我们将获取一个字节数组(例如上面的示例)并将其解密为UTF-8编码的字符串。 ```csharp public async Task<strin...(wa5)
src/translated_content/zh_CN/contributing/python-contributing.md (1)
25-27
: Inclusion of GitHub Dapr Bot CommandsThe section on GitHub Dapr Bot commands is a valuable addition, offering extra guidance on managing common tasks. Consider adding a brief example command to illustrate its usage for enhanced clarity.
src/translated_content/zh_CN/contributing/rust-contributing.md (2)
11-18
: Section “示例” is Clear and Detailed
The guidelines under the “示例” section are well-articulated. Action Item: The link labeled TBA serves as a placeholder and may trigger markdown lint warnings (MD042) for empty links. Consider replacing it with a valid URL or adding a comment to clarify its temporary status.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
17-17: No empty links
null(MD042, no-empty-links)
19-25
: Unordered List Indentation in “文档” Section
The bullet points under the “文档” section are indented with extra spaces. To meet the markdownlint MD007 standard, consider removing the extra indentation so that the list markers align flush left. For example:- - 除了这些规则外,还应遵循 [docs guide]({{< ref contributing-docs.md >}}) 中的所有规则。 - - 所有文件和目录应以 `rust-` 为前缀,以确保在所有 Dapr 文档中文件/目录名称的全局唯一性。 + - 除了这些规则外,还应遵循 [docs guide]({{< ref contributing-docs.md >}}) 中的所有规则。 + - 所有文件和目录应以 `rust-` 为前缀,以确保在所有 Dapr 文档中文件/目录名称的全局唯一性。🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
23-23: Unordered list indentation
Expected: 0; Actual: 3(MD007, ul-indent)
24-24: Unordered list indentation
Expected: 0; Actual: 3(MD007, ul-indent)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/distributed-lock-api-overview.md (1)
23-26
: Bullet List Formatting in Example Steps
The nested bullet points detailing the lock release methods are informative. Consider reviewing the sub-bullet indentation for consistency with markdownlint MD007 recommendations. For example, aligning the inner bullets flush left relative to the parent list might improve readability.src/translated_content/zh_CN/docs/concepts/resiliency-concept.md (3)
29-29
: Language Suggestion for Health Check LinkThe sentence “阅读更多关于如何将[应用健康检查]({{< ref app-health >}})应用于您的应用程序。” might be improved for better clarity. Consider rephrasing it so that the prepositional phrase is placed at the beginning—for example:
“对于如何将[应用健康检查]({{< ref app-health >}})应用于您的应用程序,请阅读更多信息。”🧰 Tools
🪛 LanguageTool
[uncategorized] ~29-~29: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...反应的机制。当检测到应用不健康时,Dapr会停止为该应用分配新任务。 阅读更多关于如何将[应用健康检查]({{< ref app-health >}})应用于您的...(wb2)
39-39
: Language Suggestion for Sidecar Health Check LinkSimilarly, the line “阅读更多关于如何将[dapr健康检查]({{< ref sidecar-health >}})应用于您的应用程序。” could be refined. For example, you might rephrase it to:
“对于如何将[dapr健康检查]({{< ref sidecar-health >}})应用于您的应用程序,请阅读更多信息。”🧰 Tools
🪛 LanguageTool
[uncategorized] ~39-~39: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...car可以: - 检查其健康状况 - 确定其准备就绪状态和存活状态 阅读更多关于如何将[dapr健康检查]({{< ref sidecar-health >}}...(wb2)
43-43
: Suggestion for List Item WordingThe list item “- [了解更多关于弹性]({{< ref resiliency-overview.md >}})” might flow better with a slight reordering. One option is to modify it to:
“- [了解更多:弹性]({{< ref resiliency-overview.md >}})”🧰 Tools
🪛 LanguageTool
[uncategorized] ~43-~43: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...r-health >}})应用于您的应用程序。 ## 下一步 - [了解更多关于弹性]({{< ref resiliency-overview.md >}}) ...(wb2)
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/howto-template.md (1)
25-25
: Language Suggestion for Reference LinkThe phrase “了解更多关于[贡献 Dapr 文档]({{< ref contributing-docs.md >}})的信息……” could be rephrased for smoother readability. For instance, consider:
“对于[贡献 Dapr 文档]的信息,请参阅……”🧰 Tools
🪛 LanguageTool
[uncategorized] ~25-~25: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...仅为建议。可以根据文档的目的进行调整。 {{% /alert %}} 了解更多关于[贡献 Dapr 文档]({{< ref contributing-docs.m...(wb2)
src/translated_content/zh_CN/docs/concepts/configuration-concept.md (1)
51-51
: Language Suggestion for Configuration Options LinkThe link text “[了解更多关于配置选项的信息。]({{< ref "configuration-overview.md" >}})” might be clearer if the prepositional phrase is restructured. An alternative could be:
“[配置选项:了解更多信息]({{< ref "configuration-overview.md" >}})”src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/configuration-api-overview.md (1)
23-23
: Accessibility Improvement for DiagramConsider adding an alt attribute for the image (line 23) to improve accessibility. For example:
<img src="/images/configuration-api-overview.png" width=900 alt="Configuration API Overview Diagram">
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/quickstart-template.md (2)
15-17
: Alert Block UsageThe alert block emphasizes that the template is advisory and can be modified based on the document’s needs. Consider reviewing the phrasing for extra clarity.
19-20
: Phrasing SuggestionThe sentence "了解更多关于如何[贡献 Dapr 文档]({{< ref contributing-docs.md >}})的信息…" might read more naturally if rephrased to start with "对于…". This adjustment could enhance clarity.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~19-~19: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...建议。可以根据文档的具体需求进行调整。 {{% /alert %}} 了解更多关于如何[贡献 Dapr 文档]({{< ref contributing-docs...(wb2)
src/translated_content/zh_CN/docs/concepts/dapr-services/operator.md (1)
40-42
: Blockquote Formatting IssueA blank line is present within the blockquote (between the two blockquote paragraphs). To comply with markdown lint guidelines (MD028), please remove this blank line.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
41-41: Blank line inside blockquote
null(MD028, no-blanks-blockquote)
src/translated_content/zh_CN/docs/concepts/faq/faq.md (1)
18-19
: Language Suggestion on Passive Voice.
In the sentence “这意味着它们在被调用时会激活…”, consider rephrasing to a more active construction (e.g. “当调用它们时会激活”) for improved clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~19-~19: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……调用"。
Context: ...ns-virtual-actors/) 的虚拟 actor 概念,这意味着它们在被调用时会激活,并在一段时间后自动停用。如果您熟悉 Orleans,Dapr 的 C# a...(wa3)
src/translated_content/zh_CN/docs/concepts/building-blocks-concept.md (1)
9-9
: Minor Language Suggestion for Clarity.
Consider reviewing the phrasing in line 9 to ensure the adverbial usage is as natural as possible. The static analysis hint suggests a possible tweak (e.g. using “新地构建”) if that better conveys the intended meaning.🧰 Tools
🪛 LanguageTool
[uncategorized] ~9-~9: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"构建
Context: ...个 Dapr 组件。Dapr 由一组 API 构建模块组成,并且可以扩展以添加新的构建模块。Dapr 的构建模块: - 解决构建弹性微服务应用程序中的常见挑战 -...(wb4)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-namespace.md (2)
52-52
: Language Clarification Suggestion.
The phrase in line 52 (“以它们运行的命名空间为前缀的消费者组名称”) could be rephrased to ensure the modifier order is unambiguous. A slight rewording may improve clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~52-~52: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:相同"地"集中
Context: ...两个命名空间,每个命名空间都有相同app-id
的应用程序,发布和订阅相同的集中式消息代理orders
。然而这次,Dapr 创建了以它们运行的命名空间...(wb4)
74-74
: Prepositional Phrase Placement.
The text in line 74 starts with “了解更多关于…”. Consider revising the sentence to lead with “对于使用多个命名空间配置 Pub/Sub 组件的信息…” to improve the flow.🧰 Tools
🪛 LanguageTool
[uncategorized] ~74-~74: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...llowfullscreen></iframe> ## 下一步 - 了解更多关于使用多个命名空间配置 Pub/Sub 组件的信息 [pub/sub 命名空间](...(wb2)
src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar.md (2)
19-19
: Image Accessibility: Missing Alt TextThe image on line 19 (
<img src="/images/overview-sidecar-apis.png" width=700>
) lacks alt text. For accessibility and SEO, please add a descriptive alt attribute (e.g.alt="Overview diagram of Dapr sidecar APIs"
).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
19-19: Images should have alternate text (alt text)
null(MD045, no-alt-text)
22-22
: Image Accessibility: Missing Alt TextThe image on line 22 (
<img src="/images/overview-sidecar-model.png" width=700>
) also lacks alt text. Please include an appropriate alt attribute (e.g.alt="Diagram of Dapr sidecar model structure"
).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
22-22: Images should have alternate text (alt text)
null(MD045, no-alt-text)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-features-concepts.md (4)
43-43
: Image Accessibility – Add Alt TextThe image on line 43 lacks an
alt
attribute. Providing a descriptive alt text will improve accessibility and conform to markdown best practices.- <img src="/images/actors_background_placement_service_registration.png" width=600> + <img src="/images/actors_background_placement_service_registration.png" width=600 alt="Actor 放置服务注册示意图">🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
43-43: Images should have alternate text (alt text)
null(MD045, no-alt-text)
47-47
: Image Accessibility – Add Alt TextThe image on line 47 is missing an
alt
attribute. Adding appropriate alt text (e.g. describing the Actor ID 哈希调用示意图) is recommended for accessibility.- <img src="/images/actors_background_id_hashing_calling.png" width=600> + <img src="/images/actors_background_id_hashing_calling.png" width=600 alt="Actor ID 哈希调用示意图">🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
47-47: Images should have alternate text (alt text)
null(MD045, no-alt-text)
80-80
: Image Accessibility – Missing Alt AttributeThe image on line 80 does not include an alt attribute. Consider adding one (for example, "Actor 通信示意图") to enhance clarity and accessibility.
- <img src="/images/actors_background_communication.png" width=600> + <img src="/images/actors_background_communication.png" width=600 alt="Actor 通信示意图">🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
80-80: Images should have alternate text (alt text)
null(MD045, no-alt-text)
94-94
: Image Accessibility – Missing Alt AttributeThe image on line 94 is missing alternative text. Adding an alt attribute such as "Actor 并发示意图" will help users understand the content.
- <img src="/images/actors_background_concurrency.png" width=600> + <img src="/images/actors_background_concurrency.png" width=600 alt="Actor 并发示意图">🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
94-94: Images should have alternate text (alt text)
null(MD045, no-alt-text)
src/translated_content/zh_CN/docs/contributing/contributing-overview.md (3)
64-68
: List Indentation and Hard TabsThere appears to be inconsistent indentation in the bullet list items (e.g., lines 65–67), and hard tabs are used instead of spaces. For clarity and consistency, replace hard tabs with spaces and ensure uniform indentation.
- - 有关设置Dapr开发环境的更多信息,请参阅[开发Dapr文档](https://github.com/dapr/dapr/blob/master/docs/development/developing-dapr.md)。 + - 有关设置Dapr开发环境的更多信息,请参阅[开发Dapr文档](https://github.com/dapr/dapr/blob/master/docs/development/developing-dapr.md)。🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
67-67: Inconsistent indentation for list items at the same level
Expected: 4; Actual: 1(MD005, list-indent)
67-67: Hard tabs
Column: 1(MD010, no-hard-tabs)
74-74
: Heading Level ConsistencyThe heading “#### 使用草稿PR以获得早期反馈” (line 74) jumps to a fourth-level header immediately after higher-level sections. Consider demoting it to an h3 to maintain a smooth, incremental heading hierarchy.
-#### 使用草稿PR以获得早期反馈 +### 使用草稿PR以获得早期反馈
87-90
: Fenced Code Blocks: Specify LanguageThe fenced code block (lines 87–90) does not specify a language. Adding a language tag (e.g.,
text
) can improve readability and syntax highlighting.-``` +```text 这是我的提交消息 Signed-off-by: Random J Developer <random@developer.example.org> -``` +```🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
87-87: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/howto-use-distributed-lock.md (1)
23-40
: Component Configuration Example:
The section on configuring the lock component provides a clear YAML snippet and guidance on where to save the component file. A reminder to replace<PASSWORD>
with a secure value in production would be beneficial.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actor-reentrancy.md (2)
17-17
: Fenced Code Block Language Specification:
The example demonstrating a reentrant call chain (line 17) does not specify a language for the fenced code block. Consider adding a language identifier (e.g.,text
ornone
) to improve markdown lint compliance.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
17-17: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
107-112
: Java Code Example:
The Java code example block appears empty. If a complete example is available, consider including it; otherwise, add a comment explaining its omission or remove the empty snippet to avoid confusion.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
108-108: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/concepts/components-concept.md (1)
57-63
: Hot Reload Section:
The explanation of the hot reload feature is clear. For added clarity, consider briefly noting potential short downtime during reinitialization.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-timers-reminders.md (3)
175-177
: Fenced Code Block Language – Kubernetes Setup:
The code block for Kubernetes setup on protobuf serialization (lines 175-177) lacks a language identifier. Consider specifying one (e.g.,bash
oryaml
) to improve markdown compliance.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
175-175: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
183-185
: Fenced Code Block Language – Self-Hosted Environment:
Similarly, add a language specifier to the self-hosted environment configuration code block (lines 183-185) for enhanced readability and lint compliance.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
183-183: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
144-154
: Error Handling Description:
The section on error handling for timers provides a thorough explanation of expected behaviors under failure conditions. Including common troubleshooting tips might further support developers.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-overview.md (1)
29-33
: Video Embed Commentary:
The embedded video is useful; however, consider adding a brief caption summarizing its contents so that users understand what to expect without having to view it immediately.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/howto-actors-partitioning.md (1)
11-20
: Introduction and List Consistency
The opening paragraphs clearly explain the challenges of managing multiple actor reminders. One minor suggestion is to consider using incrementing ordered list numbers (e.g., “1.”, “2.”) rather than repeating “1.” for multiple items. Since Markdown auto-numbering is supported, this is optional but might improve clarity for some readers.src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/howto-conversation-layer.md (1)
41-155
: Integration Code Samples Review
The code samples provided across multiple languages (e.g., .NET, Go, Rust) for integrating the conversation client are detailed and practical. They offer a clear guide on setting up the conversation API in your application. A minor suggestion is to consider including basic error handling in these examples to cover edge cases.src/translated_content/zh_CN/docs/_index.md (2)
14-39
: Guide Cards Overview
The card deck displaying guides such as “入门指南”, “快速入门”, and “概念” is visually appealing and navigationally effective. One nitpick: the heading level jump from “#” to “###” might benefit from a more gradual increment (e.g., using “##” for subsections) to adhere to Markdown best practices.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
14-14: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3(MD001, heading-increment)
40-91
: Additional Resources and Links
The subsequent sections—covering “了解更多关于 Dapr 的信息” and additional resource cards—are well organized and help users locate useful documentation. A review of the heading levels for consistency is suggested to enhance accessibility.🧰 Tools
🪛 LanguageTool
[uncategorized] ~40-~40: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: .../a> ### 了解更多关于 Dapr 的信息<di...(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-triggers.md (4)
17-25
: Visual and Contextual Information
The insertion of an image to illustrate the binding concept adds valuable visual context. For improved accessibility, consider providing more descriptive alt text for the image.
44-104
: Binding Component YAML Configuration
The YAML examples for creating a binding component in both Self-Hosted and Kubernetes environments are well-detailed. Note that there are some hard tabs in these code blocks that might trigger markdownlint warnings. It is recommended to replace hard tabs with spaces to ensure consistent formatting across documentation. For example:- - name: brokers - value: localhost:9092 + - name: brokers + value: localhost:9092
106-263
: Multi-language Code Samples for Input Bindings
The multi-language code samples (for C#, Java, Python, Go, and JavaScript) effectively demonstrate how to set up HTTP endpoints for receiving input binding events. In the C# example, consider following the standard naming conventions by using PascalCase for namespaces (e.g.,CheckoutService.Controller
instead ofCheckoutService.controller
). Additionally, the Go code currently uses hard tabs; please update these to spaces to align with markdown formatting guidelines.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
199-199: Hard tabs
Column: 1(MD010, no-hard-tabs)
200-200: Hard tabs
Column: 1(MD010, no-hard-tabs)
201-201: Hard tabs
Column: 1(MD010, no-hard-tabs)
202-202: Hard tabs
Column: 1(MD010, no-hard-tabs)
207-207: Hard tabs
Column: 1(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 1(MD010, no-hard-tabs)
209-209: Hard tabs
Column: 1(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 1(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 1(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 1(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 1(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 1(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 1(MD010, no-hard-tabs)
219-219: Hard tabs
Column: 1(MD010, no-hard-tabs)
220-220: Hard tabs
Column: 1(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1(MD010, no-hard-tabs)
286-289
: Clarification on Event Delivery Guarantees
In the “事件投递保证” section, consider rephrasing “事件投递可以是精确一次或至少一次” to “事件投递保证为精确一次或至少一次” to provide clearer communication of the guarantees.🧰 Tools
🪛 LanguageTool
[uncategorized] ~288-~288: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很精确"?
Context: ... ### 事件投递保证 事件投递保证由绑定实现控制。根据绑定实现,事件投递可以是精确一次或至少一次。 ## 参考资料 - [绑定构建块]({{< ref bin...(SHI_ADHECTIVE_ERROR)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/howto-schedule-and-handle-triggered-jobs.md (2)
125-257
: Markdown Linting – Hard Tabs Detected
Multiple instances of hard tabs were found throughout the document (e.g. in code blocks and indented sections). Please replace these with spaces to adhere to markdownlint (MD010) guidelines and ensure consistency across the documentation.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
125-125: Hard tabs
Column: 1(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1(MD010, no-hard-tabs)
127-127: Hard tabs
Column: 1(MD010, no-hard-tabs)
128-128: Hard tabs
Column: 1(MD010, no-hard-tabs)
133-133: Hard tabs
Column: 1(MD010, no-hard-tabs)
136-136: Hard tabs
Column: 1(MD010, no-hard-tabs)
137-137: Hard tabs
Column: 1(MD010, no-hard-tabs)
138-138: Hard tabs
Column: 1(MD010, no-hard-tabs)
140-140: Hard tabs
Column: 1(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1(MD010, no-hard-tabs)
154-154: Hard tabs
Column: 1(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1(MD010, no-hard-tabs)
157-157: Hard tabs
Column: 1(MD010, no-hard-tabs)
165-165: Hard tabs
Column: 6(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1(MD010, no-hard-tabs)
180-180: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4(MD001, heading-increment)
191-191: Hard tabs
Column: 1(MD010, no-hard-tabs)
246-246: Hard tabs
Column: 1(MD010, no-hard-tabs)
247-247: Hard tabs
Column: 1(MD010, no-hard-tabs)
248-248: Hard tabs
Column: 1(MD010, no-hard-tabs)
249-249: Hard tabs
Column: 1(MD010, no-hard-tabs)
251-251: Hard tabs
Column: 1(MD010, no-hard-tabs)
252-252: Hard tabs
Column: 1(MD010, no-hard-tabs)
253-253: Hard tabs
Column: 1(MD010, no-hard-tabs)
254-254: Hard tabs
Column: 1(MD010, no-hard-tabs)
255-255: Hard tabs
Column: 1(MD010, no-hard-tabs)
256-256: Hard tabs
Column: 1(MD010, no-hard-tabs)
257-257: Hard tabs
Column: 1(MD010, no-hard-tabs)
180-180
: Heading Level Inconsistency
A heading increments by more than one level at this point. Consider adjusting the heading at line 180 (e.g. changing an h4 to an h3) to maintain a smooth, incremental document structure.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
180-180: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4(MD001, heading-increment)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-bindings.md (1)
167-247
: Markdown Linting – Hard Tabs
Several hard tabs have been detected in the document (as flagged by markdownlint). Replacing these with spaces will help in maintaining a consistent style across the documentation.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
167-167: Hard tabs
Column: 1(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1(MD010, no-hard-tabs)
236-236: Hard tabs
Column: 1(MD010, no-hard-tabs)
237-237: Hard tabs
Column: 1(MD010, no-hard-tabs)
238-238: Hard tabs
Column: 1(MD010, no-hard-tabs)
239-239: Hard tabs
Column: 1(MD010, no-hard-tabs)
240-240: Hard tabs
Column: 1(MD010, no-hard-tabs)
241-241: Hard tabs
Column: 1(MD010, no-hard-tabs)
242-242: Hard tabs
Column: 1(MD010, no-hard-tabs)
244-244: Hard tabs
Column: 1(MD010, no-hard-tabs)
245-245: Hard tabs
Column: 1(MD010, no-hard-tabs)
246-246: Hard tabs
Column: 1(MD010, no-hard-tabs)
247-247: Hard tabs
Column: 1(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/concepts/security-concept.md (5)
22-22
: Image Alt Text Missing
The image (/images/security-end-to-end-communication.png
) currently does not include an alt attribute. Please add a descriptive alt text (e.g., "示意图:端到端的安全通信") to improve accessibility.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
22-22: Images should have alternate text (alt text)
null(MD045, no-alt-text)
67-67
: Alt Text for Self-Hosted mTLS Diagram
The self-hosted mTLS image lacks an alt attribute. Consider adding alt text such as "Dapr自托管模式下的mTLS Sentry示意图" to provide context for users with visual impairments.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
67-67: Images should have alternate text (alt text)
null(MD045, no-alt-text)
80-80
: Alt Text for Kubernetes mTLS Diagram
The Kubernetes diagram is currently missing an alt attribute. Adding descriptive alt text (e.g., "Dapr Kubernetes模式下的mTLS Sentry示意图") is recommended.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
80-80: Images should have alternate text (alt text)
null(MD045, no-alt-text)
118-118
: Alt Text for Dapr System Services mTLS Diagram
This diagram does not include an alternative text description. Please insert an alt attribute (e.g., "Dapr系统服务间的mTLS通信示意图") to describe the image content.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
118-118: Images should have alternate text (alt text)
null(MD045, no-alt-text)
188-188
: Alt Text for Security Overview Image
The image illustrating the security overview capabilities is missing alt text. Consider adding a description such as "示意图:安全功能概览" to meet accessibility guidelines.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
188-188: Images should have alternate text (alt text)
null(MD045, no-alt-text)
src/translated_content/zh_CN/docs/contributing/docs-contrib/maintainer-guide.md (1)
355-365
: Language Nuance: Account Wording
In the instructions, the phrase "使用您自己的帐户" appears. LanguageTool suggests verifying that the appropriate term for "account" is being used. Consider confirming or revising the wording if needed.🧰 Tools
🪛 LanguageTool
[uncategorized] ~356-~356: 您的意思是“"账"户”?
Context: ...义域**。 1. 复制 Web 应用的 "CNAME" 值。 1. 使用您自己的帐户,[提交 CNCF 工单](https://jira.linuxfoundat...(ZHANG7_ZHANG8)
src/translated_content/zh_CN/docs/contributing/docs-contrib/contributing-docs.md (3)
29-40
: Style and Tone Guidelines
The table of style and tone guidelines is very useful for ensuring consistency across the documentation. Minor language tweaks—as suggested by LanguageTool—might improve natural flow.🧰 Tools
🪛 LanguageTool
[uncategorized] ~39-~39: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:详尽"地"说明
Context: ...发者来说一些看似显而易见的步骤可能对新开发者并不那么明显。为读者提供更明确、详尽的说明。 | | 使用现在时 | 避免使用诸如 "this command _wi...(wb4)
159-203
: Shortcodes and Fenced Code Blocks Usage
The guide provides extensive examples of using shortcodes for images, tabs, embedded code snippets, and buttons. Note that several fenced code blocks are missing a language identifier for syntax highlighting. Adding these (for example, specifying “yaml”, “bash”, “python”, etc.) will improve readability and consistency.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
191-191: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
366-378
: Buttons and External Link Guidance
The examples for creating buttons for external pages and other document references are clear. Consider reviewing any bare URLs to ensure they follow best practices for accessibility and formatting.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
366-366: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
372-372: Bare URL used
null(MD034, no-bare-urls)
376-376: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-bulk.md (1)
531-537
: Table Formatting Consistency
The table listing supported components for bulk operations shows unexpected leading and trailing pipe characters. Consider modifying the table to remove these extra pipes (per markdownlint MD055) for consistent styling.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md (1)
Line range hint
684-687
: Unordered List Style in the “下一步” Section
Consider using dashes (-
) for bullet points instead of asterisks (*
) to adhere to the markdown style guideline MD004.src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/howto-manage-configuration.md (3)
24-26
: Specify Language for Docker Command Block
Adding a language specifier (e.g.,shell
) to the fenced code block for the Docker command will improve clarity and syntax highlighting.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
24-24: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
38-40
: Specify Language for Redis CLI Code Block
Similarly, add a language tag (e.g.,shell
) to the code block demonstrating the Redis CLI usage for consistency.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
38-38: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
602-678
: Hard Tabs in Code Blocks
Multiple code blocks contain hard tabs. Converting these to spaces would improve consistency and readability across the documentation.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
602-602: Hard tabs
Column: 1(MD010, no-hard-tabs)
603-603: Hard tabs
Column: 1(MD010, no-hard-tabs)
604-604: Hard tabs
Column: 1(MD010, no-hard-tabs)
605-605: Hard tabs
Column: 1(MD010, no-hard-tabs)
606-606: Hard tabs
Column: 1(MD010, no-hard-tabs)
607-607: Hard tabs
Column: 1(MD010, no-hard-tabs)
609-609: Hard tabs
Column: 1(MD010, no-hard-tabs)
616-616: Hard tabs
Column: 1(MD010, no-hard-tabs)
617-617: Hard tabs
Column: 1(MD010, no-hard-tabs)
618-618: Hard tabs
Column: 1(MD010, no-hard-tabs)
619-619: Hard tabs
Column: 1(MD010, no-hard-tabs)
620-620: Hard tabs
Column: 1(MD010, no-hard-tabs)
621-621: Hard tabs
Column: 1(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/_index.md (1)
9-14
: Alert Section Language Refinement Suggested
The alert block currently reads “了解如何使用 Dapr 分布式锁的更多信息:”. For improved clarity and style, consider rephrasing it to something like “对于如何使用 Dapr 分布式锁,请参阅以下信息:”.🧰 Tools
🪛 LanguageTool
[uncategorized] ~9-~9: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...程序提供对共享资源的独占访问。 --- {{% alert title="更多关于 Dapr 分布式锁的信息" color="primary" %}} 了解如何使...(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/_index.md (1)
9-15
: Refine Alert Title WordingThe alert title “更多关于 Dapr Bindings” could be revisited per LanguageTool’s suggestion. For smoother phrasing, consider changing it to something like “关于 Dapr Bindings 的更多信息.”
🧰 Tools
🪛 LanguageTool
[uncategorized] ~9-~9: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...与外部系统交互或被外部系统触发 --- {{% alert title="更多关于 Dapr Bindings" color="primary" %}} 了解如何...(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-runtime-config.md (1)
144-194
: Go Code Snippet: Replace Hard Tabs with SpacesThe Go code snippet contains hard tabs (as flagged by markdownlint MD010). For consistency and improved readability, please replace all tabs with spaces.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
154-154: Hard tabs
Column: 1(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1(MD010, no-hard-tabs)
157-157: Hard tabs
Column: 1(MD010, no-hard-tabs)
158-158: Hard tabs
Column: 1(MD010, no-hard-tabs)
159-159: Hard tabs
Column: 1(MD010, no-hard-tabs)
160-160: Hard tabs
Column: 1(MD010, no-hard-tabs)
164-164: Hard tabs
Column: 1(MD010, no-hard-tabs)
165-165: Hard tabs
Column: 1(MD010, no-hard-tabs)
166-166: Hard tabs
Column: 1(MD010, no-hard-tabs)
167-167: Hard tabs
Column: 1(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1(MD010, no-hard-tabs)
177-177: Hard tabs
Column: 1(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1(MD010, no-hard-tabs)
182-182: Hard tabs
Column: 1(MD010, no-hard-tabs)
186-186: Hard tabs
Column: 1(MD010, no-hard-tabs)
187-187: Hard tabs
Column: 1(MD010, no-hard-tabs)
188-188: Hard tabs
Column: 1(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/concept-template.md (1)
9-24
: Refine the Phrasing for Grammatical Clarity
The introduction clearly outlines the purpose of concept articles. However, the sentence on line 24 could be improved for grammatical flow. Static analysis suggests that the prepositional phrase "关于" should either be positioned at the sentence’s start or replaced with "有关." Consider the following diff for enhanced clarity:-了解更多关于[为 Dapr 文档做贡献]({{< ref contributing-docs.md >}})的信息,例如[前置内容]({{< ref "contributing-docs.md#front-matter" >}})和[短代码]({{< ref "contributing-docs.md#shortcodes" >}}) +了解更多有关[为 Dapr 文档做贡献]({{< ref contributing-docs.md >}})的信息,例如[前置内容]({{< ref "contributing-docs.md#front-matter" >}})和[短代码]({{< ref "contributing-docs.md#shortcodes" >}})This minor adjustment ensures a smoother and more natural read.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~24-~24: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...仅为建议。可以根据文档的目的进行调整。 {{% /alert %}} 了解更多关于[为 Dapr 文档做贡献]({{< ref contributing-docs...(wb2)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
src/translated_content/zh_CN/docs/operations/hosting/serverless/azure-container-apps/azure-container-apps-microservices-dapr.png
is excluded by!**/*.png
📒 Files selected for processing (82)
.github/crowdin-download.yml
(3 hunks).github/crowdin-update-source.yml
(1 hunks).github/workflows/crowdin-download.yml
(0 hunks).github/workflows/crowdin-update-source.yml
(0 hunks)src/translated_content/zh_CN/contributing/dotnet-contributing.md
(1 hunks)src/translated_content/zh_CN/contributing/go-contributing.md
(1 hunks)src/translated_content/zh_CN/contributing/java-contributing.md
(1 hunks)src/translated_content/zh_CN/contributing/js-contributing.md
(1 hunks)src/translated_content/zh_CN/contributing/python-contributing.md
(1 hunks)src/translated_content/zh_CN/contributing/rust-contributing.md
(1 hunks)src/translated_content/zh_CN/docs/_index.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/_index.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/building-blocks-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/components-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/configuration-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/_index.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/operator.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/placement.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/scheduler.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/sentry.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar-injector.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/faq/_index.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/faq/faq.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/faq/service-mesh.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/isolation-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/observability-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/overview.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/resiliency-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/security-concept.md
(1 hunks)src/translated_content/zh_CN/docs/concepts/terminology.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/_index.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/codespaces.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/contributing-overview.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/daprbot.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/_index.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/contributing-docs.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/_index.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/concept-template.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/howto-template.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/quickstart-template.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/docs-contrib/maintainer-guide.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/presentations.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/roadmap.md
(1 hunks)src/translated_content/zh_CN/docs/contributing/sdk-contrib/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actor-reentrancy.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-features-concepts.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-runtime-config.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-timers-reminders.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/howto-actors-partitioning.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/howto-actors.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/namespaced-actors.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/bindings-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-bindings.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-triggers.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/configuration-api-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/howto-manage-configuration.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/conversation-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/howto-conversation-layer.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/cryptography-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/howto-cryptography.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/distributed-lock-api-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/howto-use-distributed-lock.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/howto-schedule-and-handle-triggered-jobs.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/jobs-overview.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/_index.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-namespace.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-route-messages.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-subscribe-statefulset.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-bulk.md
(1 hunks)src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md
(1 hunks)
⛔ Files not processed due to max files limit (44)
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-deadletter.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-message-ttl.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-overview.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-raw.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-scopes.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/subscription-methods.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/secrets/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/secrets/howto-secrets.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/secrets/secrets-overview.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/secrets/secrets-scopes.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/howto-invoke-discover-services.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/howto-invoke-non-dapr-endpoints.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/howto-invoke-services-grpc.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/service-invocation-namespaces.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/service-invocation/service-invocation-overview.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-encrypt-state.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-get-save-state.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-outbox.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-share-state.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-state-query-api.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-stateful-service.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/components/mongodb/mongodb.yml
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/components/redis/redis.yml
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/dataset.json
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/query1.json
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/query2.json
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/query3-token.json
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-api-examples/query3.json
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-state-store/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-state-store/query-cosmosdb-store.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-state-store/query-redis-store.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/query-state-store/query-sqlserver-store.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/state-management-overview.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/state-store-ttl.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/howto-author-workflow.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/howto-manage-workflow.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/workflow-architecture.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/workflow-features-concepts.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/workflow-overview.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/workflow/workflow-patterns.md
- src/translated_content/zh_CN/docs/developing-applications/debugging/_index.md
💤 Files with no reviewable changes (2)
- .github/workflows/crowdin-update-source.yml
- .github/workflows/crowdin-download.yml
✅ Files skipped from review due to trivial changes (17)
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/_index.md
- src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/_index.md
- src/translated_content/zh_CN/docs/contributing/sdk-contrib/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/_index.md
- src/translated_content/zh_CN/docs/concepts/faq/_index.md
- src/translated_content/zh_CN/docs/contributing/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/_index.md
- src/translated_content/zh_CN/docs/contributing/roadmap.md
- src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar-injector.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/_index.md
- src/translated_content/zh_CN/docs/contributing/docs-contrib/_index.md
- src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/_index.md
- src/translated_content/zh_CN/docs/concepts/_index.md
- src/translated_content/zh_CN/docs/developing-applications/_index.md
- src/translated_content/zh_CN/docs/concepts/overview.md
🧰 Additional context used
🪛 LanguageTool
src/translated_content/zh_CN/docs/concepts/faq/faq.md
[uncategorized] ~19-~19: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"会被……调用"。
Context: ...ns-virtual-actors/) 的虚拟 actor 概念,这意味着它们在被调用时会激活,并在一段时间后自动停用。如果您熟悉 Orleans,Dapr 的 C# a...
(wa3)
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/concept-template.md
[uncategorized] ~24-~24: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...仅为建议。可以根据文档的目的进行调整。 {{% /alert %}} 了解更多关于[为 Dapr 文档做贡献]({{< ref contributing-docs...
(wb2)
src/translated_content/zh_CN/docs/concepts/resiliency-concept.md
[uncategorized] ~29-~29: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...反应的机制。当检测到应用不健康时,Dapr会停止为该应用分配新任务。 阅读更多关于如何将[应用健康检查]({{< ref app-health >}})应用于您的...
(wb2)
[uncategorized] ~39-~39: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...car可以: - 检查其健康状况 - 确定其准备就绪状态和存活状态 阅读更多关于如何将[dapr健康检查]({{< ref sidecar-health >}}...
(wb2)
[uncategorized] ~43-~43: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...r-health >}})应用于您的应用程序。 ## 下一步 - [了解更多关于弹性]({{< ref resiliency-overview.md >}}) ...
(wb2)
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/quickstart-template.md
[uncategorized] ~19-~19: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...建议。可以根据文档的具体需求进行调整。 {{% /alert %}} 了解更多关于如何[贡献 Dapr 文档]({{< ref contributing-docs...
(wb2)
src/translated_content/zh_CN/docs/contributing/docs-contrib/contributing-docs.md
[uncategorized] ~17-~17: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...rame> ## 先决条件 在为 Dapr 文档做贡献之前: - 查看 [关于 Dapr 项目贡献的一般指导]({{< ref contributing-ov...
(wb2)
[uncategorized] ~39-~39: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:详尽"地"说明
Context: ...发者来说一些看似显而易见的步骤可能对新开发者并不那么明显。为读者提供更明确、详尽的说明。 | | 使用现在时 | 避免使用诸如 "this command _wi...
(wb4)
[uncategorized] ~119-~119: 数量词修饰并列短语,可能产生歧义
Context: ... 根据 样式惯例,标题应仅大写第一个词和专有名词,除了 "How-To:" - "开始使用 Dapr 服务调用" - "How...
(s5)
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/howto-template.md
[uncategorized] ~25-~25: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...仅为建议。可以根据文档的目的进行调整。 {{% /alert %}} 了解更多关于[贡献 Dapr 文档]({{< ref contributing-docs.m...
(wb2)
src/translated_content/zh_CN/docs/_index.md
[uncategorized] ~40-~40: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: .../a> ### 了解更多关于 Dapr 的信息
(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/howto-schedule-and-handle-triggered-jobs.md
[uncategorized] ~34-~34: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"可以被……触发"。
Context: ...r注册作业 在以下示例中,您将创建记录,序列化并与作业一起注册,以便在将来作业被触发时可以使用这些信息: - 备份任务的名称(db-backup
) - 备份任务的`M...
(wa3)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-overview.md
[uncategorized] ~107-~107: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一致"地"查询
Context: ...为 true
。actor 状态以特定方案存储在事务性状态存储中,允许进行一致的查询。所有 actor 只能使用单个状态存储组件作为状态存储。阅读[状态 API...
(wb4)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/bindings-overview.md
[uncategorized] ~12-~12: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:交互"地"实现
Context: ...系统并进行轮询的复杂性(如队列和消息总线)。 - 专注于业务逻辑,而不是系统交互的实现细节。 - 使您的代码不依赖于特定的 SDK 或库。 - 处理重试和故障恢复...
(wb4)
src/translated_content/zh_CN/docs/contributing/docs-contrib/maintainer-guide.md
[uncategorized] ~356-~356: 您的意思是“"账"户”?
Context: ...义域**。 1. 复制 Web 应用的 "CNAME" 值。 1. 使用您自己的帐户,[提交 CNCF 工单](https://jira.linuxfoundat...
(ZHANG7_ZHANG8)
src/translated_content/zh_CN/docs/concepts/observability-concept.md
[uncategorized] ~15-~15: 固定搭配: “来说” 应与 “对” 或 “对于” 搭配使用:对于...来说。
Context: ... - 评估其性能 - 在问题发生时立即意识到 对于由多个微服务组成的分布式系统来说,这尤其具有挑战性,因为一个由多个调用组成的流程可能在一个微服务中开始并在另一个...
(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-timers-reminders.md
[uncategorized] ~46-~46: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...您同时指定 period
中的重复次数和 ttl
时,定时器/提醒将在任一条件满足时停止。 ## actor 定时器 您可以在 actor 上注册一个基于...
(wa5)
src/translated_content/zh_CN/docs/concepts/security-concept.md
[uncategorized] ~163-~163: 您的意思是“"账"户”?
Context: ...访问权限。例如,如果您只从绑定目标读取,您应该将绑定配置为使用具有只读访问权限的帐户。 # 状态安全 ## 状态存储静态加密 默认情况下,Dapr不会转换来...
(ZHANG7_ZHANG8)
[uncategorized] ~205-~205: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:适当"地"保护
Context: ...模是一个过程,通过该过程: - 可以识别和列举潜在威胁,如结构性漏洞或缺乏适当的保护措施。 - 可以优先考虑缓解措施。 Dapr的威胁模型如下。 <img ...
(wb4)
[uncategorized] ~227-~227: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很高"?
Context: ...dit-report.pdf)找到完整报告。 审计发现了7个问题,其中没有一个是高或关键严重性。一个CVE是由于Dapr组件贡献中的第三方依赖问题而分配的。 #...
(SHI_ADHECTIVE_ERROR)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-triggers.md
[uncategorized] ~288-~288: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很精确"?
Context: ... ### 事件投递保证 事件投递保证由绑定实现控制。根据绑定实现,事件投递可以是精确一次或至少一次。 ## 参考资料 - [绑定构建块]({{< ref bin...
(SHI_ADHECTIVE_ERROR)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-namespace.md
[uncategorized] ~52-~52: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:相同"地"集中
Context: ...两个命名空间,每个命名空间都有相同 app-id
的应用程序,发布和订阅相同的集中式消息代理 orders
。然而这次,Dapr 创建了以它们运行的命名空间...
(wb4)
[uncategorized] ~74-~74: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...llowfullscreen></iframe> ## 下一步 - 了解更多关于使用多个命名空间配置 Pub/Sub 组件的信息 [pub/sub 命名空间](...
(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/howto-cryptography.md
[uncategorized] ~261-~261: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...。 在以下示例中,我们将获取一个字节数组(例如上面的示例)并将其解密为UTF-8编码的字符串。 ```csharp public async Task<strin...
(wa5)
src/translated_content/zh_CN/docs/concepts/building-blocks-concept.md
[uncategorized] ~9-~9: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"构建
Context: ...个 Dapr 组件。Dapr 由一组 API 构建模块组成,并且可以扩展以添加新的构建模块。Dapr 的构建模块: - 解决构建弹性微服务应用程序中的常见挑战 -...
(wb4)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/_index.md
[uncategorized] ~9-~9: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...与外部系统交互或被外部系统触发 --- {{% alert title="更多关于 Dapr Bindings" color="primary" %}} 了解如何...
(wb2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/_index.md
[uncategorized] ~9-~9: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...程序提供对共享资源的独占访问。 --- {{% alert title="更多关于 Dapr 分布式锁的信息" color="primary" %}} 了解如何使...
(wb2)
🪛 markdownlint-cli2 (0.17.2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/howto-use-distributed-lock.md
110-110: Hard tabs
Column: 1
(MD010, no-hard-tabs)
111-111: Hard tabs
Column: 1
(MD010, no-hard-tabs)
112-112: Hard tabs
Column: 1
(MD010, no-hard-tabs)
113-113: Hard tabs
Column: 1
(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1
(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1
(MD010, no-hard-tabs)
182-182: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/concepts/terminology.md
13-13: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data
(MD056, table-column-count)
14-14: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
15-15: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
16-16: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
17-17: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
18-18: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
19-19: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
20-20: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
21-21: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
22-22: Table column count
Expected: 3; Actual: 2; Too few cells, row will be missing data
(MD056, table-column-count)
23-23: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
src/translated_content/zh_CN/docs/contributing/contributing-overview.md
67-67: Inconsistent indentation for list items at the same level
Expected: 4; Actual: 1
(MD005, list-indent)
67-67: Hard tabs
Column: 1
(MD010, no-hard-tabs)
75-75: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
84-84: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
87-87: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
96-96: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
101-101: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
102-102: Dollar signs used before commands without showing output
null
(MD014, commands-show-output)
111-111: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/concepts/dapr-services/placement.md
33-33: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
46-46: Emphasis used instead of a heading
null
(MD036, no-emphasis-as-heading)
src/translated_content/zh_CN/docs/contributing/docs-contrib/contributing-docs.md
52-52: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
53-53: Unordered list indentation
Expected: 0; Actual: 2
(MD007, ul-indent)
53-53: Link fragments should be valid
null
(MD051, link-fragments)
119-119: Link fragments should be valid
null
(MD051, link-fragments)
191-191: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
209-209: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
267-267: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
284-284: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
325-325: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
366-366: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
372-372: Bare URL used
null
(MD034, no-bare-urls)
376-376: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
388-388: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
392-392: Bare URL used
null
(MD034, no-bare-urls)
398-398: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
408-408: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
417-417: Bare URL used
null
(MD034, no-bare-urls)
418-418: Bare URL used
null
(MD034, no-bare-urls)
419-419: Bare URL used
null
(MD034, no-bare-urls)
420-420: Bare URL used
null
(MD034, no-bare-urls)
421-421: Bare URL used
null
(MD034, no-bare-urls)
422-422: Bare URL used
null
(MD034, no-bare-urls)
src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar.md
19-19: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
22-22: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
src/translated_content/zh_CN/docs/concepts/faq/service-mesh.md
29-29: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-bulk.md
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe
(MD055, table-pipe-style)
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe
(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe
(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe
(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe
(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe
(MD055, table-pipe-style)
src/translated_content/zh_CN/contributing/rust-contributing.md
17-17: No empty links
null
(MD042, no-empty-links)
23-23: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
24-24: Unordered list indentation
Expected: 0; Actual: 3
(MD007, ul-indent)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/howto-manage-configuration.md
24-24: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
32-32: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
38-38: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
159-159: Hard tabs
Column: 1
(MD010, no-hard-tabs)
162-162: Hard tabs
Column: 1
(MD010, no-hard-tabs)
166-166: Hard tabs
Column: 1
(MD010, no-hard-tabs)
167-167: Hard tabs
Column: 1
(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1
(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1
(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1
(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1
(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1
(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1
(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1
(MD010, no-hard-tabs)
435-435: Hard tabs
Column: 1
(MD010, no-hard-tabs)
439-439: Hard tabs
Column: 1
(MD010, no-hard-tabs)
443-443: Hard tabs
Column: 1
(MD010, no-hard-tabs)
444-444: Hard tabs
Column: 1
(MD010, no-hard-tabs)
445-445: Hard tabs
Column: 1
(MD010, no-hard-tabs)
446-446: Hard tabs
Column: 1
(MD010, no-hard-tabs)
447-447: Hard tabs
Column: 1
(MD010, no-hard-tabs)
453-453: Hard tabs
Column: 1
(MD010, no-hard-tabs)
454-454: Hard tabs
Column: 1
(MD010, no-hard-tabs)
455-455: Hard tabs
Column: 1
(MD010, no-hard-tabs)
456-456: Hard tabs
Column: 1
(MD010, no-hard-tabs)
602-602: Hard tabs
Column: 1
(MD010, no-hard-tabs)
603-603: Hard tabs
Column: 1
(MD010, no-hard-tabs)
604-604: Hard tabs
Column: 1
(MD010, no-hard-tabs)
605-605: Hard tabs
Column: 1
(MD010, no-hard-tabs)
606-606: Hard tabs
Column: 1
(MD010, no-hard-tabs)
607-607: Hard tabs
Column: 1
(MD010, no-hard-tabs)
609-609: Hard tabs
Column: 1
(MD010, no-hard-tabs)
616-616: Hard tabs
Column: 1
(MD010, no-hard-tabs)
617-617: Hard tabs
Column: 1
(MD010, no-hard-tabs)
618-618: Hard tabs
Column: 1
(MD010, no-hard-tabs)
619-619: Hard tabs
Column: 1
(MD010, no-hard-tabs)
620-620: Hard tabs
Column: 1
(MD010, no-hard-tabs)
621-621: Hard tabs
Column: 1
(MD010, no-hard-tabs)
684-684: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
src/translated_content/zh_CN/docs/_index.md
14-14: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/howto-schedule-and-handle-triggered-jobs.md
125-125: Hard tabs
Column: 1
(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1
(MD010, no-hard-tabs)
127-127: Hard tabs
Column: 1
(MD010, no-hard-tabs)
128-128: Hard tabs
Column: 1
(MD010, no-hard-tabs)
133-133: Hard tabs
Column: 1
(MD010, no-hard-tabs)
136-136: Hard tabs
Column: 1
(MD010, no-hard-tabs)
137-137: Hard tabs
Column: 1
(MD010, no-hard-tabs)
138-138: Hard tabs
Column: 1
(MD010, no-hard-tabs)
140-140: Hard tabs
Column: 1
(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1
(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1
(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1
(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1
(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1
(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1
(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1
(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1
(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1
(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1
(MD010, no-hard-tabs)
154-154: Hard tabs
Column: 1
(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1
(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1
(MD010, no-hard-tabs)
157-157: Hard tabs
Column: 1
(MD010, no-hard-tabs)
165-165: Hard tabs
Column: 6
(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1
(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1
(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1
(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1
(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1
(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1
(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1
(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1
(MD010, no-hard-tabs)
180-180: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
191-191: Hard tabs
Column: 1
(MD010, no-hard-tabs)
246-246: Hard tabs
Column: 1
(MD010, no-hard-tabs)
247-247: Hard tabs
Column: 1
(MD010, no-hard-tabs)
248-248: Hard tabs
Column: 1
(MD010, no-hard-tabs)
249-249: Hard tabs
Column: 1
(MD010, no-hard-tabs)
251-251: Hard tabs
Column: 1
(MD010, no-hard-tabs)
252-252: Hard tabs
Column: 1
(MD010, no-hard-tabs)
253-253: Hard tabs
Column: 1
(MD010, no-hard-tabs)
254-254: Hard tabs
Column: 1
(MD010, no-hard-tabs)
255-255: Hard tabs
Column: 1
(MD010, no-hard-tabs)
256-256: Hard tabs
Column: 1
(MD010, no-hard-tabs)
257-257: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-overview.md
23-23: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
90-90: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-features-concepts.md
43-43: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
47-47: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
80-80: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
94-94: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-timers-reminders.md
39-39: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
40-40: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
41-41: Unordered list style
Expected: dash; Actual: asterisk
(MD004, ul-style)
175-175: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
183-183: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/concepts/security-concept.md
22-22: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
67-67: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
80-80: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
118-118: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
145-145: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
188-188: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-bindings.md
167-167: Hard tabs
Column: 1
(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1
(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1
(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1
(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1
(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1
(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1
(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1
(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1
(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1
(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1
(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1
(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1
(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1
(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1
(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1
(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1
(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1
(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1
(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1
(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1
(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1
(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1
(MD010, no-hard-tabs)
236-236: Hard tabs
Column: 1
(MD010, no-hard-tabs)
237-237: Hard tabs
Column: 1
(MD010, no-hard-tabs)
238-238: Hard tabs
Column: 1
(MD010, no-hard-tabs)
239-239: Hard tabs
Column: 1
(MD010, no-hard-tabs)
240-240: Hard tabs
Column: 1
(MD010, no-hard-tabs)
241-241: Hard tabs
Column: 1
(MD010, no-hard-tabs)
242-242: Hard tabs
Column: 1
(MD010, no-hard-tabs)
244-244: Hard tabs
Column: 1
(MD010, no-hard-tabs)
245-245: Hard tabs
Column: 1
(MD010, no-hard-tabs)
246-246: Hard tabs
Column: 1
(MD010, no-hard-tabs)
247-247: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/concepts/dapr-services/operator.md
41-41: Blank line inside blockquote
null
(MD028, no-blanks-blockquote)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-triggers.md
199-199: Hard tabs
Column: 1
(MD010, no-hard-tabs)
200-200: Hard tabs
Column: 1
(MD010, no-hard-tabs)
201-201: Hard tabs
Column: 1
(MD010, no-hard-tabs)
202-202: Hard tabs
Column: 1
(MD010, no-hard-tabs)
207-207: Hard tabs
Column: 1
(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 1
(MD010, no-hard-tabs)
209-209: Hard tabs
Column: 1
(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 1
(MD010, no-hard-tabs)
211-211: Hard tabs
Column: 1
(MD010, no-hard-tabs)
212-212: Hard tabs
Column: 1
(MD010, no-hard-tabs)
213-213: Hard tabs
Column: 1
(MD010, no-hard-tabs)
214-214: Hard tabs
Column: 1
(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 1
(MD010, no-hard-tabs)
219-219: Hard tabs
Column: 1
(MD010, no-hard-tabs)
220-220: Hard tabs
Column: 1
(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actor-reentrancy.md
17-17: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
40-40: Hard tabs
Column: 1
(MD010, no-hard-tabs)
41-41: Hard tabs
Column: 1
(MD010, no-hard-tabs)
42-42: Hard tabs
Column: 1
(MD010, no-hard-tabs)
43-43: Hard tabs
Column: 1
(MD010, no-hard-tabs)
44-44: Hard tabs
Column: 1
(MD010, no-hard-tabs)
45-45: Hard tabs
Column: 1
(MD010, no-hard-tabs)
46-46: Hard tabs
Column: 1
(MD010, no-hard-tabs)
47-47: Hard tabs
Column: 1
(MD010, no-hard-tabs)
48-48: Hard tabs
Column: 1
(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 1
(MD010, no-hard-tabs)
50-50: Hard tabs
Column: 1
(MD010, no-hard-tabs)
51-51: Hard tabs
Column: 1
(MD010, no-hard-tabs)
52-52: Hard tabs
Column: 1
(MD010, no-hard-tabs)
95-95: Hard tabs
Column: 1
(MD010, no-hard-tabs)
96-96: Hard tabs
Column: 1
(MD010, no-hard-tabs)
100-100: Hard tabs
Column: 1
(MD010, no-hard-tabs)
101-101: Hard tabs
Column: 1
(MD010, no-hard-tabs)
108-108: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
120-120: Hard tabs
Column: 1
(MD010, no-hard-tabs)
121-121: Hard tabs
Column: 1
(MD010, no-hard-tabs)
122-122: Hard tabs
Column: 1
(MD010, no-hard-tabs)
123-123: Hard tabs
Column: 1
(MD010, no-hard-tabs)
124-124: Hard tabs
Column: 1
(MD010, no-hard-tabs)
125-125: Hard tabs
Column: 1
(MD010, no-hard-tabs)
129-129: Hard tabs
Column: 1
(MD010, no-hard-tabs)
130-130: Hard tabs
Column: 1
(MD010, no-hard-tabs)
131-131: Hard tabs
Column: 1
(MD010, no-hard-tabs)
132-132: Hard tabs
Column: 1
(MD010, no-hard-tabs)
133-133: Hard tabs
Column: 1
(MD010, no-hard-tabs)
134-134: Hard tabs
Column: 1
(MD010, no-hard-tabs)
138-138: Hard tabs
Column: 1
(MD010, no-hard-tabs)
139-139: Hard tabs
Column: 1
(MD010, no-hard-tabs)
140-140: Hard tabs
Column: 1
(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1
(MD010, no-hard-tabs)
158-158: Hard tabs
Column: 1
(MD010, no-hard-tabs)
159-159: Hard tabs
Column: 1
(MD010, no-hard-tabs)
161-161: Hard tabs
Column: 1
(MD010, no-hard-tabs)
162-162: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/howto-cryptography.md
120-120: Hard tabs
Column: 1
(MD010, no-hard-tabs)
121-121: Hard tabs
Column: 1
(MD010, no-hard-tabs)
122-122: Hard tabs
Column: 1
(MD010, no-hard-tabs)
123-123: Hard tabs
Column: 1
(MD010, no-hard-tabs)
124-124: Hard tabs
Column: 1
(MD010, no-hard-tabs)
125-125: Hard tabs
Column: 1
(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1
(MD010, no-hard-tabs)
136-136: Hard tabs
Column: 1
(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1
(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1
(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1
(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1
(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1
(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1
(MD010, no-hard-tabs)
161-161: Hard tabs
Column: 1
(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1
(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1
(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1
(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1
(MD010, no-hard-tabs)
185-185: Hard tabs
Column: 1
(MD010, no-hard-tabs)
289-289: Hard tabs
Column: 1
(MD010, no-hard-tabs)
290-290: Hard tabs
Column: 1
(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-runtime-config.md
154-154: Hard tabs
Column: 1
(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1
(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1
(MD010, no-hard-tabs)
157-157: Hard tabs
Column: 1
(MD010, no-hard-tabs)
158-158: Hard tabs
Column: 1
(MD010, no-hard-tabs)
159-159: Hard tabs
Column: 1
(MD010, no-hard-tabs)
160-160: Hard tabs
Column: 1
(MD010, no-hard-tabs)
164-164: Hard tabs
Column: 1
(MD010, no-hard-tabs)
165-165: Hard tabs
Column: 1
(MD010, no-hard-tabs)
166-166: Hard tabs
Column: 1
(MD010, no-hard-tabs)
167-167: Hard tabs
Column: 1
(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1
(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1
(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1
(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1
(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1
(MD010, no-hard-tabs)
177-177: Hard tabs
Column: 1
(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1
(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1
(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1
(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1
(MD010, no-hard-tabs)
182-182: Hard tabs
Column: 1
(MD010, no-hard-tabs)
186-186: Hard tabs
Column: 1
(MD010, no-hard-tabs)
187-187: Hard tabs
Column: 1
(MD010, no-hard-tabs)
188-188: Hard tabs
Column: 1
(MD010, no-hard-tabs)
🔇 Additional comments (290)
src/translated_content/zh_CN/docs/concepts/dapr-services/_index.md (1)
1-7
: YAML Front Matter is Correctly Configured.
The metadata (type, title, linkTitle, weight, and description) is clearly defined and conforms to the expected structure for documentation files.src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/conversation-overview.md (12)
1-7
: Front Matter is Well-Formed.
The YAML front matter correctly specifies metadata (type, title, linkTitle, weight, and description) and is properly delimited.
9-11
: Alert Block Implementation Looks Good.
The alert block uses the expected templating syntax to indicate the API’s alpha status. Ensure the referenced"certification-lifecycle.md#certification-levels"
file exists.
13-14
: Introductory Paragraph Clarity.
The description succinctly explains the purpose and target audience of Dapr’s conversation API.
15-16
: Image Element Usage.
The image element is embedded with appropriate attributes such assrc
,width
, andalt
. Please verify that the image path (/images/conversation-overview.png
) is correct and that the image is optimized for web usage.
21-22
: Observability Description is Clear.
The sentence explaining how Dapr enhances observability with metrics is concise and fits well within the narrative.
23-26
: Features Section Introduction.
The “功能” section is well introduced, and the link to "[所有支持的会话组件]" follows the expected reference format.
27-30
: Prompt Caching Section is Well Written.
The explanation of prompt caching clearly outlines its benefits for optimizing performance through reuse of frequently repeated data.
31-34
: PII Cleanup Section is Clear.
The description of the personal information cleaning functionality effectively communicates its purpose in safeguarding sensitive user data.
35-40
: Demonstration Section Review.
The “演示” section provides users with both a demonstration link and an embedded YouTube player. Please verify that the YouTube URL and parameters (including the start time) meet the intended usage.
41-50
: Quick Start and Tutorial Section – Placeholder Alert.
The section offering quick start guides and tutorials is useful; however, the placeholder link "会话快速入门" should be updated with the correct URL or marked as work-in-progress.
51-54
: Direct Usage Section is Informative.
The instructions for directly using the conversation API after Dapr installation are clear and well-directed.
55-58
: Next Steps Section is Clear.
The “下一步” section effectively lists additional documentation for further action, with properly formatted links.src/translated_content/zh_CN/docs/concepts/dapr-services/placement.md (1)
1-6
: Front Matter Quality CheckThe YAML front matter is clear and well structured, providing the necessary metadata (document type, title, linkTitle, and description) for the documentation page.
src/translated_content/zh_CN/docs/concepts/observability-concept.md (12)
1-9
: Front Matter Verification
The YAML front matter is well formatted and includes all the expected keys (type, title, linkTitle, weight, and description). This section clearly sets the metadata for the documentation file.
10-14
: Introduction Paragraph Clarity
The introductory paragraph clearly outlines the challenges related to understanding system behavior in application operations. The bullet points help emphasize critical aspects such as internal call observation, performance evaluation, and timely problem detection.
22-23
: Data Collection and Observability Layers Explanation
The paragraph provides a thorough explanation regarding the necessity of collecting meaningful data from the “application perception layer.” The description is comprehensive and sets an accurate context for the subsequent sections.
24-27
: Detection Code Maintenance and Portability Challenges
The content clearly explains that maintaining detection code (which is external to core logic) requires an understanding of observability tool APIs and may incur portability challenges. The examples provided are helpful.
28-29
: Section Header: 使用Dapr实现应用程序的可观测性
The header and its introductory paragraph effectively introduce Dapr as a tool for achieving observability. The section sets the stage for more detailed discussions in later parts of the document.
32-37
: Section: 分布式追踪 & Visual Aid
The "分布式追踪" section is concise and informative. The inclusion of a reference link and an image with descriptive alt text (line 36) boosts the explanatory power of the content. Overall, this section is well executed.
42-48
: Section: Dapr sidecar 和 控制平面的可观测性
The segment describing how to observe Dapr itself is well laid out using bullet points. The information provided regarding logs, metrics, and health probes is clear and useful for the reader.
49-50
: Image for Dapr Sidecar Observability
The image is well integrated with a descriptive alt text that enhances accessibility and comprehension. No issues detected here.
51-57
: Section: 日志记录
The "日志记录" section clearly describes the role of logs in monitoring sidecar operations and debugging. The bullet points are effective in breaking down the benefits, and the reference links are appropriately positioned to guide the reader to more detailed resources.
59-64
: Section: 指标
This section offers a comprehensive explanation regarding metrics. It effectively illustrates how Dapr monitors performance indicators such as call latency and error rates, and it includes an external reference for further details on control plane metrics.
65-70
: Section: 健康检查
The health check section is informative and describes how Dapr monitors the health of the sidecar and the application itself. The explanation is clear; however, you might review the phrase “短路服务调用” to confirm that it is the intended terminology (alternatively, “禁用服务调用” might be clearer) and adjust punctuation for consistency.
71-74
: Section: 下一步 (Next Steps)
The final "下一步" section lays out actionable links for readers to continue exploring observability with Dapr. One point to verify: both bullet points reference{{< ref tracing >}}
. Confirm if both links are intentionally identical or if one should lead to a different resource.src/translated_content/zh_CN/docs/concepts/terminology.md (3)
1-7
: Front Matter is Correctly Formatted.
The YAML metadata (lines 1–7) is structured correctly and includes all the required fields for a documentation page.
9-9
: Introduction Text is Clear.
The introductory sentence on line 9 succinctly explains the purpose of the document.
11-12
: Table Header and Alignment Rows are Set Up.
The header row (line 11) and the alignment row (line 12) properly define a three-column table structure.src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/howto-cryptography.md (10)
1-7
: YAML Front Matter Validity:
The YAML front matter is well-structured and clearly defines the document’s metadata. As an enhancement, consider adding fields likelast_updated
if tracking revisions is useful.
9-10
: Introduction and Link Reference:
The introduction provides clear context and correctly uses the Hugo shortcode to reference the “cryptography overview” page.
11-14
: Alert Block for Alpha Status:
The alert block effectively notifies users that Dapr’s encryption functionality is in alpha.
16-17
: Section Heading (“加密”):
The heading clearly marks the beginning of the encryption section.
56-69
: JavaScript Encryption (Buffer) Example:
This snippet shows encryption of data (buffer or string) using the Dapr SDK with clear parameter annotations. Ensure that, in actual implementation, theawait
keyword is used within an async function context.
118-128
: Go Encryption Example (Simple):
This concise Go snippet properly demonstrates encryption using the Dapr SDK. The parameters and structure follow expected usage.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
120-120: Hard tabs
Column: 1(MD010, no-hard-tabs)
121-121: Hard tabs
Column: 1(MD010, no-hard-tabs)
122-122: Hard tabs
Column: 1(MD010, no-hard-tabs)
123-123: Hard tabs
Column: 1(MD010, no-hard-tabs)
124-124: Hard tabs
Column: 1(MD010, no-hard-tabs)
125-125: Hard tabs
Column: 1(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1(MD010, no-hard-tabs)
236-252
: JavaScript Decryption Example:
This example adequately illustrates decryption for both buffer data and streams using the Dapr SDK. As with the encryption examples, ensure these asynchronous operations are run within an async function context.
259-275
: .NET Decryption Example:
The .NET decryption snippet clearly demonstrates converting decrypted bytes back to a UTF-8 string. The asynchronous pattern and inline comments are helpful for understanding the process.🧰 Tools
🪛 LanguageTool
[uncategorized] ~261-~261: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...。 在以下示例中,我们将获取一个字节数组(例如上面的示例)并将其解密为UTF-8编码的字符串。 ```csharp public async Task<strin...(wa5)
287-292
: Go Decryption Example – Option Structure Check:
The Go decryption example usesdapr.EncryptOptions
in the call toDecrypt
. Please verify whether the SDK intentionally reuses the encryption options struct for decryption or if a distinctdapr.DecryptOptions
should be provided for clarity.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
289-289: Hard tabs
Column: 1(MD010, no-hard-tabs)
290-290: Hard tabs
Column: 1(MD010, no-hard-tabs)
298-299
: Next Steps Link (“下一步”):
The conclusion provides a clear call-to-action with a reference to the encryption component specification. This helps guide users to further relevant documentation..github/crowdin-update-source.yml (1)
5-5
: Updated Cron Schedule & Simplification of WorkflowThe cron schedule has been revised to
"10 0 * * *"
, meaning the job now runs 10 minutes past midnight instead of exactly at midnight. This change, along with the removal of the matrix strategy (which is no longer present), simplifies the workflow execution. Please confirm that the new schedule meets your project’s operational requirements.src/translated_content/zh_CN/contributing/go-contributing.md (2)
1-7
: New Documentation File MetadataThe YAML front matter is correctly structured—with clear fields such as
type
,title
,linkTitle
,weight
, anddescription
—ensuring this document integrates seamlessly into the documentation system.
9-17
: Comprehensive Contribution GuidelinesThe body of the document clearly outlines expectations for contributing to the Go SDK. The explanation on runnable examples, installation prerequisites, and codetabs usage is precise and consistent with similar documents for other SDKs.
src/translated_content/zh_CN/contributing/java-contributing.md (2)
1-7
: Java SDK Contribution Guide MetadataThe front matter is well defined with appropriate metadata, ensuring consistency with the documentation framework. The metadata fields like
type
,title
,linkTitle
,weight
, anddescription
are correctly used.
9-16
: Clear Guidance for Contributing to the Java SDKThe document provides detailed instructions for contributing, with emphasis on cross-platform runnable examples and proper usage of codetabs. This clear guidance helps maintain consistency and quality in contributions.
src/translated_content/zh_CN/contributing/python-contributing.md (2)
1-7
: Python SDK Contribution Guide MetadataThe YAML front matter is clear and follows the established structure. The metadata fields ensure that the document fits appropriately within the overall documentation system.
9-17
: Detailed Contribution InstructionsThe guidelines provided for contributing to the Python SDK are comprehensive. The sections on examples and prerequisite instructions are well articulated, ensuring that even new users can follow along without issues.
src/translated_content/zh_CN/docs/concepts/dapr-services/sentry.md (4)
1-6
: Sentry Documentation MetadataThe YAML front matter is properly structured, providing clear metadata that accurately describes the document's purpose. Fields like
title
,linkTitle
, anddescription
are well-chosen.
8-13
: Clear Overview of Dapr Sentry ServiceThe introductory section effectively explains the role of the Sentry service in managing mTLS communications and certificate distribution. The content is concise and informative.
14-18
: Explanation of Self-Hosted and Kubernetes ModesThe document clearly differentiates between the self-hosted mode and Kubernetes mode for deploying the Sentry service. The inclusion of relevant links for further details is helpful.
Consider verifying that all referenced documents (e.g.,self-hosted-with-docker.md
,mtls.md#self-hosted
) are up-to-date.
24-28
: Useful Further Reading SectionThe "进一步阅读" section consolidates helpful links for exploring security concepts and deployment modes. Ensure that all links resolve correctly to maintain a seamless user experience.
src/translated_content/zh_CN/docs/concepts/isolation-concept.md (4)
1-7
: YAML Front Matter is Well-Formed
The header is clearly defined with all required metadata (type, title, linkTitle, weight, and description).
9-13
: Clear Introduction and Context
The introductory paragraphs effectively describe how Dapr namespaces support isolation and multi-tenancy. The content is clear and concise.
15-36
: Well-Structured Tabbed Content
The usage of the tabs and codetab shortcodes to differentiate instructions for “自托管” and “Kubernetes” modes is clear and user-friendly. Ensure that the templating syntax is rendered correctly in your preview environment.
38-45
: Useful Resource Links
The final section provides quick links to additional documentation. The bullet list is clear; however, if markdownlint issues arise regarding list indentation, verify that your documentation build tool accepts the current style.src/translated_content/zh_CN/contributing/rust-contributing.md (3)
1-7
: Front Matter is Correct and Informative
The metadata is correctly specified and gives a clear overview of the document's purpose.
9-10
: Concise Introductory Statement
The opening paragraph succinctly invites contributors to follow best practices when contributing to the Rust SDK.
26-36
: Section “更新 Protobufs” Provides Clear Instructions
The code blocks and instructions for updating Protobufs are clearly written and use appropriate code formatting.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/howto-actors.md (6)
1-7
: Correct YAML Front Matter
The header information (type, title, linkTitle, weight, and description) is correctly specified and aligns with documentation standards.
9-10
: Effective Introduction
The opening sentence clearly explains the purpose of the document—to guide users in interacting with virtual actors via HTTP/gRPC endpoints.
11-18
: Code Block and API Endpoint Description
The section “调用actor方法” effectively describes how to invoke an actor method, and the code block (labeled as HTML) is appropriately used. Confirm that the<html>
language tag is supported in your documentation build process for syntax highlighting.
19-25
: Usage of Alert Block for Emphasis
The alert block drawing attention to the availability of Dapr SDKs is well integrated. Its syntax appears to conform to the expected shortcode format.
27-33
: Actor State Management Section is Clear
Guidance on using actors to save state and the requirements for aTransactionalStore
to support multi-item transactions are clearly presented.
35-43
: Navigation and Related Links are User-Friendly
The “下一步” section with a button for actor reentrancy and the “相关链接” list provide clear navigation.src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/distributed-lock-api-overview.md (6)
1-7
: Front Matter Provides Essential Metadata
The YAML header correctly details the document’s type, title, linkTitle, weight, and description.
9-19
: Introduction Effectively Explains the Concept
The “介绍” section describes the purpose of distributed locks and provides relatable examples for their use. The content is clear and concise.
28-31
: Visual and Status Information is Clear
The image inclusion and the note on the API’sAlpha
status effectively set expectations.
32-39
: Features Section is Well-Organized
The “特性” section, including headings for resource exclusivity and lease-based deadlock prevention, is logically structured and clearly written.
40-46
: Demonstration Section is Compelling
Embedding the video with an explanatory caption ties the conceptual overview to a practical demonstration.
47-50
: Next Steps Section Provides Clear Guidance
The “下一步” section directs users to further documentation on how to use distributed locks, which is both helpful and actionable.src/translated_content/zh_CN/docs/concepts/dapr-services/scheduler.md (6)
1-6
: YAML Front Matter is Accurate and Concise
The metadata succinctly defines the document’s type, title, linkTitle, and description.
8-13
: Introduction and Visuals are Informative
The introduction clearly explains the role of the Scheduler service, and the subsequent image inclusion effectively supports the description.
14-19
: Detailed Coverage of Actor Reminders Migration
The section on actor reminders outlines the migration from the Placement service to the Scheduler service in Dapr v1.15. This historical context and configuration guidance are precise and useful.
20-22
: Self-Hosted Mode Guidance is Clear
Instructions regarding the automatic startup of the Scheduler’s Docker container in self-hosted mode are straightforward and informative.
23-29
: Kubernetes Mode Deployment Instructions are Well-Outlined
The Kubernetes deployment section, including the link to additional HA configuration details, is clear and helpful for users deploying in that environment.
30-32
: Related Links Section Provides Additional Resources
The final section offers a direct link for learning more about the jobs API, which is a logical extension for users seeking further information.src/translated_content/zh_CN/docs/concepts/resiliency-concept.md (1)
1-7
: Front Matter VerificationThe front matter is correctly formatted with all the necessary metadata (type, title, linkTitle, weight, and description).
src/translated_content/zh_CN/docs/contributing/presentations.md (3)
1-7
: Front Matter VerifiedThe document metadata clearly identifies this file as the “Dapr 演讲指南” and is well-structured.
9-12
: Engaging Introduction and Call-to-ActionThe introduction effectively welcomes community members and clearly communicates the availability of a downloadable PowerPoint template to get started.
13-18
: Alert Box for MacOS Font InstallationThe alert box (lines 13–18) is well-crafted, providing clear instructions (with a code snippet) for MacOS users regarding the installation of the Space Grotesk font.
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/howto-template.md (3)
1-7
: Front Matter CheckThe metadata for the operational guide template is complete and follows the required format.
9-20
: Clear Guidance for Contributing Operational GuidesThe introductory content clearly explains the purpose of an “操作指南” and outlines critical points such as the required naming conventions and scope.
29-86
: Comprehensive Template StructureThe code block containing the Markdown template is detailed and well-commented. It provides clear instructions and a structured outline that contributors can easily follow.
src/translated_content/zh_CN/docs/concepts/configuration-concept.md (4)
1-7
: Front Matter and Metadata CheckThe front matter is correctly formatted and appropriately describes the document as covering “应用和控制平面配置”.
17-28
: YAML Configuration Example – Application ConfigurationThe first YAML example is cleanly presented and clearly demonstrates how to set a tracing endpoint.
36-47
: YAML Configuration Example – Control PlaneThe second YAML block is well-structured and clearly shows how to enable mTLS along with certificate settings.
1-59
: Overall Configuration Concept DocumentationThe document successfully explains both application and control plane configurations with practical YAML examples and clear instructions on deployment methods.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/configuration-api-overview.md (5)
1-7
: Front Matter VerificationThe metadata is clear and accurately designates this file as the “配置概述”.
9-22
: Detailed Introduction to the Configuration APIThe introduction clearly outlines the role of configuration in applications, explaining key points such as key/值对 and runtime updates.
25-27
: Alert Box DistinctionThe alert box effectively clarifies that the configuration API is distinct from Dapr sidecar and control plane configurations.
29-48
: Structured Guidance with Quickstart and DemonstrationThe sections “快速入门” and “直接在应用中开始使用配置API” are well laid out, including a concise table and clear guidance which make it easy for users to get hands-on experience.
49-51
: Clear Next StepsThe “下一步” section provides a straightforward call-to-action with a link to additional guides, rounding out the document nicely.
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/quickstart-template.md (3)
1-7
: Front Matter VerificationThe front matter is well-structured and provides clear metadata for the quickstart guide template.
9-13
: Introduction ClarityThe introduction explains the purpose of the quickstart guide clearly and concisely. It sets proper expectations for contributors.
23-92
: Embedded Template SnippetThe included markdown template snippet offers comprehensive guidance for structuring quickstart guides. Ensure that contributors remove all instructional comments before finalizing their documents.
src/translated_content/zh_CN/docs/concepts/faq/service-mesh.md (6)
1-8
: Front Matter VerificationThe metadata in the front matter is complete and correctly formatted for the "Dapr与服务网格" document.
10-15
: Introduction and Comparison OverviewThe introductory paragraphs offer a clear comparison between Dapr and service mesh solutions, effectively highlighting their different use cases and target audiences.
17-21
: Shared Functionality ListingThe bullet list neatly summarizes the overlapping features (e.g., mTLS encryption, metrics collection, distributed tracing, and retries). The list is concise and well-formatted.
23-25
: Differentiation DetailsThis section clearly delineates how Dapr’s service invocation differs from traditional service meshes. Consider adding a few more specific examples if further clarity is desired.
31-37
: Usage with Service Mesh SectionThis section efficiently explains how Dapr can be deployed alongside a service mesh, including useful links to demonstration videos. The content is both informative and actionable.
38-45
: Guidance on Choosing SolutionsThe final section offers practical advice on when to use Dapr, a service mesh, or both. This detailed guidance will help readers make informed decisions based on their specific needs.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/jobs-overview.md (9)
1-7
: Front Matter VerificationThe front matter here is complete and provides clear metadata for the Jobs Overview document.
9-12
: Introduction ClarityThe introductory section effectively explains the purpose of the Job API and sets the context for managing future scheduled tasks.
13-17
: Component ListingThe document clearly lists the major components of the Job API, with hyperlinks to further details. This aids navigability and contextual understanding.
19-19
: Image Alt Text VerificationThe image on line 19 includes an appropriate alt text, which is good for accessibility.
21-26
: Job API Working PrincipleThe explanation of the Job API’s guarantees and limitations is clear. The content responsibly sets reader expectations regarding job execution timing.
27-32
: Usage Details and ExamplesThe section clearly describes how to use the Job API, supported by examples such as delayed pub/sub messaging and service invocation. The structured approach is effective.
33-53
: Scenarios and Use CasesThe detailed scenarios list a wide range of practical applications—from automated backups to financial transaction processing. This comprehensive set of examples illustrates the versatility of the Job API well.
54-62
: Features and Multi-Replica SchedulingThe features section, especially regarding multi-replica scheduling, is informative. It clearly explains how the scheduler ensures that jobs are triggered only once.
63-70
: Try Out Instructions and Next StepsThe final sections provide clear guidance on how to try the Job API and point readers to additional resources. The call-to-action is well integrated.
src/translated_content/zh_CN/docs/concepts/dapr-services/operator.md (9)
1-6
: Front Matter VerificationThe front matter is correctly formatted and delivers essential metadata for the Dapr Operator document.
8-8
: Operator OverviewThe opening sentence succinctly explains the role of the Dapr Operator in Kubernetes mode.
10-12
: Running Operator ServiceThis section adequately explains how the Operator service is deployed (via
dapr init -k
or Helm charts) and directs users to further information.
14-16
: Additional Configuration OptionsThe brief introduction to extra configuration options sets the stage for discussing the injector monitoring feature.
18-20
: Injector Monitoring DescriptionThe description of the injector monitoring functionality is detailed and clearly identifies the problem it solves.
21-26
: Monitoring Function Use CasesThe use cases for injector monitoring (e.g., recovery after a full cluster shutdown or handling transient injector failures) are comprehensive and pragmatic.
30-30
: Default Setting NoticeThe note that the injector monitoring functionality is disabled by default is clearly stated.
32-38
: Watch Interval and Helm ConfigurationThe explanation on enabling injector monitoring via the
--watch-interval
flag—and the corresponding Helm configuration—is thorough and informative.
44-47
: Video Embed SectionThe video embed is implemented via a responsive div and iframe, which is effective for multimedia content. The setup appears correct.
src/translated_content/zh_CN/docs/concepts/faq/faq.md (2)
1-7
: Front Matter Structure is Well-Formed.
The metadata (type, title, linkTitle, weight, and description) is correctly provided.
9-17
: Content and Structure Validation.
The FAQ content covers key aspects of Dapr (service mesh differences, performance benchmarks, actors, etc.) and is well organized with clear headings and links..github/crowdin-download.yml (5)
5-5
: Updated Cron Schedule.
The cron schedule is updated to "10 1 * * *", ensuring that the workflow now runs at the new designated time.
18-23
: Directory Update for Translations.
The new “remove old files” step navigates to the correct directory, clears out existing translated content, and recreates the appropriate folder structure before copying files. Please verify that the source directory (content
) exists in context.
34-34
: Localization Branch Name Simplification.
The localization branch name is now statically set to "l10n_crowdin_action", which streamlines branch management.
42-42
: Pull Request Base Branch Update.
The base branch for the pull request is now statically set to "main", in line with repository practices.
61-62
: Consistent PR Branch Settings.
The Create Pull Request step now explicitly sets the branch to "l10n_crowdin_action" and base to "main", ensuring consistency throughout the workflow.src/translated_content/zh_CN/docs/concepts/building-blocks-concept.md (2)
1-7
: Front Matter is Correctly Defined.
The metadata, including the title, linkTitle, weight, and description, is correctly set up.
10-17
: Clear Exposition of Building Blocks.
The document clearly introduces Dapr’s building blocks, explains their purpose, and uses visuals effectively. The table of endpoints and descriptions appears comprehensive and well formatted.src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-namespace.md (3)
1-7
: Front Matter is Correctly Defined.
The front matter correctly sets up the document metadata including title, linkTitle, weight, and description.
30-46
: YAML Component Configuration is Clear.
The provided YAML snippet clearly demonstrates how to configure a pub/sub component with a namespace-based consumerID. Verify that the Redis connection details are correct for your environment.
66-70
: Multimedia Integration is Effective.
The integration of a YouTube video via an iframe provides a helpful demonstration and further context for users.src/translated_content/zh_CN/docs/contributing/codespaces.md (10)
1-10
: Front Matter and Aliases are Well Structured.
The document’s metadata, including the title, description, and alias paths, is correctly defined for proper routing and SEO.
12-18
: Effective Introduction of GitHub Codespaces.
The introductory section clearly outlines the advantages and features of using GitHub Codespaces for contributing to the Dapr project.
20-26
: Clear Instructions for Starting a Codespace.
The steps and the accompanying image provide a concise guide on how to open the repository in Codespaces. Ensure that the image at "/images/codespaces-create.png" is accessible and provides sufficient context.
28-34
: Supported Repositories Listing.
The list of supported repositories is comprehensive, ensuring contributors know which projects they can work on.
36-50
: GitHub CLI Authentication and Cloning Instructions.
The instructions for authenticating with the GitHub CLI and cloning the appropriate repository (dapr/components-contrib) are clear and include helpful comments for users who may need to adjust the commands for their fork.
52-66
: Workspace Addition Command is Clear.
The steps to add the cloned repository to the active VS Code workspace usingcode -a /workspaces/components-contrib
are straightforward.
68-78
: Alternate Codespace Setup Guidance.
The guidance for users starting from the dapr/components-contrib repository is clear, detailing how to clone dapr/dapr into the workspace and ensuring authentication is handled properly.
80-88
: Cloning and Workspace Setup for dapr Repository.
The commands provided to clone the dapr/dapr repository and add it to the workspace are well explained, with useful comments on fork usage.
90-94
: Workspace Addition for dapr Repository.
The final step to open the cloned dapr repository usingcode -a /workspaces/dapr
is well presented.
96-99
: Reference Links Section.
The related links section offers additional guidance without cluttering the document, using marker comments to indicate inclusion/exclusion.src/translated_content/zh_CN/docs/concepts/dapr-services/sidecar.md (2)
1-7
: Front Matter VerificationThe YAML header (lines 1–7) is correctly configured with proper metadata for this documentation file.
9-18
: Content Clarity and StructureThe introduction clearly explains the sidecar pattern and the role of the Dapr sidecar. The flow from the introductory paragraph (line 9) to the bullet points (lines 11–16) is well organized.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-subscribe-statefulset.md (4)
1-7
: Front Matter VerificationThe YAML header (lines 1–7) is properly set up with accurate metadata for the document.
9-11
: Introduction QualityThe introductory paragraph (lines 9–11) clearly outlines the purpose of using StatefulSets for horizontally scaling subscribers.
12-38
: YAML Example ClarityThe provided YAML code block (lines 12–38) is a clear and well-formatted example for setting up a StatefulSet. It effectively demonstrates the necessary specifications such as selectors, replicas, and container configuration.
40-94
: Documentation CompletenessThe subsequent descriptive sections and examples (lines 40–94) are comprehensive and offer valuable insights into consumer behaviors and Dapr’s pubsub configurations. The guidance on using unique
consumerID
s and the contrasting methods (broadcast vs. shared messaging) is well explained.src/translated_content/zh_CN/docs/developing-applications/building-blocks/cryptography/cryptography-overview.md (4)
1-7
: Front Matter VerificationThe YAML metadata at the top (lines 1–7) is formatted correctly and provides the necessary context for the document.
9-15
: Content Clarity and ScopeThe opening sections (lines 9–15) clearly introduce encryption concepts within Dapr, outlining why encryption is necessary along with industry and regulatory considerations. The content is concise and to the point.
29-29
: Image AccessibilityThe image on line 29 includes an alt attribute (
alt="显示 Dapr 加密如何与您的应用程序协作的图示"
), which is good practice.
43-45
: Section OrganizationThe segmentation into sections such as "为什么需要加密?", "Dapr 中的加密", and "功能" effectively guides the reader through the topics.
src/translated_content/zh_CN/docs/contributing/daprbot.md (3)
1-7
: Front Matter VerificationThe document’s YAML front matter (lines 1–7) is in good order with well-defined metadata.
9-19
: Command Reference TableThe command reference table (lines 11–19) is detailed and provides clear insight into the capabilities and permissions of Dapr Bot commands. The formatting is clean, and the descriptions are concise.
20-29
: Label Reference TableThe labels table (lines 20–29) is informative and clearly shows how different labels are used. This aids contributors in understanding issue assignment and tracking processes.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/namespaced-actors.md (5)
1-7
: Front Matter VerificationThe YAML header (lines 1–7) is correctly populated with accurate metadata for the document.
9-10
: Introduction ClarityThe opening lines (9–10) succinctly explain the purpose of namespaces in Dapr and set the stage for the details to follow.
11-13
: Effective Alert UsageThe alert block (lines 11–13) clearly emphasizes the requirement for using independent state stores for actors deployed in separate namespaces. This is critical information for preventing configuration issues.
15-39
: Tabbed Content for Deployment ModesThe use of tabs (lines 15–39) to differentiate between self-hosted and Kubernetes setups is an excellent design choice that improves readability and usability.
40-43
: State Store Configuration ExplanationThe section introducing the need for independent state stores (lines 40–43) is well explained, providing the necessary context before presenting concrete examples.
src/translated_content/zh_CN/contributing/js-contributing.md (4)
1-7
: Metadata and Header FormattingThe YAML header is clear and complete, correctly specifying document type, title, linkTitle, weight, and description.
9-12
: Clear IntroductionThe introductory paragraph concisely explains the purpose of the document and provides a friendly guide on contributing to the JavaScript SDK.
13-72
: Detailed Commit Message GuidelinesThe “提交指南” section, including the code block example (lines 19–21) and the subsequent bullet list detailing commit types, scopes, and special markers (e.g. "!"), is well-organized and very informative. The examples are clear and practical.
Line range hint
73-118
: Comprehensive Documentation on Coding Rules and ExamplesThe remainder of the document—covering coding rules, documentation locations, and example guidelines—is structured logically and provides excellent guidance for contributors.
src/translated_content/zh_CN/contributing/dotnet-contributing.md (2)
1-7
: YAML Header CompletenessThe document’s metadata is correctly configured with all necessary fields.
9-16
: Welcoming IntroductionThe welcome section provides a friendly introduction and clearly explains the intent of the document. The guidelines and call to action (e.g., joining Discord for help) are clearly communicated.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-features-concepts.md (2)
1-9
: Metadata and Document IdentityThe header (lines 1–9) properly sets the document’s type, title, link title, weight, description, and relevant aliases.
11-40
: Comprehensive Coverage of Actor CharacteristicsThe introductory sections and discussions on Actor 生命周期 and 分布与故障转移 are clear and informative, providing a solid conceptual overview for readers.
src/translated_content/zh_CN/docs/contributing/contributing-overview.md (2)
1-8
: Metadata ConfigurationThe YAML header for this new document is well defined with clear metadata including type, title, linkTitle, weight, and a descriptive multi-line description.
9-14
: Engaging IntroductionThe introduction effectively welcomes the reader and succinctly explains the contribution process for the Dapr project.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/bindings-overview.md (6)
1-7
: Header and Metadata CheckThe YAML metadata is well defined and accurately describes the document’s purpose related to the bindings API module.
9-17
: Clear and Informative IntroductionThe opening paragraphs provide a concise explanation of the bindings API, its benefits, and the key points of interaction with external systems.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~12-~12: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:交互"地"实现
Context: ...系统并进行轮询的复杂性(如队列和消息总线)。 - 专注于业务逻辑,而不是系统交互的实现细节。 - 使您的代码不依赖于特定的 SDK 或库。 - 处理重试和故障恢复...(wb4)
23-24
: Proper Use of Alt Text in ImagesThe image on line 23 already includes an appropriate
alt
attribute, which is excellent for accessibility and clarity.
41-42
: Embedding Multimedia ContentThe embedded YouTube video via the
<iframe>
is correctly configured with proper attributes. This provides additional context and visual guidance without affecting accessibility adversely.
55-76
: Comprehensive Coverage of Bindings DetailsThe document effectively details both input and output bindings, including practical steps and additional resource links. The alert boxes and step-by-step instructions enhance clarity significantly.
92-112
: Next Steps and Additional ResourcesThe “下一步” section at the end offers clear guidance for further learning and hands-on practice. The table of tutorials and quickstarts is very useful for contributors.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/howto-use-distributed-lock.md (4)
1-7
: Front Matter Verification:
The YAML front matter is clearly defined with required fields (type, title, linkTitle, weight, description). This sets the context well for the new documentation page.
9-22
: Content Clarity & Image Annotations:
The introductory section explains the purpose of the distributed lock guide clearly. The accompanying images include descriptive alt text that helps clarify the different scenarios for lock acquisition.
42-52
: Lock Acquisition Examples:
The HTTP and code examples (Bash, C#, Go) for acquiring a lock are well formatted and easy to follow. They illustrate the intended usage of the Dapr distributed lock API perfectly.
122-139
: Unlock Operation Documentation:
While not detailed in the snippet provided here, ensure that the unlock examples are consistent with the lock acquisition instructions and that endpoint paths and header configurations are up-to-date with the current Dapr API.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actor-reentrancy.md (6)
1-7
: Front Matter Validation:
The front matter is properly set up with all required metadata for a docs page on actor reentrancy.
9-16
: Concept Explanation Clarity:
The initial explanation of actor reentrancy clearly outlines its purpose and benefits. The content is concise and informative.
37-54
: .NET Implementation Example:
The provided .NET example is clear and well-formatted. It effectively demonstrates how to configure actor reentrancy with the Dapr Actors SDK.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
40-40: Hard tabs
Column: 1(MD010, no-hard-tabs)
41-41: Hard tabs
Column: 1(MD010, no-hard-tabs)
42-42: Hard tabs
Column: 1(MD010, no-hard-tabs)
43-43: Hard tabs
Column: 1(MD010, no-hard-tabs)
44-44: Hard tabs
Column: 1(MD010, no-hard-tabs)
45-45: Hard tabs
Column: 1(MD010, no-hard-tabs)
46-46: Hard tabs
Column: 1(MD010, no-hard-tabs)
47-47: Hard tabs
Column: 1(MD010, no-hard-tabs)
48-48: Hard tabs
Column: 1(MD010, no-hard-tabs)
49-49: Hard tabs
Column: 1(MD010, no-hard-tabs)
50-50: Hard tabs
Column: 1(MD010, no-hard-tabs)
51-51: Hard tabs
Column: 1(MD010, no-hard-tabs)
52-52: Hard tabs
Column: 1(MD010, no-hard-tabs)
59-73
: JavaScript Implementation Example:
The JavaScript snippet offers a concise demonstration of reentrancy configuration. Its clarity and proper language tagging make it easy to understand.
77-102
: Python Implementation Example:
The Python snippet correctly shows how to set up reentrancy in a Dapr Actor using the FastAPI integration. The usage of Dapr’s actor runtime configuration is clear and accurate.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
95-95: Hard tabs
Column: 1(MD010, no-hard-tabs)
96-96: Hard tabs
Column: 1(MD010, no-hard-tabs)
100-100: Hard tabs
Column: 1(MD010, no-hard-tabs)
101-101: Hard tabs
Column: 1(MD010, no-hard-tabs)
116-142
: Golang Implementation Example:
The Go example is well-documented and demonstrates the configuration of actor reentrancy using the available SDK features. The example is appropriate for its purpose.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
120-120: Hard tabs
Column: 1(MD010, no-hard-tabs)
121-121: Hard tabs
Column: 1(MD010, no-hard-tabs)
122-122: Hard tabs
Column: 1(MD010, no-hard-tabs)
123-123: Hard tabs
Column: 1(MD010, no-hard-tabs)
124-124: Hard tabs
Column: 1(MD010, no-hard-tabs)
125-125: Hard tabs
Column: 1(MD010, no-hard-tabs)
129-129: Hard tabs
Column: 1(MD010, no-hard-tabs)
130-130: Hard tabs
Column: 1(MD010, no-hard-tabs)
131-131: Hard tabs
Column: 1(MD010, no-hard-tabs)
132-132: Hard tabs
Column: 1(MD010, no-hard-tabs)
133-133: Hard tabs
Column: 1(MD010, no-hard-tabs)
134-134: Hard tabs
Column: 1(MD010, no-hard-tabs)
138-138: Hard tabs
Column: 1(MD010, no-hard-tabs)
139-139: Hard tabs
Column: 1(MD010, no-hard-tabs)
140-140: Hard tabs
Column: 1(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/concepts/components-concept.md (5)
1-7
: Front Matter Verification:
The front matter metadata is complete and appropriate for introducing a new documentation page about Dapr components.
9-16
: Content Overview:
The introductory section clearly explains Dapr’s modular component architecture, outlining how components are interchangeable. This serves as a solid foundation for readers new to the subject.
22-24
: Alert Block Review:
The alert on recommended memory configuration provides valuable operational advice. Ensure that these recommendations stay aligned with the latest best practices in Dapr deployments.
26-34
: Component Specification Details:
The explanation on where component YAML files are stored and how to interpret component specifications is clear and informative.
41-49
: Built-in vs. Pluggable Components:
The distinctions between built-in and pluggable components are well articulated. The examples provided help clarify practical scenarios where each type is used.src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-timers-reminders.md (6)
1-10
: Front Matter Verification:
The document’s front matter is complete, including essential metadata such as type, title, weight, description, and aliases.
11-16
: Introduction and Overview:
The introduction clearly distinguishes between timers and reminders for actors, emphasizing their respective stateful and stateless qualities.
17-42
: Scheduling Configuration Explanation:
The detailed breakdown of scheduling parameters—such asdueTime
,period
, andttl
—along with their supported formats, is comprehensive and well-structured.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
39-39: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
40-40: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
41-41: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
60-69
: Timer API HTTP Example:
The HTTP request example for creating a timer is well-presented and straightforward, making it easy for developers to replicate.
69-89
: JSON Configuration Examples:
The JSON examples provided illustrate multiple timer configurations clearly. They effectively cover scenarios with different timing setups and repetition limits.
Line range hint
191-198
: Reminder API Examples:
The HTTP examples for retrieving and deleting actor reminders are useful. Please verify that the endpoint paths conform to the latest Dapr API specifications.🧰 Tools
🪛 LanguageTool
[uncategorized] ~46-~46: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...您同时指定period
中的重复次数和ttl
时,定时器/提醒将在任一条件满足时停止。 ## actor 定时器 您可以在 actor 上注册一个基于...(wa5)
🪛 markdownlint-cli2 (0.17.2)
39-39: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
40-40: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
41-41: Unordered list style
Expected: dash; Actual: asterisk(MD004, ul-style)
175-175: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
183-183: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-overview.md (5)
1-9
: Front Matter Verification:
The metadata in the front matter—such as type, title, linkTitle, weight, and description—is complete and sets a clear context for this overview document.
11-12
: Introduction Clarity:
The introduction succinctly describes the core concepts of the Actor model and its role within Dapr.
35-47
: Detailed Actor Model Explanation:
The document presents a comprehensive explanation of the Dapr Actor model, including key aspects such as activation, lifecycle management, and distributed communication.
49-104
: Actor Features & State Management:
The detailed discussion on actor IDs, state storage, timers, and reminders is informative. Please ensure that all referenced links (e.g., API references, related docs) are up-to-date.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
90-90: Images should have alternate text (alt text)
null(MD045, no-alt-text)
107-112
: Call-to-Action and Related Links:
The "下一步" section and the list of related links create a clear pathway for further exploration, enhancing the document’s usability.🧰 Tools
🪛 LanguageTool
[uncategorized] ~107-~107: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一致"地"查询
Context: ...为true
。actor 状态以特定方案存储在事务性状态存储中,允许进行一致的查询。所有 actor 只能使用单个状态存储组件作为状态存储。阅读[状态 API...(wb4)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/howto-actors-partitioning.md (3)
1-9
: Front Matter and Metadata
The front matter is correctly configured with all the necessary metadata (type, title, linkTitle, weight, description, and aliases). This sets a clear initial context for the document.
21-25
: Metadata Table Clarity
The table outlining the metadata keys and values is well formatted and clearly demonstrates how actor configuration is stored. No changes are needed here.
29-165
: Comprehensive Code Examples Across Languages
The tabbed sections for configuring the actor runtime (covering .NET, JavaScript, Python, Java, and Go) are comprehensive and very helpful. They provide practical code examples that clearly illustrate how to set theremindersStoragePartitions
property.src/translated_content/zh_CN/docs/developing-applications/building-blocks/conversation/howto-conversation-layer.md (4)
1-7
: Front Matter Validation
The document’s front matter is properly set up with the type, title, linkTitle, weight, and description. This helps establish the context for users who will use the conversation API.
9-11
: Alpha Alert Clarity
The alert indicating that the conversation API is in the alpha stage is clear and effective in setting expectations.
27-35
: Conversation Component Configuration
The YAML snippet that configures the conversation component (using an echo component) is concise and clear. It provides an excellent example of component configuration.
156-203
: Starting Conversation Connection Examples
The tabbed examples demonstrating how to start the conversation connection usingdapr run
are well structured. Including the expected outputs adds clarity to what users should see.src/translated_content/zh_CN/docs/_index.md (2)
1-4
: Index File Front Matter
The front matter here is succinct and effective, with the specification oftype: docs
andno_list: true
, ensuring that the index page is correctly managed.
5-12
: Welcome Section and Alert
The welcoming message paired with the “什么是 Dapr?” alert engages users and provides a clear call-to-action with the “开始使用” button.src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-triggers.md (3)
1-7
: Front Matter Verification
The document’s front matter (title, linkTitle, description, and weight) is clearly defined, which aids in categorizing and retrieving this guide within the documentation site.
9-16
: Introduction and Benefits Explanation
The introductory text effectively outlines what input bindings are and details their benefits, such as decoupling from specific SDKs and enhancing event-driven logic.
290-295
: References Section
The references are clearly listed and provide users with direct links to more detailed documentation on bindings, APIs, and component concepts.src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md (10)
1-7
: Front Matter Setup
The front matter for this document is well defined, including the type, title, linkTitle, weight, and description, which sets up the context for the CloudEvents messaging guide.
8-16
: Introduction to CloudEvents
The introduction effectively explains the rationale behind Dapr’s use of CloudEvents and provides the necessary context with supportive links.
25-38
: CloudEvents Attributes Overview
The detailed list of CloudEvents attributes (such asid
,source
,specversion
, etc.) is comprehensive and clearly informs users what to expect from Dapr-generated CloudEvents.
43-79
: CloudEvents JSON Examples
The JSON examples provided (including both a standard CloudEvent and one with XML content) are clear and effectively illustrate the structure of events.
81-91
: Overriding Default CloudEvent Properties
This section clearly explains how to override the default CloudEvent properties using metadata keys. The instructions are straightforward and useful for advanced configurations.
98-134
: Custom CloudEvents with Code Examples
The tabbed code examples for Python and .NET demonstrate how to override CloudEvent properties effectively. These samples are practical and should help users implement custom behaviors.
160-163
: Important Alert on Trace Properties
The alert highlighting potential issues when overridingtraceid
,traceparent
, andtracestate
is prominently placed and communicates the caution required when tampering with these fields.
165-180
: Publishing Custom CloudEvents
The explanations regarding the requirements for publishing custom CloudEvents—including the mandatory fields and content-type settings—are very clear and helpful.
186-215
: CloudEvent Publishing Examples
The examples for publishing CloudEvents via Dapr CLI, HTTP API (Bash), and PowerShell are detailed and cover different usage scenarios. They provide a solid basis for users to experiment with various tools.
219-228
: Event Deduplication and Next Steps
The final sections on event deduplication and the next steps are well written and offer useful guidance for users interested in exploring advanced topics.src/translated_content/zh_CN/docs/developing-applications/building-blocks/jobs/howto-schedule-and-handle-triggered-jobs.md (6)
1-7
: Front Matter: Well-Structured Header
The YAML front matter is concise and correctly sets up the document metadata.
26-50
: .NET Types Definition Example
The record types (BackupJobData
andBackupMetadata
) are defined clearly. Consider adding a very brief inline comment (in Chinese) about the purpose of these types to assist new readers.🧰 Tools
🪛 LanguageTool
[uncategorized] ~34-~34: 能愿动词不能成为‘把’字句、‘被’字句的谓语动词。应该是:"可以被……触发"。
Context: ...r注册作业 在以下示例中,您将创建记录,序列化并与作业一起注册,以便在将来作业被触发时可以使用这些信息: - 备份任务的名称(db-backup
) - 备份任务的`M...(wa3)
56-88
: .NET Example – Job Handler Registration
This code snippet clearly demonstrates how to register an endpoint for handling triggered jobs with Dapr. Please ensure that the asynchronous call (e.g. toBackupDatabaseAsync
) is defined elsewhere in your code or linked in supplementary documentation.
92-105
: .NET Example – Job Scheduling with DaprJobsClient
The example properly illustrates creating an application scope, serializing job data, and scheduling a job with a fixed repeat count and interval. Double-check that the chosen schedule (once per minute and 10 repeats) aligns with your intended demonstration scenarios.
111-159
: Go Example – Scheduling a Job
The Go SDK code example is comprehensive; it demonstrates error handling, job data serialization, and scheduling. Verify that the use of packages and the handler registration is consistent with your other samples for easier cross-language comparison.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
125-125: Hard tabs
Column: 1(MD010, no-hard-tabs)
126-126: Hard tabs
Column: 1(MD010, no-hard-tabs)
127-127: Hard tabs
Column: 1(MD010, no-hard-tabs)
128-128: Hard tabs
Column: 1(MD010, no-hard-tabs)
133-133: Hard tabs
Column: 1(MD010, no-hard-tabs)
136-136: Hard tabs
Column: 1(MD010, no-hard-tabs)
137-137: Hard tabs
Column: 1(MD010, no-hard-tabs)
138-138: Hard tabs
Column: 1(MD010, no-hard-tabs)
140-140: Hard tabs
Column: 1(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1(MD010, no-hard-tabs)
154-154: Hard tabs
Column: 1(MD010, no-hard-tabs)
155-155: Hard tabs
Column: 1(MD010, no-hard-tabs)
156-156: Hard tabs
Column: 1(MD010, no-hard-tabs)
157-157: Hard tabs
Column: 1(MD010, no-hard-tabs)
287-290
: Conclusion & Next Steps Clarity
The concluding section clearly instructs readers on what to do next and provides internal links for further details. Please verify that all referenced links resolve correctly.src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/howto-bindings.md (5)
1-7
: Front Matter: Document Metadata
The YAML header here is properly formatted and includes all necessary metadata such as type, title, link title, description, and weight.
9-19
: Introduction & Context
The introductory section effectively explains the functionality and use case for output bindings using Kafka. The embedded image includes a descriptive alt attribute, which improves accessibility.
40-66
: Self-Hosted Binding Component Configuration
The code snippet for creating abinding.yaml
file in a self-hosted scenario is clear. Ensure that the comments and metadata (like the broker and topic settings) are updated as necessary for your production environment or further examples.
70-98
: Kubernetes Binding Component Configuration
The Kubernetes version of the binding component configuration is well formatted. Double-check that the component’s metadata (e.g. consumer group, publish topic) correctly reflects the sample environment and is consistent with the self-hosted example.
104-303
: Multi-Language Output Binding Invocation Examples
The examples spanning .NET, Java, Python, Go, and JavaScript provide comprehensive instructions for invoking the output binding. Each snippet demonstrates the use of a Dapr SDK for calling the binding endpoint. Make sure that error handling in each language is robust—especially for production code—and that any differences in environment configuration are clearly documented.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
167-167: Hard tabs
Column: 1(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1(MD010, no-hard-tabs)
175-175: Hard tabs
Column: 1(MD010, no-hard-tabs)
176-176: Hard tabs
Column: 1(MD010, no-hard-tabs)
178-178: Hard tabs
Column: 1(MD010, no-hard-tabs)
179-179: Hard tabs
Column: 1(MD010, no-hard-tabs)
180-180: Hard tabs
Column: 1(MD010, no-hard-tabs)
181-181: Hard tabs
Column: 1(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1(MD010, no-hard-tabs)
236-236: Hard tabs
Column: 1(MD010, no-hard-tabs)
237-237: Hard tabs
Column: 1(MD010, no-hard-tabs)
238-238: Hard tabs
Column: 1(MD010, no-hard-tabs)
239-239: Hard tabs
Column: 1(MD010, no-hard-tabs)
240-240: Hard tabs
Column: 1(MD010, no-hard-tabs)
241-241: Hard tabs
Column: 1(MD010, no-hard-tabs)
242-242: Hard tabs
Column: 1(MD010, no-hard-tabs)
244-244: Hard tabs
Column: 1(MD010, no-hard-tabs)
245-245: Hard tabs
Column: 1(MD010, no-hard-tabs)
246-246: Hard tabs
Column: 1(MD010, no-hard-tabs)
247-247: Hard tabs
Column: 1(MD010, no-hard-tabs)
src/translated_content/zh_CN/docs/concepts/security-concept.md (5)
1-7
: Front Matter: Security Concept Header
The YAML header for this security document is clear and sets the appropriate context for the content that follows.
9-17
: Introduction & Overview
The opening paragraphs provide a clear overview of Dapr’s security features and structure the content effectively.
201-212
: Threat Model Section
The threat model is well described and supported by an illustration. Ensure that the diagram accurately reflects the threats mentioned in the text.🧰 Tools
🪛 LanguageTool
[uncategorized] ~205-~205: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:适当"地"保护
Context: ...模是一个过程,通过该过程: - 可以识别和列举潜在威胁,如结构性漏洞或缺乏适当的保护措施。 - 可以优先考虑缓解措施。 Dapr的威胁模型如下。 <img ...(wb4)
212-240
: Security Audit Details
The details regarding various security audits are comprehensive and help to build trust in the platform. The inclusion of links to full reports is a strong point.🧰 Tools
🪛 LanguageTool
[uncategorized] ~227-~227: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很高"?
Context: ...dit-report.pdf)找到完整报告。 审计发现了7个问题,其中没有一个是高或关键严重性。一个CVE是由于Dapr组件贡献中的第三方依赖问题而分配的。 #...(SHI_ADHECTIVE_ERROR)
282-286
: Reporting Security Issues Instructions
The steps to report security issues are clear and direct readers to the correct support channels. Verify that the reference link works as expected.src/translated_content/zh_CN/docs/contributing/docs-contrib/maintainer-guide.md (10)
1-7
: Front Matter: Maintainer Guide Header
The YAML front matter is clear and conforms to documentation guidelines.
9-12
: Introduction Section
The introduction succinctly outlines the role and responsibilities of Dapr documentation maintainers. The reference to the contributor guide is helpful for those interested in broader contributions.
13-20
: Branch Management Guidelines
The section on branch management is well summarized. The inclusion of a link to the comprehensive branch list in the repository adds value.
21-28
: Merging from Current to Pre-release Branches
The step-by-step instructions for keeping the pre-release branch up-to-date are detailed and practical. Confirm that the branch names (e.g.v1.0
,v1.1
) are current.
30-41
: Git Command Examples for Synchronization
The provided git commands (e.g.git pull upstream v1.0
andgit push origin v1.0
) are clear and serve as a good reference for maintainers.
42-47
: Creating a New Merge Branch
The command to create a new merge branch (git checkout -b upmerge_MM-DD
) is straightforward and well explained.
59-66
: Release Process Overview
This section effectively summarizes the steps necessary to align documentation updates with Dapr releases.
152-169
: Hugo Configuration Update Instructions
The detailed instructions for updatingdaprdocs/config.toml
ensure the site reflects the proper version information. Please double-check that the version numbers and URLs match the intended release.
347-367
: Azure SWA & DNS Configuration Guidance
The section on deploying a new Azure Static Web App and configuring DNS is comprehensive. The step-by-step instructions are very helpful for maintainers.🧰 Tools
🪛 LanguageTool
[uncategorized] ~356-~356: 您的意思是“"账"户”?
Context: ...义域**。 1. 复制 Web 应用的 "CNAME" 值。 1. 使用您自己的帐户,[提交 CNCF 工单](https://jira.linuxfoundat...(ZHANG7_ZHANG8)
409-411
: Next Steps Section
The final section provides a clear call-to-action for further contributions. Overall, the guide is detailed and practical.src/translated_content/zh_CN/docs/contributing/docs-contrib/contributing-docs.md (11)
1-7
: Front Matter: Contributor Guide Header
The YAML front matter is correctly formatted and provides all required metadata.
9-12
: Introduction & Video Embed
The introductory section is clear, and the embedded YouTube iframe includes all necessary attributes. Good integration of multimedia content.
13-20
: Prerequisites Section
The prerequisites for contributing are clearly listed and include helpful links. This sets the right expectations for new contributors.🧰 Tools
🪛 LanguageTool
[uncategorized] ~17-~17: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...rame> ## 先决条件 在为 Dapr 文档做贡献之前: - 查看 [关于 Dapr 项目贡献的一般指导]({{< ref contributing-ov...(wb2)
21-28
: Branch Guidance
The explanation regarding branch management is concise and informs contributors which branches to target for their documentation changes.
42-56
: Charts and Images Integration
The instructions for preparing and embedding images and charts are detailed and follow best practices (including naming conventions).🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
52-52: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
53-53: Unordered list indentation
Expected: 0; Actual: 2(MD007, ul-indent)
53-53: Link fragments should be valid
null(MD051, link-fragments)
57-64
: Guidelines for New Documentation Pages
Clear directions on where to place new files and the importance of complete front matter are provided. This will help avoid misplacements and build errors.
73-77
: docs.dapr.io Site Requirements
The specifications regarding file naming, folder structure, and front-matter requirements are clearly stated, ensuring consistency during site builds.
83-97
: Front-Matter Best Practices Explained
The detailed example of the required front matter is very helpful for new contributors. This section sets a clear standard for all documentation pages.
267-273
: Embedded Code Snippet Instructions
The explanation for using thecode-snippet
shortcode with markers is clear and useful. Ensure that any replacement tokens are well documented for contributors.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
267-267: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
430-434
: Translation Addition Process
The section describing how to add new language translations is detailed and well structured. This will be especially useful for maintaining multilingual documentation.
436-444
: Next Steps - Final Guidance
The final instructions to start from the Dapr documentation template are clear and actionable. The next steps are well outlined.src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-route-messages.md (6)
1-7
: Front Matter and Metadata Validated
The front matter is properly structured with clear metadata (type, title, linkTitle, weight, description). This sets a clear context for the document.
8-14
: Introduction Section is Clear and Comprehensive
The introductory paragraph explains the concept of content-based routing using a DSL and outlines the benefits of decoupling routing rules from imperative code. The language is clear and well-tailored for the target audience.
19-37
: YAML Example for Declarative Subscription is Well-Formatted
The provided YAML code block clearly demonstrates how to configure declarative subscriptions, with proper indentation and logical grouping of routes and default values.
39-83
: Multi-Language Code Samples are Informative and Consistent
The document offers clear and consistent code examples in multiple programming languages (Python, JavaScript, C#, Go, PHP) for setting up programmatic subscriptions. Ensure that all fenced code blocks are rendered with the appropriate language for optimal syntax highlighting.
250-275
: CEL Expression Section is Detailed and Practical
The section on CEL (通用表达式语言) provides precise examples for filtering messages based on CloudEvents attributes. The examples are both practical and relevant for developers implementing message routing.
277-457
: CloudEvent Properties and Subsequent Sections are Thorough
The detailed explanation of CloudEvent attributes—supported by bullet points, examples, and alerts—provides an excellent reference. A quick proofreading for minor typographical errors in the Chinese text might be beneficial.src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/pubsub-bulk.md (6)
1-7
: Front Matter and Metadata are Correct
The front matter for this new document clearly identifies it as a guide on bulk publish and subscribe messages.
9-11
: Alpha Stage Alert is Appropriately Highlighted
The alert block unmistakably communicates that the bulk API is in alpha. This transparency is useful for practitioners who must evaluate the maturity of the feature.
15-23
: Introduction to Bulk Publish is Concise and Informative
The text explains the purpose and limitations of bulk publishing succinctly, setting the stage for the detailed examples that follow.
28-106
: Multi-Language Code Examples for Bulk Publish are Well-Structured
The document provides comprehensive code samples in various languages (Java, TypeScript, C#, Python, Go, Bash, PowerShell). For clarity, ensure that each fenced code block includes a language specifier if not already present.
539-553
: Bulk Subscribe Section and Code Examples are Clear
The YAML example and multi-language examples for bulk subscription offer clear guidance on configuring and using the bulk subscribe API.
Line range hint
664-679
: Closing Sections and Next Steps are Useful
The document closes with additional resource links and next steps, which help guide users toward further learning and exploration.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
532-532: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
533-533: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
534-534: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
535-535: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected leading pipe(MD055, table-pipe-style)
536-536: Table pipe style
Expected: no_leading_or_trailing; Actual: leading_and_trailing; Unexpected trailing pipe(MD055, table-pipe-style)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md (5)
1-7
: Front Matter and Metadata are Well-Defined
The metadata clearly establishes the document’s purpose: guiding users on how to publish messages and subscribe to topics using Dapr.
9-17
: Clear Explanation of Service Roles
The introduction effectively outlines the roles of the involved services (checkout and order processing) and is complemented by a helpful diagram.
25-30
: Setting Up the Pub/Sub Component is Clear
The instructions for configuring the Pub/Sub component in both self-hosted and Kubernetes environments are clear and actionable.
153-178
: Subscription YAML Example is Informative
The YAML example for subscribing to theorders
topic is well-structured. Verify that the field naming (e.g.,route
vs.routes
) is consistent throughout the document.
200-224
: Multi-Language Subscription Samples Enhance Clarity
The code samples in C#, Java, Python, Go, and JavaScript are comprehensive and illustrate how to set up subscriptions effectively.src/translated_content/zh_CN/docs/developing-applications/building-blocks/configuration/howto-manage-configuration.md (3)
1-7
: Front Matter and Metadata are Correct
The document’s metadata is clear and provides an appropriate introduction to managing configuration via a Redis configuration store.
55-66
: YAML Component Configuration is Well-Structured
The YAML example for configuring Dapr to use the Redis configuration store is clear. Remember to replace the placeholder<PASSWORD>
with the actual password in production.
517-547
: Subscription Cancellation Examples are Comprehensive
The examples for cancelling configuration subscriptions across various languages are clear and useful. Check that all variable names and argument orders are consistent throughout the snippets.src/translated_content/zh_CN/docs/developing-applications/building-blocks/distributed-lock/_index.md (1)
1-7
: Front Matter is Correct
The metadata clearly identifies the document as a guide on distributed locks and is succinctly written.src/translated_content/zh_CN/docs/developing-applications/building-blocks/bindings/_index.md (1)
1-7
: Metadata Block is CorrectThe YAML front matter is correctly structured and supplies all required metadata fields with clear values.
src/translated_content/zh_CN/docs/developing-applications/building-blocks/actors/actors-runtime-config.md (7)
1-7
: Metadata Block is CorrectThe YAML front matter is well defined with clear documentation metadata.
9-21
: Documentation Table is ClearThe table of configuration parameters is well-structured and clearly communicates each parameter’s purpose alongside its default value.
24-63
: .NET Code Snippet is Well DocumentedThe C# example clearly demonstrates the actor runtime configuration using dependency injection and inline comments. It effectively communicates how to register and configure actors.
66-98
: JavaScript Code Snippet is ConciseThe JavaScript snippet effectively illustrates how to configure actor runtime settings using the Dapr SDK. The usage of a configuration object and inline comments makes it easy to follow.
100-122
: Python Code Example is AccurateThe Python snippet accurately configures the actor runtime using
timedelta
and configuration objects, providing a clear and concise example.
124-142
: Java Example is ClearThe Java example succinctly sets the actor runtime parameters with well-labeled code, making it easy to understand the configuration process.
198-206
: Navigation and Related Links are Well OrganizedThe sections "下一步" and "相关链接" provide clear calls to action and resource references, which improve the overall usability of the document.
src/translated_content/zh_CN/docs/contributing/docs-contrib/docs-templates/concept-template.md (2)
1-7
: Front Matter is Correctly Defined
The YAML metadata is clearly set with necessary keys: type, title, linkTitle, weight, and description. This sets the context for the document and adheres to common documentation conventions.
28-100
: Comprehensive and Well-Structured Markdown Template
The code block provides a detailed and structured template for creating concept articles. The inner front matter, placeholder comments, and section headings (e.g., “## <章节 1 H2>”, “## 体验 <概念>”, etc.) offer clear guidance for contributors. Ensure that contributors remember to remove or update the placeholder texts and HTML comments before final submission.
|
||
```csharp | ||
using var client = new DaprClientBuilder().Build(); | ||
|
||
const string componentName = "azurekeyvault"; //更改此以匹配您的加密组件 | ||
const string keyName = "myKey"; //更改此以匹配您加密存储中的密钥名称 | ||
|
||
const string plainText = "This is the value we're going to encrypt today"; | ||
|
||
//将字符串编码为UTF-8字节数组并加密 | ||
var plainTextBytes = Encoding.UTF8.GetBytes(plainText); | ||
var encryptedBytesResult = await client.EncryptAsync(componentName, plaintextBytes, keyName, new EncryptionOptions(KeyWrapAlgorithm.Rsa)); | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.NET Encryption Example – Variable Naming Inconsistency:
There is an inconsistency between the variable names: the byte array is assigned to plainTextBytes
on line 106 but then referred to as plaintextBytes
on line 107. For clarity and to avoid runtime errors, please update the variable usage to be consistent (e.g., use plainTextBytes
in both cases).
下图展示了 Dapr 和服务网格提供的重叠功能和独特能力: | ||
|
||
<img src="/images/service-mesh.png" width=1000> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Image Accessibility
The image tag on line 29 is missing alternative text. For improved accessibility, add an "alt" attribute. For example:
-<img src="/images/service-mesh.png" width=1000>
+<img src="/images/service-mesh.png" alt="Dapr vs Service Mesh Comparison Diagram" width=1000>
📝 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.
下图展示了 Dapr 和服务网格提供的重叠功能和独特能力: | |
<img src="/images/service-mesh.png" width=1000> | |
下图展示了 Dapr 和服务网格提供的重叠功能和独特能力: | |
<img src="/images/service-mesh.png" alt="Dapr vs Service Mesh Comparison Diagram" width=1000> |
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
29-29: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
### 示例1:通过etcd中的前缀 | ||
|
||
```yaml | ||
apiVersion: dapr.io/v1alpha1 | ||
kind: Component | ||
metadata: | ||
name: statestore | ||
spec: | ||
type: state.etcd | ||
version: v2 | ||
metadata: | ||
- name: endpoints | ||
value: localhost:2379 | ||
- name: keyPrefixPath | ||
value: namespace-actorA | ||
- name: actorStateStore | ||
value: "true" | ||
``` | ||
|
||
### 示例2:通过SQLite中的表名 | ||
|
||
```yaml | ||
apiVersion: dapr.io/v1alpha1 | ||
kind: Component | ||
metadata: | ||
name: statestore | ||
spec: | ||
type: state.sqlite | ||
version: v1 | ||
metadata: | ||
- name: connectionString | ||
value: "data.db" | ||
- name: tableName | ||
value: "namespace-actorA" | ||
- name: actorStateStore | ||
value: "true" | ||
``` | ||
|
||
### 示例3:通过Redis中的逻辑数据库编号 | ||
|
||
```yaml | ||
apiVersion: dapr.io/v1alpha1 | ||
kind: Component | ||
metadata: | ||
name: statestore | ||
spec: | ||
type: state.redis | ||
version: v1 | ||
metadata: | ||
- name: redisHost | ||
value: localhost:6379 | ||
- name: redisPassword | ||
value: "" | ||
- name: actorStateStore | ||
value: "true" | ||
- name: redisDB | ||
value: "1" | ||
- name: redisPassword | ||
secretKeyRef: | ||
name: redis-secret | ||
key: redis-password | ||
- name: actorStateStore | ||
value: "true" | ||
- name: redisDB | ||
value: "1" | ||
auth: | ||
secretStore: <SECRET_STORE_NAME> | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
YAML Examples for State Store Configuration
The YAML examples provided (lines 46–113) are very useful in demonstrating how to configure state stores for different backends (etcd, SQLite, and Redis).
However, within the Redis example (lines 87–113), there appears to be duplicate entries for the keys actorStateStore
and redisDB
(specifically in lines 107–110). This duplication could lead to configuration conflicts. Please verify whether the duplicate definitions are intended or if the latter instance should be removed.
Suggested Diff for Redis YAML (lines 107-110):
- - name: actorStateStore
- value: "true"
- - name: redisDB
- value: "1"
📝 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.
### 示例1:通过etcd中的前缀 | |
```yaml | |
apiVersion: dapr.io/v1alpha1 | |
kind: Component | |
metadata: | |
name: statestore | |
spec: | |
type: state.etcd | |
version: v2 | |
metadata: | |
- name: endpoints | |
value: localhost:2379 | |
- name: keyPrefixPath | |
value: namespace-actorA | |
- name: actorStateStore | |
value: "true" | |
``` | |
### 示例2:通过SQLite中的表名 | |
```yaml | |
apiVersion: dapr.io/v1alpha1 | |
kind: Component | |
metadata: | |
name: statestore | |
spec: | |
type: state.sqlite | |
version: v1 | |
metadata: | |
- name: connectionString | |
value: "data.db" | |
- name: tableName | |
value: "namespace-actorA" | |
- name: actorStateStore | |
value: "true" | |
``` | |
### 示例3:通过Redis中的逻辑数据库编号 | |
```yaml | |
apiVersion: dapr.io/v1alpha1 | |
kind: Component | |
metadata: | |
name: statestore | |
spec: | |
type: state.redis | |
version: v1 | |
metadata: | |
- name: redisHost | |
value: localhost:6379 | |
- name: redisPassword | |
value: "" | |
- name: actorStateStore | |
value: "true" | |
- name: redisDB | |
value: "1" | |
- name: redisPassword | |
secretKeyRef: | |
name: redis-secret | |
key: redis-password | |
- name: actorStateStore | |
value: "true" | |
- name: redisDB | |
value: "1" | |
auth: | |
secretStore: <SECRET_STORE_NAME> | |
``` | |
### 示例1:通过etcd中的前缀 | |
<img src="/images/concepts-components.png" width=1200> | ||
|
||
## 内置和可插拔组件 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Image Accessibility Improvement:
The image displaying component examples (line 39) is missing an alt attribute. Please add descriptive alt text to improve accessibility and meet markdown guidelines.
|
||
<img src="/images/actor_background_game_example.png" width=400 style="padding-bottom:25px;"> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Image Accessibility:
The image on line 23 (actor background example) is missing alt text. Adding a descriptive alt attribute will improve accessibility and comply with markdown guidelines.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
23-23: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
#Dapr启动时间 | ||
d.wait(20) | ||
configuration = d.get_configuration(store_name=CONFIG_STORE_NAME, keys=[keys], config_metadata={}) | ||
print(f"Got key={configuration.items[0].key} value={configuration.items[0].value} version={configuration.items[0].version}") | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python Code Example for Retrieving Configuration
In the Python snippet, the call
d.get_configuration(store_name=CONFIG_STORE_NAME, keys=[keys], config_metadata={})
suggests that the keys list is being wrapped in another list. If keys
is already defined as a list, it should be passed as keys=keys
.
|
||
import ( | ||
"context" | ||
"fmt" | ||
|
||
dapr "github.com/dapr/go-sdk/client" | ||
) | ||
|
||
func main() { | ||
ctx := context.Background() | ||
client, err := dapr.NewClient() | ||
if err != nil { | ||
panic(err) | ||
} | ||
items, err := client.GetConfigurationItems(ctx, "configstore", ["orderId1","orderId2"]) | ||
if err != nil { | ||
panic(err) | ||
} | ||
for key, item := range items { | ||
fmt.Printf("get config: key = %s value = %s version = %s",key,(*item).Value, (*item).Version) | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Go Code Example for Retrieving Configuration
The Go snippet currently uses an incorrect slice literal:
items, err := client.GetConfigurationItems(ctx, "configstore", ["orderId1","orderId2"])
Consider updating it to:
- items, err := client.GetConfigurationItems(ctx, "configstore", ["orderId1","orderId2"])
+ items, err := client.GetConfigurationItems(ctx, "configstore", []string{"orderId1", "orderId2"})
This change ensures proper slice initialization in Go.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
159-159: Hard tabs
Column: 1
(MD010, no-hard-tabs)
162-162: Hard tabs
Column: 1
(MD010, no-hard-tabs)
166-166: Hard tabs
Column: 1
(MD010, no-hard-tabs)
167-167: Hard tabs
Column: 1
(MD010, no-hard-tabs)
168-168: Hard tabs
Column: 1
(MD010, no-hard-tabs)
169-169: Hard tabs
Column: 1
(MD010, no-hard-tabs)
170-170: Hard tabs
Column: 1
(MD010, no-hard-tabs)
171-171: Hard tabs
Column: 1
(MD010, no-hard-tabs)
172-172: Hard tabs
Column: 1
(MD010, no-hard-tabs)
173-173: Hard tabs
Column: 1
(MD010, no-hard-tabs)
174-174: Hard tabs
Column: 1
(MD010, no-hard-tabs)
```csharp | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Threading.Tasks; | ||
using Dapr.Client; | ||
|
||
const string DAPR_CONFIGURATION_STORE = "configstore"; | ||
var CONFIGURATION_KEYS = new List<string> { "orderId1", "orderId2" }; | ||
var client = new DaprClientBuilder().Build(); | ||
|
||
// 订阅配置更改 | ||
SubscribeConfigurationResponse subscribe = await client.SubscribeConfiguration(DAPR_CONFIGURATION_STORE, CONFIGURATION_ITEMS); | ||
|
||
// 打印配置更改 | ||
await foreach (var items in subscribe.Source) | ||
{ | ||
// 应用程序订阅配置更改时的首次调用仅返回订阅ID | ||
if (items.Keys.Count == 0) | ||
{ | ||
Console.WriteLine("App subscribed to config changes with subscription id: " + subscribe.Id); | ||
subscriptionId = subscribe.Id; | ||
continue; | ||
} | ||
var cfg = System.Text.Json.JsonSerializer.Serialize(items); | ||
Console.WriteLine("Configuration update " + cfg); | ||
} | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
.NET Subscription Code Example Requires Variable Consistency
In the .NET subscription snippet, ensure that the variable name for configuration keys is consistent. For example, if you declare CONFIGURATION_KEYS
, use that name consistently rather than switching to CONFIGURATION_ITEMS
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (5)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-get-save-state.md (5)
17-23
: State Storage Setup Description
This section effectively introduces the concept of using a state storage component (with Redis as the example). To further enhance clarity, consider adding a brief note on alternative state stores for users who might not use Redis.
249-293
: JavaScript State Operation Example
The JavaScript example illustrates the use of async/await with the Dapr client to handle state operations. For improved robustness, consider incorporating error handling in the async functions.
707-744
: JavaScript Bulk State Retrieval Example
The JavaScript bulk retrieval example correctly uses the Dapr client's bulk state API. To further enhance real-world applicability, consider adding error handling around the asynchronous state calls.
1017-1064
: JavaScript State Transaction Example
The JavaScript example for state transactions is concise and leverages async/await well. For increased robustness, consider adding try/catch blocks and clarifying the structure of the transaction payload.
1-1112
: Formatting: Replace Hard Tabs
Multiple lines throughout the document contain hard tabs, which may conflict with markdown linting rules (MD010). For improved consistency and to adhere to style guidelines, consider converting all hard tabs to spaces. A global search-and-replace (e.g., replacing each tab with two or four spaces per your project’s styling conventions) would resolve these issues.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
137-137: Hard tabs
Column: 1(MD010, no-hard-tabs)
139-139: Hard tabs
Column: 1(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1(MD010, no-hard-tabs)
146-146: Hard tabs
Column: 1(MD010, no-hard-tabs)
148-148: Hard tabs
Column: 1(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1(MD010, no-hard-tabs)
204-204: Hard tabs
Column: 1(MD010, no-hard-tabs)
205-205: Hard tabs
Column: 1(MD010, no-hard-tabs)
206-206: Hard tabs
Column: 1(MD010, no-hard-tabs)
207-207: Hard tabs
Column: 1(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 1(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 1(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 1(MD010, no-hard-tabs)
216-216: Hard tabs
Column: 1(MD010, no-hard-tabs)
217-217: Hard tabs
Column: 1(MD010, no-hard-tabs)
218-218: Hard tabs
Column: 1(MD010, no-hard-tabs)
219-219: Hard tabs
Column: 1(MD010, no-hard-tabs)
220-220: Hard tabs
Column: 1(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1(MD010, no-hard-tabs)
227-227: Hard tabs
Column: 1(MD010, no-hard-tabs)
228-228: Hard tabs
Column: 1(MD010, no-hard-tabs)
229-229: Hard tabs
Column: 1(MD010, no-hard-tabs)
230-230: Hard tabs
Column: 1(MD010, no-hard-tabs)
231-231: Hard tabs
Column: 1(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1(MD010, no-hard-tabs)
400-400: Hard tabs
Column: 1(MD010, no-hard-tabs)
407-407: Hard tabs
Column: 1(MD010, no-hard-tabs)
447-447: Hard tabs
Column: 1(MD010, no-hard-tabs)
448-448: Hard tabs
Column: 1(MD010, no-hard-tabs)
609-609: Hard tabs
Column: 1(MD010, no-hard-tabs)
611-611: Hard tabs
Column: 1(MD010, no-hard-tabs)
617-617: Hard tabs
Column: 1(MD010, no-hard-tabs)
660-660: Hard tabs
Column: 1(MD010, no-hard-tabs)
661-661: Hard tabs
Column: 1(MD010, no-hard-tabs)
662-662: Hard tabs
Column: 1(MD010, no-hard-tabs)
663-663: Hard tabs
Column: 1(MD010, no-hard-tabs)
664-664: Hard tabs
Column: 1(MD010, no-hard-tabs)
666-666: Hard tabs
Column: 1(MD010, no-hard-tabs)
671-671: Hard tabs
Column: 1(MD010, no-hard-tabs)
672-672: Hard tabs
Column: 1(MD010, no-hard-tabs)
673-673: Hard tabs
Column: 1(MD010, no-hard-tabs)
674-674: Hard tabs
Column: 1(MD010, no-hard-tabs)
675-675: Hard tabs
Column: 1(MD010, no-hard-tabs)
676-676: Hard tabs
Column: 1(MD010, no-hard-tabs)
677-677: Hard tabs
Column: 1(MD010, no-hard-tabs)
678-678: Hard tabs
Column: 1(MD010, no-hard-tabs)
679-679: Hard tabs
Column: 1(MD010, no-hard-tabs)
680-680: Hard tabs
Column: 1(MD010, no-hard-tabs)
681-681: Hard tabs
Column: 1(MD010, no-hard-tabs)
682-682: Hard tabs
Column: 1(MD010, no-hard-tabs)
683-683: Hard tabs
Column: 1(MD010, no-hard-tabs)
684-684: Hard tabs
Column: 1(MD010, no-hard-tabs)
685-685: Hard tabs
Column: 1(MD010, no-hard-tabs)
687-687: Hard tabs
Column: 1(MD010, no-hard-tabs)
688-688: Hard tabs
Column: 1(MD010, no-hard-tabs)
689-689: Hard tabs
Column: 1(MD010, no-hard-tabs)
690-690: Hard tabs
Column: 1(MD010, no-hard-tabs)
691-691: Hard tabs
Column: 1(MD010, no-hard-tabs)
692-692: Hard tabs
Column: 1(MD010, no-hard-tabs)
693-693: Hard tabs
Column: 1(MD010, no-hard-tabs)
864-864: Hard tabs
Column: 1(MD010, no-hard-tabs)
866-866: Hard tabs
Column: 1(MD010, no-hard-tabs)
868-868: Hard tabs
Column: 1(MD010, no-hard-tabs)
869-869: Hard tabs
Column: 1(MD010, no-hard-tabs)
870-870: Hard tabs
Column: 1(MD010, no-hard-tabs)
871-871: Hard tabs
Column: 1(MD010, no-hard-tabs)
872-872: Hard tabs
Column: 1(MD010, no-hard-tabs)
873-873: Hard tabs
Column: 1(MD010, no-hard-tabs)
874-874: Hard tabs
Column: 1(MD010, no-hard-tabs)
875-875: Hard tabs
Column: 1(MD010, no-hard-tabs)
876-876: Hard tabs
Column: 1(MD010, no-hard-tabs)
877-877: Hard tabs
Column: 1(MD010, no-hard-tabs)
878-878: Hard tabs
Column: 1(MD010, no-hard-tabs)
880-880: Hard tabs
Column: 1(MD010, no-hard-tabs)
881-881: Hard tabs
Column: 1(MD010, no-hard-tabs)
882-882: Hard tabs
Column: 1(MD010, no-hard-tabs)
883-883: Hard tabs
Column: 1(MD010, no-hard-tabs)
948-948: Hard tabs
Column: 1(MD010, no-hard-tabs)
949-949: Hard tabs
Column: 1(MD010, no-hard-tabs)
950-950: Hard tabs
Column: 1(MD010, no-hard-tabs)
951-951: Hard tabs
Column: 1(MD010, no-hard-tabs)
952-952: Hard tabs
Column: 1(MD010, no-hard-tabs)
954-954: Hard tabs
Column: 1(MD010, no-hard-tabs)
959-959: Hard tabs
Column: 1(MD010, no-hard-tabs)
960-960: Hard tabs
Column: 1(MD010, no-hard-tabs)
961-961: Hard tabs
Column: 1(MD010, no-hard-tabs)
962-962: Hard tabs
Column: 1(MD010, no-hard-tabs)
963-963: Hard tabs
Column: 1(MD010, no-hard-tabs)
964-964: Hard tabs
Column: 1(MD010, no-hard-tabs)
965-965: Hard tabs
Column: 1(MD010, no-hard-tabs)
966-966: Hard tabs
Column: 1(MD010, no-hard-tabs)
967-967: Hard tabs
Column: 1(MD010, no-hard-tabs)
968-968: Hard tabs
Column: 1(MD010, no-hard-tabs)
969-969: Hard tabs
Column: 1(MD010, no-hard-tabs)
970-970: Hard tabs
Column: 1(MD010, no-hard-tabs)
971-971: Hard tabs
Column: 1(MD010, no-hard-tabs)
972-972: Hard tabs
Column: 1(MD010, no-hard-tabs)
973-973: Hard tabs
Column: 1(MD010, no-hard-tabs)
974-974: Hard tabs
Column: 1(MD010, no-hard-tabs)
975-975: Hard tabs
Column: 1(MD010, no-hard-tabs)
976-976: Hard tabs
Column: 1(MD010, no-hard-tabs)
1000-1000: Hard tabs
Column: 1(MD010, no-hard-tabs)
1001-1001: Hard tabs
Column: 1(MD010, no-hard-tabs)
1002-1002: Hard tabs
Column: 1(MD010, no-hard-tabs)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-get-save-state.md
(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-get-save-state.md
137-137: Hard tabs
Column: 1
(MD010, no-hard-tabs)
139-139: Hard tabs
Column: 1
(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1
(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1
(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1
(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1
(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1
(MD010, no-hard-tabs)
146-146: Hard tabs
Column: 1
(MD010, no-hard-tabs)
148-148: Hard tabs
Column: 1
(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1
(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1
(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1
(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1
(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1
(MD010, no-hard-tabs)
204-204: Hard tabs
Column: 1
(MD010, no-hard-tabs)
205-205: Hard tabs
Column: 1
(MD010, no-hard-tabs)
206-206: Hard tabs
Column: 1
(MD010, no-hard-tabs)
207-207: Hard tabs
Column: 1
(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 1
(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 1
(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 1
(MD010, no-hard-tabs)
216-216: Hard tabs
Column: 1
(MD010, no-hard-tabs)
217-217: Hard tabs
Column: 1
(MD010, no-hard-tabs)
218-218: Hard tabs
Column: 1
(MD010, no-hard-tabs)
219-219: Hard tabs
Column: 1
(MD010, no-hard-tabs)
220-220: Hard tabs
Column: 1
(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1
(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1
(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1
(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1
(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1
(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1
(MD010, no-hard-tabs)
227-227: Hard tabs
Column: 1
(MD010, no-hard-tabs)
228-228: Hard tabs
Column: 1
(MD010, no-hard-tabs)
229-229: Hard tabs
Column: 1
(MD010, no-hard-tabs)
230-230: Hard tabs
Column: 1
(MD010, no-hard-tabs)
231-231: Hard tabs
Column: 1
(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1
(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1
(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1
(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1
(MD010, no-hard-tabs)
400-400: Hard tabs
Column: 1
(MD010, no-hard-tabs)
407-407: Hard tabs
Column: 1
(MD010, no-hard-tabs)
447-447: Hard tabs
Column: 1
(MD010, no-hard-tabs)
448-448: Hard tabs
Column: 1
(MD010, no-hard-tabs)
609-609: Hard tabs
Column: 1
(MD010, no-hard-tabs)
611-611: Hard tabs
Column: 1
(MD010, no-hard-tabs)
617-617: Hard tabs
Column: 1
(MD010, no-hard-tabs)
660-660: Hard tabs
Column: 1
(MD010, no-hard-tabs)
661-661: Hard tabs
Column: 1
(MD010, no-hard-tabs)
662-662: Hard tabs
Column: 1
(MD010, no-hard-tabs)
663-663: Hard tabs
Column: 1
(MD010, no-hard-tabs)
664-664: Hard tabs
Column: 1
(MD010, no-hard-tabs)
666-666: Hard tabs
Column: 1
(MD010, no-hard-tabs)
671-671: Hard tabs
Column: 1
(MD010, no-hard-tabs)
672-672: Hard tabs
Column: 1
(MD010, no-hard-tabs)
673-673: Hard tabs
Column: 1
(MD010, no-hard-tabs)
674-674: Hard tabs
Column: 1
(MD010, no-hard-tabs)
675-675: Hard tabs
Column: 1
(MD010, no-hard-tabs)
676-676: Hard tabs
Column: 1
(MD010, no-hard-tabs)
677-677: Hard tabs
Column: 1
(MD010, no-hard-tabs)
678-678: Hard tabs
Column: 1
(MD010, no-hard-tabs)
679-679: Hard tabs
Column: 1
(MD010, no-hard-tabs)
680-680: Hard tabs
Column: 1
(MD010, no-hard-tabs)
681-681: Hard tabs
Column: 1
(MD010, no-hard-tabs)
682-682: Hard tabs
Column: 1
(MD010, no-hard-tabs)
683-683: Hard tabs
Column: 1
(MD010, no-hard-tabs)
684-684: Hard tabs
Column: 1
(MD010, no-hard-tabs)
685-685: Hard tabs
Column: 1
(MD010, no-hard-tabs)
687-687: Hard tabs
Column: 1
(MD010, no-hard-tabs)
688-688: Hard tabs
Column: 1
(MD010, no-hard-tabs)
689-689: Hard tabs
Column: 1
(MD010, no-hard-tabs)
690-690: Hard tabs
Column: 1
(MD010, no-hard-tabs)
691-691: Hard tabs
Column: 1
(MD010, no-hard-tabs)
692-692: Hard tabs
Column: 1
(MD010, no-hard-tabs)
693-693: Hard tabs
Column: 1
(MD010, no-hard-tabs)
864-864: Hard tabs
Column: 1
(MD010, no-hard-tabs)
866-866: Hard tabs
Column: 1
(MD010, no-hard-tabs)
868-868: Hard tabs
Column: 1
(MD010, no-hard-tabs)
869-869: Hard tabs
Column: 1
(MD010, no-hard-tabs)
870-870: Hard tabs
Column: 1
(MD010, no-hard-tabs)
871-871: Hard tabs
Column: 1
(MD010, no-hard-tabs)
872-872: Hard tabs
Column: 1
(MD010, no-hard-tabs)
873-873: Hard tabs
Column: 1
(MD010, no-hard-tabs)
874-874: Hard tabs
Column: 1
(MD010, no-hard-tabs)
875-875: Hard tabs
Column: 1
(MD010, no-hard-tabs)
876-876: Hard tabs
Column: 1
(MD010, no-hard-tabs)
877-877: Hard tabs
Column: 1
(MD010, no-hard-tabs)
878-878: Hard tabs
Column: 1
(MD010, no-hard-tabs)
880-880: Hard tabs
Column: 1
(MD010, no-hard-tabs)
881-881: Hard tabs
Column: 1
(MD010, no-hard-tabs)
882-882: Hard tabs
Column: 1
(MD010, no-hard-tabs)
883-883: Hard tabs
Column: 1
(MD010, no-hard-tabs)
948-948: Hard tabs
Column: 1
(MD010, no-hard-tabs)
949-949: Hard tabs
Column: 1
(MD010, no-hard-tabs)
950-950: Hard tabs
Column: 1
(MD010, no-hard-tabs)
951-951: Hard tabs
Column: 1
(MD010, no-hard-tabs)
952-952: Hard tabs
Column: 1
(MD010, no-hard-tabs)
954-954: Hard tabs
Column: 1
(MD010, no-hard-tabs)
959-959: Hard tabs
Column: 1
(MD010, no-hard-tabs)
960-960: Hard tabs
Column: 1
(MD010, no-hard-tabs)
961-961: Hard tabs
Column: 1
(MD010, no-hard-tabs)
962-962: Hard tabs
Column: 1
(MD010, no-hard-tabs)
963-963: Hard tabs
Column: 1
(MD010, no-hard-tabs)
964-964: Hard tabs
Column: 1
(MD010, no-hard-tabs)
965-965: Hard tabs
Column: 1
(MD010, no-hard-tabs)
966-966: Hard tabs
Column: 1
(MD010, no-hard-tabs)
967-967: Hard tabs
Column: 1
(MD010, no-hard-tabs)
968-968: Hard tabs
Column: 1
(MD010, no-hard-tabs)
969-969: Hard tabs
Column: 1
(MD010, no-hard-tabs)
970-970: Hard tabs
Column: 1
(MD010, no-hard-tabs)
971-971: Hard tabs
Column: 1
(MD010, no-hard-tabs)
972-972: Hard tabs
Column: 1
(MD010, no-hard-tabs)
973-973: Hard tabs
Column: 1
(MD010, no-hard-tabs)
974-974: Hard tabs
Column: 1
(MD010, no-hard-tabs)
975-975: Hard tabs
Column: 1
(MD010, no-hard-tabs)
976-976: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1000-1000: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1001-1001: Hard tabs
Column: 1
(MD010, no-hard-tabs)
1002-1002: Hard tabs
Column: 1
(MD010, no-hard-tabs)
🔇 Additional comments (21)
src/translated_content/zh_CN/docs/developing-applications/building-blocks/state-management/howto-get-save-state.md (21)
1-7
: Front Matter Check
The front matter metadata is well-structured with a clear title, linkTitle, weight, and description. This properly sets up the document’s identity in the Dapr docs ecosystem.
9-13
: Introduction Clarity
The opening paragraphs provide a concise overview of state management and outline what the guide will cover. The language is clear and accessible.
40-53
: YAML Configuration Review
The YAML snippet for configuring the Redis state store is presented clearly with proper indentation. For added clarity, consider including inline comments that explain each key (such asredisHost
andredisPassword
) to assist readers who may be new to YAML configurations.
65-68
: Single State Management Section Intro
The description for saving and retrieving a single state is straightforward and sets clear expectations for the multilingual examples that follow.
73-108
: C# State Operation Example
The C# example clearly demonstrates how to save and retrieve state using the Dapr SDK. The use of a continuous loop with randomized order IDs effectively simulates real-world usage.
120-157
: Java State Operation Example
This Java snippet illustrates state management operations with Dapr correctly. The use of reactive constructs (Mono) is appropriate, though double-check that error handling (or proper subscription) is applied in a production context.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
137-137: Hard tabs
Column: 1(MD010, no-hard-tabs)
139-139: Hard tabs
Column: 1(MD010, no-hard-tabs)
141-141: Hard tabs
Column: 1(MD010, no-hard-tabs)
142-142: Hard tabs
Column: 1(MD010, no-hard-tabs)
143-143: Hard tabs
Column: 1(MD010, no-hard-tabs)
144-144: Hard tabs
Column: 1(MD010, no-hard-tabs)
145-145: Hard tabs
Column: 1(MD010, no-hard-tabs)
146-146: Hard tabs
Column: 1(MD010, no-hard-tabs)
148-148: Hard tabs
Column: 1(MD010, no-hard-tabs)
149-149: Hard tabs
Column: 1(MD010, no-hard-tabs)
150-150: Hard tabs
Column: 1(MD010, no-hard-tabs)
151-151: Hard tabs
Column: 1(MD010, no-hard-tabs)
152-152: Hard tabs
Column: 1(MD010, no-hard-tabs)
153-153: Hard tabs
Column: 1(MD010, no-hard-tabs)
168-196
: Python State Operation Example
The Python example leverages the Dapr client appropriately and demonstrates state saving/retrieval alongside logging the result. The simplicity of the code makes it easy for readers to follow.
201-237
: Go State Operation Example
The Go example is concise and correctly uses defer for closing the Dapr client as well as proper error handling. The snippet clearly demonstrates how to save and retrieve state.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
204-204: Hard tabs
Column: 1(MD010, no-hard-tabs)
205-205: Hard tabs
Column: 1(MD010, no-hard-tabs)
206-206: Hard tabs
Column: 1(MD010, no-hard-tabs)
207-207: Hard tabs
Column: 1(MD010, no-hard-tabs)
208-208: Hard tabs
Column: 1(MD010, no-hard-tabs)
210-210: Hard tabs
Column: 1(MD010, no-hard-tabs)
215-215: Hard tabs
Column: 1(MD010, no-hard-tabs)
216-216: Hard tabs
Column: 1(MD010, no-hard-tabs)
217-217: Hard tabs
Column: 1(MD010, no-hard-tabs)
218-218: Hard tabs
Column: 1(MD010, no-hard-tabs)
219-219: Hard tabs
Column: 1(MD010, no-hard-tabs)
220-220: Hard tabs
Column: 1(MD010, no-hard-tabs)
221-221: Hard tabs
Column: 1(MD010, no-hard-tabs)
222-222: Hard tabs
Column: 1(MD010, no-hard-tabs)
223-223: Hard tabs
Column: 1(MD010, no-hard-tabs)
224-224: Hard tabs
Column: 1(MD010, no-hard-tabs)
225-225: Hard tabs
Column: 1(MD010, no-hard-tabs)
226-226: Hard tabs
Column: 1(MD010, no-hard-tabs)
227-227: Hard tabs
Column: 1(MD010, no-hard-tabs)
228-228: Hard tabs
Column: 1(MD010, no-hard-tabs)
229-229: Hard tabs
Column: 1(MD010, no-hard-tabs)
230-230: Hard tabs
Column: 1(MD010, no-hard-tabs)
231-231: Hard tabs
Column: 1(MD010, no-hard-tabs)
232-232: Hard tabs
Column: 1(MD010, no-hard-tabs)
233-233: Hard tabs
Column: 1(MD010, no-hard-tabs)
234-234: Hard tabs
Column: 1(MD010, no-hard-tabs)
235-235: Hard tabs
Column: 1(MD010, no-hard-tabs)
391-409
: Java State Deletion Example
The Java deletion example correctly demonstrates fetching the etag before performing the state deletion. The snippet is clear and aligns well with the expected Dapr SDK usage.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
400-400: Hard tabs
Column: 1(MD010, no-hard-tabs)
407-407: Hard tabs
Column: 1(MD010, no-hard-tabs)
421-434
: Python State Deletion Example
The Python snippet provides a clean example of deleting state using the Dapr client with context management. It is succinct and clear for users trying to understand state deletion.
444-467
: Go State Deletion Example
The Go deletion example illustrates state deletion effectively with proper error checking and client cleanup using defer.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
447-447: Hard tabs
Column: 1(MD010, no-hard-tabs)
448-448: Hard tabs
Column: 1(MD010, no-hard-tabs)
479-498
: JavaScript State Deletion Example
This JavaScript example for state deletion, using async/await, is straightforward and correctly demonstrates the deletion process using the Dapr client.
541-559
: .NET Bulk State Retrieval Example
The .NET snippet for retrieving bulk state is comprehensive. It shows both the untyped state list and a generic version usingBulkStateItem<Widget>
. If theWidget
class is meant for serialization, ensure that its properties are defined with appropriate access modifiers.
598-619
: Java Bulk State Retrieval Example
The Java example for bulk state retrieval effectively demonstrates the use of the Dapr client to query multiple states in one call. The use of reactive programming patterns is handled well.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
609-609: Hard tabs
Column: 1(MD010, no-hard-tabs)
611-611: Hard tabs
Column: 1(MD010, no-hard-tabs)
617-617: Hard tabs
Column: 1(MD010, no-hard-tabs)
631-645
: Python Bulk State Retrieval Example
The Python code for bulk state retrieval shows how to save and then retrieve multiple states with added metadata. The logging output helps in verifying the result.
657-695
: Go Bulk State Retrieval Example
This Go snippet demonstrates retrieving bulk state effectively. Iterating over retrieved items and logging their values is a good practice for demonstrating usage.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
660-660: Hard tabs
Column: 1(MD010, no-hard-tabs)
661-661: Hard tabs
Column: 1(MD010, no-hard-tabs)
662-662: Hard tabs
Column: 1(MD010, no-hard-tabs)
663-663: Hard tabs
Column: 1(MD010, no-hard-tabs)
664-664: Hard tabs
Column: 1(MD010, no-hard-tabs)
666-666: Hard tabs
Column: 1(MD010, no-hard-tabs)
671-671: Hard tabs
Column: 1(MD010, no-hard-tabs)
672-672: Hard tabs
Column: 1(MD010, no-hard-tabs)
673-673: Hard tabs
Column: 1(MD010, no-hard-tabs)
674-674: Hard tabs
Column: 1(MD010, no-hard-tabs)
675-675: Hard tabs
Column: 1(MD010, no-hard-tabs)
676-676: Hard tabs
Column: 1(MD010, no-hard-tabs)
677-677: Hard tabs
Column: 1(MD010, no-hard-tabs)
678-678: Hard tabs
Column: 1(MD010, no-hard-tabs)
679-679: Hard tabs
Column: 1(MD010, no-hard-tabs)
680-680: Hard tabs
Column: 1(MD010, no-hard-tabs)
681-681: Hard tabs
Column: 1(MD010, no-hard-tabs)
682-682: Hard tabs
Column: 1(MD010, no-hard-tabs)
683-683: Hard tabs
Column: 1(MD010, no-hard-tabs)
684-684: Hard tabs
Column: 1(MD010, no-hard-tabs)
685-685: Hard tabs
Column: 1(MD010, no-hard-tabs)
687-687: Hard tabs
Column: 1(MD010, no-hard-tabs)
688-688: Hard tabs
Column: 1(MD010, no-hard-tabs)
689-689: Hard tabs
Column: 1(MD010, no-hard-tabs)
690-690: Hard tabs
Column: 1(MD010, no-hard-tabs)
691-691: Hard tabs
Column: 1(MD010, no-hard-tabs)
692-692: Hard tabs
Column: 1(MD010, no-hard-tabs)
693-693: Hard tabs
Column: 1(MD010, no-hard-tabs)
781-788
: State Transactions Section Introduction
The introduction to state transactions is well written and includes a helpful alert regarding multi-operation support. This sets the stage nicely for the subsequent code examples.
844-892
: Java State Transaction Example
The Java transactional example is clear and uses a list of transactional operations effectively with the Dapr client. It may be enhanced further by adding exception handling for production scenarios.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
864-864: Hard tabs
Column: 1(MD010, no-hard-tabs)
866-866: Hard tabs
Column: 1(MD010, no-hard-tabs)
868-868: Hard tabs
Column: 1(MD010, no-hard-tabs)
869-869: Hard tabs
Column: 1(MD010, no-hard-tabs)
870-870: Hard tabs
Column: 1(MD010, no-hard-tabs)
871-871: Hard tabs
Column: 1(MD010, no-hard-tabs)
872-872: Hard tabs
Column: 1(MD010, no-hard-tabs)
873-873: Hard tabs
Column: 1(MD010, no-hard-tabs)
874-874: Hard tabs
Column: 1(MD010, no-hard-tabs)
875-875: Hard tabs
Column: 1(MD010, no-hard-tabs)
876-876: Hard tabs
Column: 1(MD010, no-hard-tabs)
877-877: Hard tabs
Column: 1(MD010, no-hard-tabs)
878-878: Hard tabs
Column: 1(MD010, no-hard-tabs)
880-880: Hard tabs
Column: 1(MD010, no-hard-tabs)
881-881: Hard tabs
Column: 1(MD010, no-hard-tabs)
882-882: Hard tabs
Column: 1(MD010, no-hard-tabs)
883-883: Hard tabs
Column: 1(MD010, no-hard-tabs)
944-1010
: Go State Transaction Example
This Go snippet demonstrates how to construct and execute a state transaction using the Dapr client. The structured approach with error checking and the use of a transaction metadata map is appropriate.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
948-948: Hard tabs
Column: 1(MD010, no-hard-tabs)
949-949: Hard tabs
Column: 1(MD010, no-hard-tabs)
950-950: Hard tabs
Column: 1(MD010, no-hard-tabs)
951-951: Hard tabs
Column: 1(MD010, no-hard-tabs)
952-952: Hard tabs
Column: 1(MD010, no-hard-tabs)
954-954: Hard tabs
Column: 1(MD010, no-hard-tabs)
959-959: Hard tabs
Column: 1(MD010, no-hard-tabs)
960-960: Hard tabs
Column: 1(MD010, no-hard-tabs)
961-961: Hard tabs
Column: 1(MD010, no-hard-tabs)
962-962: Hard tabs
Column: 1(MD010, no-hard-tabs)
963-963: Hard tabs
Column: 1(MD010, no-hard-tabs)
964-964: Hard tabs
Column: 1(MD010, no-hard-tabs)
965-965: Hard tabs
Column: 1(MD010, no-hard-tabs)
966-966: Hard tabs
Column: 1(MD010, no-hard-tabs)
967-967: Hard tabs
Column: 1(MD010, no-hard-tabs)
968-968: Hard tabs
Column: 1(MD010, no-hard-tabs)
969-969: Hard tabs
Column: 1(MD010, no-hard-tabs)
970-970: Hard tabs
Column: 1(MD010, no-hard-tabs)
971-971: Hard tabs
Column: 1(MD010, no-hard-tabs)
972-972: Hard tabs
Column: 1(MD010, no-hard-tabs)
973-973: Hard tabs
Column: 1(MD010, no-hard-tabs)
974-974: Hard tabs
Column: 1(MD010, no-hard-tabs)
975-975: Hard tabs
Column: 1(MD010, no-hard-tabs)
976-976: Hard tabs
Column: 1(MD010, no-hard-tabs)
1000-1000: Hard tabs
Column: 1(MD010, no-hard-tabs)
1001-1001: Hard tabs
Column: 1(MD010, no-hard-tabs)
1002-1002: Hard tabs
Column: 1(MD010, no-hard-tabs)
1067-1074
: HTTP API Transaction Commands
The cURL and PowerShell commands provided for executing state transactions and retrieving bulk state are succinct and clearly demonstrate how to interact with the Dapr HTTP API.
1108-1112
: Next Steps Section
The “下一步” section effectively guides the reader to additional documentation and learning resources. It provides clear next actions, fostering further exploration of the Dapr state API and SDK.
```csharp | ||
// 依赖项 | ||
using Dapr.Client; | ||
|
||
// 代码 | ||
namespace EventService | ||
{ | ||
class Program | ||
{ | ||
static async Task Main(string[] args) | ||
{ | ||
string DAPR_STORE_NAME = "statestore"; | ||
// 使用Dapr SDK删除状态 | ||
using var client = new DaprClientBuilder().Build(); | ||
await client.DeleteStateAsync(DAPR_STORE_NAME, "order_1", cancellationToken: cancellationToken); | ||
} | ||
} | ||
} | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C# State Deletion Example
This C# snippet for deleting state is mostly clear. However, the parameter cancellationToken
(used on line 375) is referenced without a definition. Please either define a cancellation token (e.g., via a CancellationTokenSource
) or remove the unnecessary parameter.
|
||
```csharp | ||
// 依赖项 | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Net.Http; | ||
using System.Net.Http.Headers; | ||
using System.Threading.Tasks; | ||
using Dapr.Client; | ||
using Microsoft.AspNetCore.Mvc; | ||
using System.Threading; | ||
using System.Text.Json; | ||
|
||
// 代码 | ||
namespace EventService | ||
{ | ||
class Program | ||
{ | ||
static async Task Main(string[] args) | ||
{ | ||
string DAPR_STORE_NAME = "statestore"; | ||
while(true) { | ||
System.Threading.Thread.Sleep(5000); | ||
Random random = new Random(); | ||
int orderId = random.Next(1,1000); | ||
using var client = new DaprClientBuilder().Build(); | ||
var requests = new List<StateTransactionRequest>() | ||
{ | ||
new StateTransactionRequest("order_3", JsonSerializer.SerializeToUtf8Bytes(orderId.ToString()), StateOperationType.Upsert), | ||
new StateTransactionRequest("order_2", null, StateOperationType.Delete) | ||
}; | ||
CancellationTokenSource source = new CancellationTokenSource(); | ||
CancellationToken cancellationToken = source.Token; | ||
// 使用Dapr SDK执行状态事务 | ||
await client.ExecuteStateTransactionAsync(DAPR_STORE_NAME, requests, cancellationToken: cancellationToken); | ||
Console.WriteLine("订单请求: " + orderId); | ||
Console.WriteLine("结果: " + result); | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
|
||
要为上述示例应用程序启动一个Dapr sidecar,运行类似以下的命令: | ||
|
||
```bash | ||
dapr run --app-id orderprocessing --app-port 6001 --dapr-http-port 3601 --dapr-grpc-port 60001 dotnet run | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.NET State Transaction Example
The .NET example demonstrates executing multiple state operations (upsert and delete) as a single transaction. Note that the snippet logs a variable result
on line 828 which is not defined. Ensure that either the transaction result is captured or remove the logging to avoid confusion.
# 依赖项 | ||
import random | ||
from time import sleep | ||
import requests | ||
import logging | ||
from dapr.clients import DaprClient | ||
from dapr.clients.grpc._state import StateItem | ||
from dapr.clients.grpc._request import TransactionalStateOperation, TransactionOperationType | ||
|
||
# 代码 | ||
logging.basicConfig(level = logging.INFO) | ||
DAPR_STORE_NAME = "statestore" | ||
while True: | ||
sleep(random.randrange(50, 5000) / 1000) | ||
orderId = random.randint(1, 1000) | ||
with DaprClient() as client: | ||
# 使用Dapr SDK执行状态事务 | ||
client.execute_state_transaction(store_name=DAPR_STORE_NAME, operations=[ | ||
TransactionalStateOperation( | ||
operation_type=TransactionOperationType.upsert, | ||
key="order_3", | ||
data=str(orderId)), | ||
TransactionalStateOperation(key="order_3", data=str(orderId)), | ||
TransactionalStateOperation( | ||
operation_type=TransactionOperationType.delete, | ||
key="order_2", | ||
data=str(orderId)), | ||
TransactionalStateOperation(key="order_2", data=str(orderId)) | ||
]) | ||
|
||
client.delete_state(store_name=DAPR_STORE_NAME, key="order_1") | ||
logging.basicConfig(level = logging.INFO) | ||
logging.info('订单请求: ' + str(orderId)) | ||
logging.info('结果: ' + str(result)) | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Python State Transaction Example
The Python example illustrates executing a state transaction but has a couple of issues:
- There appear to be duplicate or redundant transactional operations on the same keys, which might confuse readers.
- The code later logs
result
on line 930 even though no such variable is defined.
Please revise the snippet to remove redundancy and ensure all referenced variables are defined.
Summary by CodeRabbit
Chores
Documentation