Skip to content

feat(i18n): add Korean (ko) locale#175

Open
rofeels wants to merge 1 commit intowebadderall:mainfrom
rofeels:feat/i18n-ko
Open

feat(i18n): add Korean (ko) locale#175
rofeels wants to merge 1 commit intowebadderall:mainfrom
rofeels:feat/i18n-ko

Conversation

@rofeels
Copy link
Copy Markdown

@rofeels rofeels commented Apr 4, 2026

Summary

  • Add complete Korean (한국어) translation across all 7 i18n namespaces
  • All 403 translation keys covered with natural, professional Korean
  • Passes npm run i18n:check with no missing or extra keys

Changes

  • src/i18n/locales/ko/ — 7 new locale files (common, launch, editor, timeline, settings, dialogs, shortcuts)
  • src/i18n/config.ts — Add 'ko' to SUPPORTED_LOCALES
  • src/contexts/I18nContext.tsx — Import and register ko locale bundle

Translation notes

  • UI labels translated naturally for Korean users (e.g., "확대" for Zoom, "트림" for Trim, "자막" for Captions)
  • Technical terms like cursor style names (Tahoe, Dot, etc.) and easing names (Recordly, Glide, etc.) kept in English as they are product-specific identifiers
  • All {{variable}} interpolation placeholders preserved
  • Korean particle handling (은/는, 을/를) applied where appropriate

Test plan

  • npm run i18n:check passes — all keys structurally consistent
  • Switch language to Korean in the app and verify all screens render correctly
  • Verify no text overflow in buttons/labels (Korean text can be wider)

Add complete Korean translation across all 7 namespaces:
common, launch, editor, timeline, settings, dialogs, shortcuts.

All 403 translation keys covered. Passes npm run i18n:check.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 4, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "*" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • 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
📝 Walkthrough

Walkthrough

Korean locale support is added to the application by registering Korean translation bundles in the i18n context, extending the supported locales configuration, and providing complete Korean translation resources across seven namespaces (common, dialogs, editor, launch, settings, shortcuts, timeline).

Changes

Cohort / File(s) Summary
I18n Configuration
src/i18n/config.ts
Added ko to SUPPORTED_LOCALES array, implicitly updating the AppLocale type to include Korean as a valid locale value.
I18n Context Registration
src/contexts/I18nContext.tsx
Imported seven Korean translation bundles and registered them in the messages object under the ko key to enable locale-aware translation resolution.
Korean Translation Resources
src/i18n/locales/ko/common.json, dialogs.json, editor.json, launch.json, settings.json, shortcuts.json, timeline.json
Added complete Korean translation files covering UI text for app metadata, actions, errors, dialogs, editor controls, recording/launch flows, settings, keyboard shortcuts, and timeline interactions, with parameterized placeholders for dynamic content.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A hop and a skip through locale so new,
Korean translations, now speaking true,
Seven files nestled, each one complete,
From dialogs to timelines, the locales now greet,
Language blooms where the config once grew! 🌸

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'feat(i18n): add Korean (ko) locale' clearly and concisely describes the main change: adding Korean language support to the i18n system.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description covers the essential template sections: clear summary of changes, motivation (adding Korean translation support), type of change (New Feature), related changes listed, and a test plan with automated checks completed.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@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: 1

🧹 Nitpick comments (1)
src/i18n/locales/ko/settings.json (1)

1-160: Ensure Korean font support is configured.

Korean characters (Hangul) require proper font support for correct rendering. Verify that the application's font stack includes fonts with comprehensive Korean glyph coverage (e.g., Noto Sans KR, Malgun Gothic, or system fonts like Apple SD Gothic Neo).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locales/ko/settings.json` around lines 1 - 160, The Korean locale
requires proper font fallback so Hangul renders correctly; update the global/app
font stack used by the UI (e.g., the CSS/font-family used for strings under keys
like "captions.fontFamily", "effects.cursorStyle", "background.title") to
include a Korean-capable font such as "Noto Sans KR" and system fallbacks
("Malgun Gothic", "Apple SD Gothic Neo", "sans-serif"), ensure the Noto Sans KR
webfont is loaded (via `@import`, link, or bundler assets) and that any
font-loading logic or bundler configuration includes the KR subset; also verify
any default "fontFamily" usage in settings or UI components reads from the
locale key "captions.fontFamily" and will fall back to the KR-capable fonts when
rendering Korean strings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/i18n/config.ts`:
- Line 3: SUPPORTED_LOCALES now includes 'ko' but the UI label maps are missing
a Korean entry; update the labels object in the VideoEditor component (look for
the variable named labels in VideoEditor.tsx) and the LOCALE_LABELS object in
the LaunchWindow component (LOCALE_LABELS in LaunchWindow.tsx) to add ko: "한국어"
so Korean displays correctly instead of the locale code.

---

Nitpick comments:
In `@src/i18n/locales/ko/settings.json`:
- Around line 1-160: The Korean locale requires proper font fallback so Hangul
renders correctly; update the global/app font stack used by the UI (e.g., the
CSS/font-family used for strings under keys like "captions.fontFamily",
"effects.cursorStyle", "background.title") to include a Korean-capable font such
as "Noto Sans KR" and system fallbacks ("Malgun Gothic", "Apple SD Gothic Neo",
"sans-serif"), ensure the Noto Sans KR webfont is loaded (via `@import`, link, or
bundler assets) and that any font-loading logic or bundler configuration
includes the KR subset; also verify any default "fontFamily" usage in settings
or UI components reads from the locale key "captions.fontFamily" and will fall
back to the KR-capable fonts when rendering Korean strings.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ba159c7a-3450-4418-b08b-4c9a73444e83

📥 Commits

Reviewing files that changed from the base of the PR and between 215d7c4 and 0249c3f.

📒 Files selected for processing (9)
  • src/contexts/I18nContext.tsx
  • src/i18n/config.ts
  • src/i18n/locales/ko/common.json
  • src/i18n/locales/ko/dialogs.json
  • src/i18n/locales/ko/editor.json
  • src/i18n/locales/ko/launch.json
  • src/i18n/locales/ko/settings.json
  • src/i18n/locales/ko/shortcuts.json
  • src/i18n/locales/ko/timeline.json

export const DEFAULT_LOCALE = 'en' as const

export const SUPPORTED_LOCALES = ['en', 'es', 'zh-CN'] as const
export const SUPPORTED_LOCALES = ['en', 'es', 'ko', 'zh-CN'] as const
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all hard-coded locale label maps that need 'ko' entry
rg -n -C3 'LOCALE_LABELS|labels.*Record.*string.*string' --type=ts --type=tsx -g '!*.json'

Repository: webadderall/Recordly

Length of output: 91


🏁 Script executed:

#!/bin/bash
# Search for locale label maps without specifying invalid file type
rg -n 'LOCALE_LABELS|labels.*Record.*string' -A 5 src/

Repository: webadderall/Recordly

Length of output: 1201


🏁 Script executed:

#!/bin/bash
# Find the specific files mentioned in the review
fd -e ts -e tsx 'VideoEditor|LaunchWindow' src/

Repository: webadderall/Recordly

Length of output: 146


Add ko entry to hard-coded locale label maps.

Adding 'ko' to SUPPORTED_LOCALES requires updating the corresponding label maps in UI components. Without this, Korean will display as the fallback code instead of "한국어":

  • src/components/video-editor/VideoEditor.tsx (lines 286-290): labels object needs ko: "한국어"
  • src/components/launch/LaunchWindow.tsx (lines 57-61): LOCALE_LABELS object needs ko: "한국어"
Example fixes
// VideoEditor.tsx (lines 286-290)
 const labels: Record<string, string> = {
   en: "EN",
   es: "ES",
+  ko: "한국어",
   "zh-CN": "中文",
 };
// LaunchWindow.tsx (lines 57-61)
 const LOCALE_LABELS: Record<string, string> = {
   en: "EN",
   es: "ES",
+  ko: "한국어",
   "zh-CN": "中文",
 };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/config.ts` at line 3, SUPPORTED_LOCALES now includes 'ko' but the UI
label maps are missing a Korean entry; update the labels object in the
VideoEditor component (look for the variable named labels in VideoEditor.tsx)
and the LOCALE_LABELS object in the LaunchWindow component (LOCALE_LABELS in
LaunchWindow.tsx) to add ko: "한국어" so Korean displays correctly instead of the
locale code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant