Skip to content

Conversation

aiiiiiiiden
Copy link

@aiiiiiiiden aiiiiiiiden commented Aug 30, 2025

Related Issues

fixes #4258

Summary

This PR adds a complete Korean translation for the "What's new in Riverpod 3.0" documentation, addressing issue
#4258.

Changes Made

Added Korean Translation

  • Created /website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx
  • Complete translation of all sections and content from the original English document
  • Followed existing Korean documentation conventions and terminology

Updated Metadata Integration

  • Added Korean document title to documents_meta.js for proper navigation
  • Updated build dependencies as needed

Impact

This translation will help Korean developers:

  • 🌍 Access comprehensive Riverpod 3.0 information in their native language
  • 🚀 Better understand new features and breaking changes
  • 📚 Follow proper migration patterns and best practices
  • 🤝 Participate more effectively in the Riverpod community

Additional Notes

  • Translation follows the established i18n structure and conventions
  • All original formatting, code blocks, and interactive elements preserved
  • Ready for integration with existing Korean documentation
  • Maintains consistency with other translated documentation

Summary by CodeRabbit

  • Documentation
    • Added a Korean “What’s New” page for Riverpod 3.0 covering experimental offline persistence, a Mutation API, automatic retry, Ref.mounted, pause/resume listeners, unified public API and Ref, testing utilities, AsyncValue improvements, listener lifecycle/weak listeners, scoping guidance, and migration notes.
    • Updated site metadata/translations so the page appears in navigation and search.

aiiiiiiiden and others added 2 commits August 30, 2025 09:35
This adds a complete Korean translation of the whats_new.mdx document,
following the existing i18n structure. The translation covers all new
features and changes in Riverpod 3.0 including offline persistence,
mutations, automatic retry, and other improvements.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…mentation

- Add comprehensive Korean translation of whats_new.mdx following i18n conventions
- Translate all sections including experimental features, lifecycle changes, and new utilities
- Fix Link component usage with proper Docusaurus Link components
- Improve Korean grammar and particle usage for natural readability
- Correct code snippets with proper syntax and function signatures
- Fix internal navigation anchors for smooth in-page navigation
- Update naming consistency in dependency declarations
- Add Korean document metadata for proper integration

This addresses issue rrousselGit#4258 and provides complete Korean localization
for the Riverpod 3.0 feature documentation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link

coderabbitai bot commented Aug 30, 2025

Walkthrough

Adds a new Korean translation of the "What's New in Riverpod 3.0" documentation and registers a document title entry in the website metadata. No runtime code, APIs, or control flow changes were made.

Changes

Cohort / File(s) Summary
Korean docs: What's New
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx
New Korean translation of the "What's New in Riverpod 3.0" documentation covering features, lifecycle, testing, migration, and experimental APIs.
Docs metadata
website/src/documents_meta.js
Adds a whats_new title entry to the exported documentTitles mapping (inserts "Riverpod 3.0의 새로운 기능").

Sequence Diagram(s)

No sequence diagrams included — changes are documentation and metadata only; no control-flow or feature-level interactions to visualize.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Assessment against linked issues

Objective Addressed Explanation
Add Korean translation for "What's new in Riverpod 3.0" documentation (#4258)

Assessment against linked issues: Out-of-scope changes

Code Change Explanation
Adds en["whats_new"] = "Riverpod 3.0의 새로운 기능" (website/src/documents_meta.js) Korean label was added under the English locale mapping — location suggests a possible locale mismatch not specified by the linked issue.

Possibly related PRs

Poem

In burrows of bytes I hop with glee,
New notes in Hangul now set free.
Pages bloom and translators cheer,
Riverpod's news is crystal clear.
Thump—commit made, the docs appear! 🥕

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (3)
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (3)

38-45: 용어 일관성: “오프라인 지속성”으로 통일 제안

본문/목차에서 혼용됩니다. 섹션 제목/첫 문장만 정리하면 전체가 자연스러워집니다.

-## 오프라인 지속 기능 (experimental) {#offline-persistence-experimental}
+## 오프라인 지속성 (experimental) {#offline-persistence-experimental}

-오프라인 지속 기능은 Provider를 장치에 로컬로 캐시할 수 있게 하는 새로운 기능입니다.
+오프라인 지속성은 Provider를 장치에 로컬로 캐시할 수 있게 하는 새로운 기능입니다.

741-751: Flutter 위젯 명칭 일관성: ButtonElevatedButton

예제 상단에서 ElevatedButton을 사용하므로 여기서도 동일 위젯 사용을 권장합니다.

-      return Button(
+      return ElevatedButton(
         onPressed: () {
           ref.read(anotherProvider);
         },
         child: Text('클릭하세요'),
       );
-      return Button(
+      return ElevatedButton(
         onPressed: () {
           ref.read(anotherProvider);
         },
         child: Text('클릭하세요'),
       );

Also applies to: 759-769


1289-1304: Consider switching version-pinned pub.dev links to ‘latest’

발견된 3.0.0-dev.17 버전 고정 링크는 시간이 지나면서 깨질 수 있습니다. 가능하다면 다음 엔드포인트들을 /latest/... 형식으로 전환하세요.

  • Lines 1291, 1295, 1303, 1304

변경 예시:

-[Mutation]: https://pub.dev/documentation/riverpod/3.0.0-dev.17/experimental_mutation/Mutation-class.html
+[Mutation]: https://pub.dev/documentation/riverpod/latest/experimental_mutation/Mutation-class.html

정책상 특정 버전 유지가 필요하면 현 상태를 유지해도 됩니다.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c1322dc and 2b49651.

📒 Files selected for processing (2)
  • website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (1 hunks)
  • website/src/documents_meta.js (1 hunks)
🧰 Additional context used
🪛 LanguageTool
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx

[grammar] ~5-~5: There might be a mistake here.
Context: ...n: 1 --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; im...

(QB_NEW_EN)


[grammar] ~6-~6: There might be a mistake here.
Context: ...'; import TabItem from '@theme/TabItem'; import { AutoSnippet } from "/src/compon...

(QB_NEW_EN)


[grammar] ~7-~7: There might be a mistake here.
Context: ...et } from "/src/components/CodeSnippet"; import { Link } from "/src/components/Li...

(QB_NEW_EN)


[grammar] ~17-~17: Ensure spelling is correct
Context: ...ion 이 버전은 몇 가지 생명주기 변경사항을 포함하고 있습니다. 이런 변경사항들이 미묘한 방식으로 앱을 손상시킬 수 있습니다. 신중하게 업그레이드하세요....

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~24-~24: There might be a mistake here.
Context: ...l) - 인터페이스가 사이드이펙트에 반응할 수 있게 하는 새로운 메커니즘 - 자동 재시도 - Provider가 실패...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...BuildContext.mounted와 유사하지만 Ref용입니다. - [제네릭 지원 (코드 생성)](#generic-support-code-ge...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ...es) - 최신 코드에 더 잘 맞도록 Provider 동작에 약간의 조정 - 새로운 테스팅 유틸리티: ...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...트 내에서 ProviderContainer를 얻는 헬퍼 메서드입니다. - [정적으로 안전한 스코핑](#statically-safe-scoping-c...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...다. return JsonSqFliteStorage.open( join(await getDatabasesPath(), 'riverpod...

(QB_NEW_EN)


[grammar] ~112-~112: There might be a mistake here.
Context: ...합니다. return JsonSqFliteStorage.open( join(await getDatabasesPath(), 'riverpod...

(QB_NEW_EN)


[grammar] ~143-~143: There might be a mistake here.
Context: ... }; } } final todosProvider = AsyncNotifierProvider<TodosNotifier, Lis...

(QB_NEW_EN)


[grammar] ~202-~202: There might be a mistake here.
Context: ...로운 [Mutation] 객체가 추가되었습니다. 이는 Provider처럼 최상위 final 변수로 선언됩니다: ```dart final addT...

(QB_NEW_EN)


[grammar] ~244-~244: Ensure spelling is correct
Context: ...} 마지막으로, `onPressed` 콜백 내에서 다음과 같이 사이드이펙트을 트리거할 수 있습니다: dart onPressed: () { ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~318-~318: There might be a mistake here.
Context: ...n? retry(int retryCount, Object error) { if (error is SomeSpecificError) return n...

(QB_NEW_EN)


[grammar] ~332-~332: There might be a mistake here.
Context: ...odo> build() => []; } } raw={ final todoListProvider = NotifierProvide...

(QB_NEW_EN)


[grammar] ~341-~341: There might be a mistake here.
Context: ...on(seconds: retryCount * 2); }, ); } ></AutoSnippet> ## Ref.mounted` {#...

(QB_NEW_EN)


[grammar] ~350-~350: There might be a mistake here.
Context: ...트되어 있는지 확인하는 데 사용할 수 있습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~371-~371: There might be a mistake here.
Context: ...te, newTodo]; } } } raw={ class TodoList extends Notifier<List<Tod...

(QB_NEW_EN)


[grammar] ~424-~424: There might be a mistake here.
Context: ...Riverpod는 이제 다양한 상황에서 Provider를 일시정지합니다: - Provider가 더 이상 보이지 않으면 일시정지됩니다 ([Ticke...

(QB_NEW_EN)


[grammar] ~426-~426: There might be a mistake here.
Context: ... 이상 보이지 않으면 일시정지됩니다 ([TickerMode] 기반). - Provider가 재구축되면, 재구축이 완료될 때까지 구독이 일시정지됩니...

(QB_NEW_EN)


[grammar] ~435-~435: There might be a mistake here.
Context: ...아래 세부 목표를 포함했습니다. - 권장하는 것과 그렇지 않은 것을 강조 - 불필요한 인터페이스 중복 제거 - 모든 기능이 일관된 방식으로 작동하도록...

(QB_NEW_EN)


[grammar] ~436-~436: There might be a mistake here.
Context: ... 권장하는 것과 그렇지 않은 것을 강조 - 불필요한 인터페이스 중복 제거 - 모든 기능이 일관된 방식으로 작동하도록 보장 이를 위해 몇 가지 변경사...

(QB_NEW_EN)


[grammar] ~454-~454: There might be a mistake here.
Context: ... 이러한 Provider가 더 이상 권장되지 않음을 강조하기 위함입니다. 동시에 이들은 하위 호환성을 위해 보존됩니다. ### AutoDispo...

(QB_NEW_EN)


[grammar] ~459-~459: Ensure spelling is correct
Context: ...oDispose 인터페이스가 제거됨 AudoDispose 인터페이스가 제거된거지, 기능이 제거된 것은 아닙니다. 2.0에서 모든 Provider, Re...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~459-~459: There might be a mistake here.
Context: ... Notifier vs AutoDisposeNotifier 등). 이는 일부 엣지 케이스에서 컴파일 오류를 위한 것이었지만, 나쁜 API라...

(QB_NEW_EN)


[grammar] ~506-~506: There might be a mistake here.
Context: ...otifier+AutoDisposeFamilyNotifier대신, 항상Notifier` 클래스를 사용한다는 의미입니다. 이 변경사항은...

(QB_NEW_EN)


[grammar] ~513-~513: There might be a mistake here.
Context: ..., 일부에는 future 또는 notifier 등이 있었습니다. 유용했지만, 얻는 것에 비해 많은 복잡성이었습니다. 그 이유 중 하나는 ...

(QB_NEW_EN)


[grammar] ~535-~535: There might be a mistake here.
Context: ...r가 특정 상황에서 더 이상 리스너에게 알림을 보내지 않을 수 있습니다. - 일부 리스너가 이전보다 더 자주 알림을 받을 수 있습니다. - ==를...

(QB_NEW_EN)


[grammar] ~541-~541: There might be a mistake here.
Context: ...드하여 사용자 정의 구현을 사용할 수 있습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~557-~557: There might be a mistake here.
Context: ... return true; } } } raw={ class TodoList extends Notifier<List<Tod...

(QB_NEW_EN)


[grammar] ~577-~577: There might be a mistake here.
Context: ...od가 때때로 그 오류를 직접 다시 던졌습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~595-~595: There might be a mistake here.
Context: ...); }, child: Text('클릭하세요'), ); } raw={ final exampleProvider =...

(QB_NEW_EN)


[grammar] ~598-~598: There might be a mistake here.
Context: ...ld: Text('클릭하세요'), ); } raw={ final exampleProvider = FutureProvider<i...

(QB_NEW_EN)


[grammar] ~613-~613: There might be a mistake here.
Context: ...); }, child: Text('클릭하세요'), ); `} > 3.0에서는 이것이 변경되었습니다....

(QB_NEW_EN)


[grammar] ~618-~618: There might be a mistake here.
Context: ....0에서는 이것이 변경되었습니다. 대신, 오류는 원본 오류와 스택 추적을 모두 포함하는 ProviderException에 캡슐화됩니다. ::...

(QB_NEW_EN)


[grammar] ~649-~649: There might be a mistake here.
Context: ...d의 자동 재시도 메커니즘에서 내부적으로 사용됩니다. 기본 자동 재시도는 ProviderException을 무시합니다: ```dart Pro...

(QB_NEW_EN)


[grammar] ~667-~667: There might be a mistake here.
Context: ...미합니다. 구체적인 예로, 두 경로가 있는 애플리케이션을 생각해보세요: - Provider를 사용해 웹소켓을 수신하는 홈 페이지 - 해당 웹소켓에 ...

(QB_NEW_EN)


[grammar] ~668-~668: There might be a mistake here.
Context: ... 생각해보세요: - Provider를 사용해 웹소켓을 수신하는 홈 페이지 - 해당 웹소켓에 의존하지 않는 설정 페이지 일반적인 애플리케이션에서 사...

(QB_NEW_EN)


[grammar] ~677-~677: There might be a mistake here.
Context: ...ickerMode]에 의존하여 위젯이 보이는지 여부를 판단합니다. 그리고 false일 때, [Consumer]의 모든 리스너가 일시정지됩니다. ...

(QB_NEW_EN)


[grammar] ~680-~680: There might be a mistake here.
Context: ...으로 제어할 수 있습니다. 값을 자의적으로 true/false로 설정하여 강제로 재개/일시정지할 수 있습니다: ```dart class MyWi...

(QB_NEW_EN)


[grammar] ~704-~704: There might be a mistake here.
Context: ...있었습니다. 하지만 제한적이었고 일부 엣지 케이스를 다루지 못했습니다. 다음을 생각해보세요: <AutoSnippet language="da...

(QB_NEW_EN)


[grammar] ~707-~707: There might be a mistake here.
Context: ...를 다루지 못했습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~732-~732: There might be a mistake here.
Context: ...ider를 통해 간접적으로 사용될 수 있습니다. <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~741-~741: There might be a mistake here.
Context: ... class MyWidget extends ConsumerWidget { @OverRide Widget build(BuildContext ...

(QB_NEW_EN)


[grammar] ~754-~754: There might be a mistake here.
Context: ...요'), ); } } } raw={ final anotherProvider = Provider((r...

(QB_NEW_EN)


[grammar] ~759-~759: There might be a mistake here.
Context: ... class MyWidget extends ConsumerWidget { @OverRide Widget build(BuildContext ...

(QB_NEW_EN)


[grammar] ~781-~781: There might be a mistake here.
Context: ...pose"가 예기치 않게 트리거될 수 있었습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen...

(QB_NEW_EN)


[grammar] ~782-~782: There might be a mistake here.
Context: ...리거될 수 있었습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~808-~808: There might be a mistake here.
Context: ...Provider.future); } void main() { final container = ProviderContainer(); ...

(QB_NEW_EN)


[grammar] ~818-~818: There might be a mistake here.
Context: ...}\n----'); }); } } raw={ final autoDisposeProvider = StreamProvid...

(QB_NEW_EN)


[grammar] ~840-~840: There might be a mistake here.
Context: ...ovider.future); }); void main() { final container = ProviderContainer(); ...

(QB_NEW_EN)


[grammar] ~944-~944: There might be a mistake here.
Context: ...원래 구현을 계속 사용하고 싶을 때 유용합니다. <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~970-~970: There might be a mistake here.
Context: ... ], ); } } raw={ class MyNotifier extends Notifier {...

(QB_NEW_EN)


[grammar] ~1000-~1000: There might be a mistake here.
Context: ...일시적으로" 제거되었습니다. 다시 돌아왔습니다! <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~1019-~1019: There might be a mistake here.
Context: ... ], ); } } raw={ final myFutureProvider = FutureProvider<...

(QB_NEW_EN)


[grammar] ~1184-~1184: There might be a mistake here.
Context: ... 이는 Provider가 요청의 현재 진행률을 정의할 수 있게 해줍니다: <AutoSnippet language="dart" cod...

(QB_NEW_EN)


[grammar] ~1202-~1202: There might be a mistake here.
Context: ... } } } raw={ class MyNotifier extends AsyncNotifier<U...

(QB_NEW_EN)


[grammar] ~1228-~1228: There might be a mistake here.
Context: ...= ref.onDispose(() => print('dispose')); // 단순히 함수를 호출하여 리스너를 제거합니다: remove...

(QB_NEW_EN)


[grammar] ~1240-~1240: There might be a mistake here.
Context: ...= ref.onDispose(() => print('dispose')); // 단순히 함수를 호출하여 리스너를 제거합니다: remove...

(QB_NEW_EN)


[grammar] ~1253-~1253: There might be a mistake here.
Context: ... weak: true를 지정할 수 있습니다: <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~1269-~1269: There might be a mistake here.
Context: ... // ... } } raw={ final exampleProvider = FutureProvider<i...

(QB_NEW_EN)


[grammar] ~1283-~1283: There might be a mistake here.
Context: ...pet> 이 플래그를 지정하면 수신된 Provider가 사용되지 않으면 여전히 해제될 수 있다고 Riverpod에 알려줍니다. 이 플래그는 단...

(QB_NEW_EN)


[grammar] ~1286-~1286: There might be a mistake here.
Context: ...는 단일 Provider에서 여러 "진실의 원천"을 결합하는 것과 관련된 일부 틈새 사용 사례를 돕는 고급 기능입니다. [ProviderCont...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (22)
  • GitHub Check: Redirect rules - river-pod
  • GitHub Check: Header rules - river-pod
  • GitHub Check: Pages changed - river-pod
  • GitHub Check: build (master, packages/riverpod_generator)
  • GitHub Check: build (master, packages/hooks_riverpod/example)
  • GitHub Check: build (master, examples/todos)
  • GitHub Check: build (master, packages/riverpod)
  • GitHub Check: build (master, packages/flutter_riverpod)
  • GitHub Check: build (master, packages/flutter_riverpod/example)
  • GitHub Check: build (stable, packages/riverpod_annotation)
  • GitHub Check: build (master, examples/marvel)
  • GitHub Check: build (master, examples/random_number)
  • GitHub Check: build (stable, packages/hooks_riverpod/example)
  • GitHub Check: build (stable, packages/flutter_riverpod)
  • GitHub Check: build (stable, packages/flutter_riverpod/example)
  • GitHub Check: build (stable, packages/riverpod/example)
  • GitHub Check: riverpod_lint (stable, packages/riverpod_analyzer_utils_tests)
  • GitHub Check: riverpod_lint (stable, packages/riverpod_lint_flutter_test)
  • GitHub Check: riverpod_lint (stable, packages/riverpod_lint)
  • GitHub Check: riverpod_lint (master, packages/riverpod_lint_flutter_test)
  • GitHub Check: riverpod_lint (master, packages/riverpod_analyzer_utils_tests)
  • GitHub Check: check_generation
🔇 Additional comments (2)
website/src/documents_meta.js (1)

161-161: KO title entry for whats_new looks correct
Mapping key aligns with the new doc id and the Korean title reads well.

To verify id/title consistency, run:

#!/usr/bin/env bash
set -eo pipefail

# 1) Confirm KO translation exists
test -f website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx || {
  echo 'Missing KO translation: whats_new.mdx'
  exit 1
}

# 2) Ensure the "whats_new" key appears exactly once
occurrences=$(rg -n '"whats_new"\s*:' website/src/documents_meta.js | wc -l)
echo "Occurrences in documents_meta.js: $occurrences"

# 3) Compare frontmatter title with mapping label
front_title=$(rg -m1 '^\s*title:\s*(.+)$' website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx \
  | sed -E 's/^\s*title:\s*//')
map_title=$(rg -m1 '"whats_new":\s*"(.*)"' website/src/documents_meta.js \
  | sed -E 's/.*"whats_new":\s*"(.*)".*/\1/')
printf 'frontmatter: %s\nmapping    : %s\n' "$front_title" "$map_title"

Run and confirm the file exists, the key appears once, and both titles match.

website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (1)

1-4: Front-matter OK

제목/메타 구조 및 Docusaurus 호환 어휘 사용은 적절합니다.

- Correct particle usage: 사이드이펙트을 → 사이드이펙트를
- Fix spelling: AudoDispose → AutoDispose
- Improve grammar: AudoDispose 인터페이스가 제거된거지 → AutoDispose 인터페이스가 제거된 것이지

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (1)

223-227: Re: 을/를 particle fixes are now correct

“사이드이펙트를 …” usages look good in both snippets. Marking the earlier bot comment as resolved.

Also applies to: 244-255

🧹 Nitpick comments (7)
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (7)

1-1304: Overall: Solid translation; a few consistency/typo nits

Great work preserving formatting and code blocks. I’m proposing minor Korean style/consistency fixes below; all are non-blocking.


23-23: Unify term: “오프라인 지속성”

Use one term across bullet/section/body. The doc mostly uses “지속성,” so align the heading/body to match.

Apply:

-## 오프라인 지속 기능 (experimental) {#offline-persistence-experimental}
+## 오프라인 지속성 (experimental) {#offline-persistence-experimental}

-오프라인 지속 기능은 Provider를 장치에 로컬로 캐시할 수 있게 하는 새로운 기능입니다.
+오프라인 지속성은 Provider를 장치에 로컬로 캐시할 수 있게 하는 새로운 기능입니다.

Also applies to: 38-38, 45-45


25-25: Spacing: “새로고침됩니다”

Korean spacing for ‘…고침됩니다’ should be closed up.

-- [자동 재시도](#automatic-retry) - Provider가 실패할 때 지수적 백오프로 자동으로 새로고침 됩니다
+- [자동 재시도](#automatic-retry) - Provider가 실패할 때 지수적 백오프로 자동으로 새로고침됩니다

92-105: Spacing: “할일” → “할 일”

Standard spacing in Korean is “할 일”. Update occurrences in comments/UI strings.

-        // 서버에서 비동기적으로 할일을 가져옵니다.
+        // 서버에서 비동기적으로 할 일을 가져옵니다.
-        // await 중에 지속된 할일 목록을 사용할 수 있습니다.
+        // await 중에 지속된 할 일 목록을 사용할 수 있습니다.
@@
-        // 서버에서 비동기적으로 할일을 가져옵니다.
+        // 서버에서 비동기적으로 할 일을 가져옵니다.
-        // await 중에 지속된 할일 목록을 사용할 수 있습니다.
+        // await 중에 지속된 할 일 목록을 사용할 수 있습니다.
@@
-      MutationSuccess() => const Text('할일이 추가되었습니다!'),
+      MutationSuccess() => const Text('할 일이 추가되었습니다!'),
@@
-    await tsx.get(todoListProvider.notifier).addTodo('새 할일');
+    await tsx.get(todoListProvider.notifier).addTodo('새 할 일');
@@
-      // 새 할일을 서버에 게시합니다
+      // 새 할 일을 서버에 게시합니다
@@
-      // 새 할일을 서버에 게시합니다
+      // 새 할 일을 서버에 게시합니다

Also applies to: 172-185, 238-239, 251-251, 359-359, 377-377


31-31: Terminology: “테스팅” → “테스트”

“테스트” is the more common term in KR tech docs.

-- [새로운 테스팅 유틸리티](#new-testing-utilities):
+- [새로운 테스트 유틸리티](#new-testing-utilities):
@@
-## 새로운 테스팅 유틸리티 {#new-testing-utilities}
+## 새로운 테스트 유틸리티 {#new-testing-utilities}

Also applies to: 921-921


461-461: Typo: “치뤘습니다” → “치렀습니다”

Standard spelling.

-이는 일부 엣지 케이스에서 컴파일 오류를 위한 것이었지만, 나쁜 API라는 대가를 치뤘습니다.
+이는 일부 엣지 케이스에서 컴파일 오류를 위한 것이었지만, 나쁜 API라는 대가를 치렀습니다.

777-777: Spacing: “때 까지” → “때까지”

-### Provider가 다시 빌드될 때, 빌드가 완료될 때 까지 이전 상태가 유지
+### Provider가 다시 빌드될 때, 빌드가 완료될 때까지 이전 상태가 유지
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2b49651 and f0962bd.

📒 Files selected for processing (1)
  • website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (1 hunks)
🧰 Additional context used
🪛 LanguageTool
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx

[grammar] ~5-~5: There might be a mistake here.
Context: ...n: 1 --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; im...

(QB_NEW_EN)


[grammar] ~6-~6: There might be a mistake here.
Context: ...'; import TabItem from '@theme/TabItem'; import { AutoSnippet } from "/src/compon...

(QB_NEW_EN)


[grammar] ~7-~7: There might be a mistake here.
Context: ...et } from "/src/components/CodeSnippet"; import { Link } from "/src/components/Li...

(QB_NEW_EN)


[grammar] ~17-~17: Ensure spelling is correct
Context: ...ion 이 버전은 몇 가지 생명주기 변경사항을 포함하고 있습니다. 이런 변경사항들이 미묘한 방식으로 앱을 손상시킬 수 있습니다. 신중하게 업그레이드하세요....

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~24-~24: There might be a mistake here.
Context: ...l) - 인터페이스가 사이드이펙트에 반응할 수 있게 하는 새로운 메커니즘 - 자동 재시도 - Provider가 실패...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...BuildContext.mounted와 유사하지만 Ref용입니다. - [제네릭 지원 (코드 생성)](#generic-support-code-ge...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ...es) - 최신 코드에 더 잘 맞도록 Provider 동작에 약간의 조정 - 새로운 테스팅 유틸리티: ...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...트 내에서 ProviderContainer를 얻는 헬퍼 메서드입니다. - [정적으로 안전한 스코핑](#statically-safe-scoping-c...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...다. return JsonSqFliteStorage.open( join(await getDatabasesPath(), 'riverpod...

(QB_NEW_EN)


[grammar] ~112-~112: There might be a mistake here.
Context: ...합니다. return JsonSqFliteStorage.open( join(await getDatabasesPath(), 'riverpod...

(QB_NEW_EN)


[grammar] ~143-~143: There might be a mistake here.
Context: ... }; } } final todosProvider = AsyncNotifierProvider<TodosNotifier, Lis...

(QB_NEW_EN)


[grammar] ~202-~202: There might be a mistake here.
Context: ...로운 [Mutation] 객체가 추가되었습니다. 이는 Provider처럼 최상위 final 변수로 선언됩니다: ```dart final addT...

(QB_NEW_EN)


[grammar] ~318-~318: There might be a mistake here.
Context: ...n? retry(int retryCount, Object error) { if (error is SomeSpecificError) return n...

(QB_NEW_EN)


[grammar] ~332-~332: There might be a mistake here.
Context: ...odo> build() => []; } } raw={ final todoListProvider = NotifierProvide...

(QB_NEW_EN)


[grammar] ~341-~341: There might be a mistake here.
Context: ...on(seconds: retryCount * 2); }, ); } ></AutoSnippet> ## Ref.mounted` {#...

(QB_NEW_EN)


[grammar] ~350-~350: There might be a mistake here.
Context: ...트되어 있는지 확인하는 데 사용할 수 있습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~371-~371: There might be a mistake here.
Context: ...te, newTodo]; } } } raw={ class TodoList extends Notifier<List<Tod...

(QB_NEW_EN)


[grammar] ~424-~424: There might be a mistake here.
Context: ...Riverpod는 이제 다양한 상황에서 Provider를 일시정지합니다: - Provider가 더 이상 보이지 않으면 일시정지됩니다 ([Ticke...

(QB_NEW_EN)


[grammar] ~426-~426: There might be a mistake here.
Context: ... 이상 보이지 않으면 일시정지됩니다 ([TickerMode] 기반). - Provider가 재구축되면, 재구축이 완료될 때까지 구독이 일시정지됩니...

(QB_NEW_EN)


[grammar] ~435-~435: There might be a mistake here.
Context: ...아래 세부 목표를 포함했습니다. - 권장하는 것과 그렇지 않은 것을 강조 - 불필요한 인터페이스 중복 제거 - 모든 기능이 일관된 방식으로 작동하도록...

(QB_NEW_EN)


[grammar] ~436-~436: There might be a mistake here.
Context: ... 권장하는 것과 그렇지 않은 것을 강조 - 불필요한 인터페이스 중복 제거 - 모든 기능이 일관된 방식으로 작동하도록 보장 이를 위해 몇 가지 변경사...

(QB_NEW_EN)


[grammar] ~454-~454: There might be a mistake here.
Context: ... 이러한 Provider가 더 이상 권장되지 않음을 강조하기 위함입니다. 동시에 이들은 하위 호환성을 위해 보존됩니다. ### AutoDispo...

(QB_NEW_EN)


[grammar] ~459-~459: There might be a mistake here.
Context: ... Notifier vs AutoDisposeNotifier 등). 이는 일부 엣지 케이스에서 컴파일 오류를 위한 것이었지만, 나쁜 API라...

(QB_NEW_EN)


[grammar] ~506-~506: There might be a mistake here.
Context: ...otifier+AutoDisposeFamilyNotifier대신, 항상Notifier` 클래스를 사용한다는 의미입니다. 이 변경사항은...

(QB_NEW_EN)


[grammar] ~513-~513: There might be a mistake here.
Context: ..., 일부에는 future 또는 notifier 등이 있었습니다. 유용했지만, 얻는 것에 비해 많은 복잡성이었습니다. 그 이유 중 하나는 ...

(QB_NEW_EN)


[grammar] ~535-~535: There might be a mistake here.
Context: ...r가 특정 상황에서 더 이상 리스너에게 알림을 보내지 않을 수 있습니다. - 일부 리스너가 이전보다 더 자주 알림을 받을 수 있습니다. - ==를...

(QB_NEW_EN)


[grammar] ~541-~541: There might be a mistake here.
Context: ...드하여 사용자 정의 구현을 사용할 수 있습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~557-~557: There might be a mistake here.
Context: ... return true; } } } raw={ class TodoList extends Notifier<List<Tod...

(QB_NEW_EN)


[grammar] ~577-~577: There might be a mistake here.
Context: ...od가 때때로 그 오류를 직접 다시 던졌습니다: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~595-~595: There might be a mistake here.
Context: ...); }, child: Text('클릭하세요'), ); } raw={ final exampleProvider =...

(QB_NEW_EN)


[grammar] ~598-~598: There might be a mistake here.
Context: ...ld: Text('클릭하세요'), ); } raw={ final exampleProvider = FutureProvider<i...

(QB_NEW_EN)


[grammar] ~613-~613: There might be a mistake here.
Context: ...); }, child: Text('클릭하세요'), ); `} > 3.0에서는 이것이 변경되었습니다....

(QB_NEW_EN)


[grammar] ~618-~618: There might be a mistake here.
Context: ....0에서는 이것이 변경되었습니다. 대신, 오류는 원본 오류와 스택 추적을 모두 포함하는 ProviderException에 캡슐화됩니다. ::...

(QB_NEW_EN)


[grammar] ~649-~649: There might be a mistake here.
Context: ...d의 자동 재시도 메커니즘에서 내부적으로 사용됩니다. 기본 자동 재시도는 ProviderException을 무시합니다: ```dart Pro...

(QB_NEW_EN)


[grammar] ~667-~667: There might be a mistake here.
Context: ...미합니다. 구체적인 예로, 두 경로가 있는 애플리케이션을 생각해보세요: - Provider를 사용해 웹소켓을 수신하는 홈 페이지 - 해당 웹소켓에 ...

(QB_NEW_EN)


[grammar] ~668-~668: There might be a mistake here.
Context: ... 생각해보세요: - Provider를 사용해 웹소켓을 수신하는 홈 페이지 - 해당 웹소켓에 의존하지 않는 설정 페이지 일반적인 애플리케이션에서 사...

(QB_NEW_EN)


[grammar] ~677-~677: There might be a mistake here.
Context: ...ickerMode]에 의존하여 위젯이 보이는지 여부를 판단합니다. 그리고 false일 때, [Consumer]의 모든 리스너가 일시정지됩니다. ...

(QB_NEW_EN)


[grammar] ~680-~680: There might be a mistake here.
Context: ...으로 제어할 수 있습니다. 값을 자의적으로 true/false로 설정하여 강제로 재개/일시정지할 수 있습니다: ```dart class MyWi...

(QB_NEW_EN)


[grammar] ~704-~704: There might be a mistake here.
Context: ...있었습니다. 하지만 제한적이었고 일부 엣지 케이스를 다루지 못했습니다. 다음을 생각해보세요: <AutoSnippet language="da...

(QB_NEW_EN)


[grammar] ~707-~707: There might be a mistake here.
Context: ...를 다루지 못했습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~732-~732: There might be a mistake here.
Context: ...ider를 통해 간접적으로 사용될 수 있습니다. <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~741-~741: There might be a mistake here.
Context: ... class MyWidget extends ConsumerWidget { @OverRide Widget build(BuildContext ...

(QB_NEW_EN)


[grammar] ~754-~754: There might be a mistake here.
Context: ...요'), ); } } } raw={ final anotherProvider = Provider((r...

(QB_NEW_EN)


[grammar] ~759-~759: There might be a mistake here.
Context: ... class MyWidget extends ConsumerWidget { @OverRide Widget build(BuildContext ...

(QB_NEW_EN)


[grammar] ~781-~781: There might be a mistake here.
Context: ...pose"가 예기치 않게 트리거될 수 있었습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen...

(QB_NEW_EN)


[grammar] ~782-~782: There might be a mistake here.
Context: ...리거될 수 있었습니다. 다음을 생각해보세요: <AutoSnippet language="dart" codegen={` @riverpod...

(QB_NEW_EN)


[grammar] ~808-~808: There might be a mistake here.
Context: ...Provider.future); } void main() { final container = ProviderContainer(); ...

(QB_NEW_EN)


[grammar] ~818-~818: There might be a mistake here.
Context: ...}\n----'); }); } } raw={ final autoDisposeProvider = StreamProvid...

(QB_NEW_EN)


[grammar] ~840-~840: There might be a mistake here.
Context: ...ovider.future); }); void main() { final container = ProviderContainer(); ...

(QB_NEW_EN)


[grammar] ~944-~944: There might be a mistake here.
Context: ...원래 구현을 계속 사용하고 싶을 때 유용합니다. <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~970-~970: There might be a mistake here.
Context: ... ], ); } } raw={ class MyNotifier extends Notifier {...

(QB_NEW_EN)


[grammar] ~1000-~1000: There might be a mistake here.
Context: ...일시적으로" 제거되었습니다. 다시 돌아왔습니다! <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~1019-~1019: There might be a mistake here.
Context: ... ], ); } } raw={ final myFutureProvider = FutureProvider<...

(QB_NEW_EN)


[grammar] ~1184-~1184: There might be a mistake here.
Context: ... 이는 Provider가 요청의 현재 진행률을 정의할 수 있게 해줍니다: <AutoSnippet language="dart" cod...

(QB_NEW_EN)


[grammar] ~1202-~1202: There might be a mistake here.
Context: ... } } } raw={ class MyNotifier extends AsyncNotifier<U...

(QB_NEW_EN)


[grammar] ~1228-~1228: There might be a mistake here.
Context: ...= ref.onDispose(() => print('dispose')); // 단순히 함수를 호출하여 리스너를 제거합니다: remove...

(QB_NEW_EN)


[grammar] ~1240-~1240: There might be a mistake here.
Context: ...= ref.onDispose(() => print('dispose')); // 단순히 함수를 호출하여 리스너를 제거합니다: remove...

(QB_NEW_EN)


[grammar] ~1253-~1253: There might be a mistake here.
Context: ... weak: true를 지정할 수 있습니다: <AutoSnippet language="dart" codegen={` @Riverp...

(QB_NEW_EN)


[grammar] ~1269-~1269: There might be a mistake here.
Context: ... // ... } } raw={ final exampleProvider = FutureProvider<i...

(QB_NEW_EN)


[grammar] ~1283-~1283: There might be a mistake here.
Context: ...pet> 이 플래그를 지정하면 수신된 Provider가 사용되지 않으면 여전히 해제될 수 있다고 Riverpod에 알려줍니다. 이 플래그는 단...

(QB_NEW_EN)


[grammar] ~1286-~1286: There might be a mistake here.
Context: ...는 단일 Provider에서 여러 "진실의 원천"을 결합하는 것과 관련된 일부 틈새 사용 사례를 돕는 고급 기능입니다. [ProviderCont...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
  • GitHub Check: check_generation
  • GitHub Check: build (stable, packages/flutter_riverpod/example)
  • GitHub Check: build (master, packages/riverpod_annotation)
  • GitHub Check: build (master, packages/flutter_riverpod)
  • GitHub Check: build (master, examples/marvel)
  • GitHub Check: build (master, examples/random_number)
  • GitHub Check: build (stable, packages/riverpod)
  • GitHub Check: build (stable, packages/riverpod_annotation)
  • GitHub Check: build (master, packages/flutter_riverpod/example)
  • GitHub Check: build (stable, examples/todos)
  • GitHub Check: build (stable, packages/flutter_riverpod)
  • GitHub Check: build (stable, packages/riverpod_generator)
  • GitHub Check: riverpod_lint (stable, packages/riverpod_lint_flutter_test)
  • GitHub Check: riverpod_lint (stable, packages/riverpod_analyzer_utils_tests)
  • GitHub Check: riverpod_lint (master, packages/riverpod_lint_flutter_test)
  • GitHub Check: riverpod_lint (master, packages/riverpod_analyzer_utils)
  • GitHub Check: riverpod_lint (master, packages/riverpod_lint)
  • GitHub Check: riverpod_lint (master, packages/riverpod_analyzer_utils_tests)
🔇 Additional comments (1)
website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx (1)

1-4: Korean “What’s new” page is correctly registered and present
The documents_meta.js entry at line 161 includes "whats_new": "Riverpod 3.0의 새로운 기능", and the file website/i18n/ko/docusaurus-plugin-content-docs/current/whats_new.mdx exists. No changes needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Korean translation for 'What's new in Riverpod 3.0' documentation
1 participant