Skip to content

Add Korean (ko) locale - #1444

Open
moduvoice wants to merge 1 commit into
SpinaCMS:mainfrom
moduvoice:i18n/add-korean
Open

Add Korean (ko) locale#1444
moduvoice wants to merge 1 commit into
SpinaCMS:mainfrom
moduvoice:i18n/add-korean

Conversation

@moduvoice

Copy link
Copy Markdown

Korean (ko) translation PR body template

Motivation

This adds Korean (ko) translation support — to help Korean-speaking users use this
open-source project more comfortably in their own language.

한국 사람들의 오픈소스 이용에 도움이 되게 하기 위해서 한글화 작업을 하였습니다.

Changes

  • Added config/locales/ko.yml (new file, 417 lines) with a full Korean translation of the admin UI, mirroring the structure of config/locales/en.yml exactly.
  • No other files changed or need to change — Spina::Engine is a standard Rails::Engine with no custom i18n.load_path or locale allowlist, so config/locales/**/*.yml is auto-discovered the same way it already is for the repo's other 18 locale files (nl, de, fr, ru, zh-CN, etc.).
  • Note: Spina.config.locales is a separate, unrelated concept — it configures which locales page content is translated into (Spina::TranslatedContent, page/resource translation UI), not which admin-UI languages are available. Admin UI language selection follows the host app's I18n.default_locale, same as every other existing locale file in this directory.
  • The spina.languages map (used to render language names in the page-translation UI) was translated to Korean for all 16 existing entries, deliberately omitting a self-referential ko entry to match en.yml's own omission of en from... (actually en.yml does include en, matching exactly — key sets are identical, no additions or omissions beyond parity).

Testing

  • Verified exact leaf-key parity between en.yml and ko.yml via a Ruby/YAML script (YAML.load_file + recursive key flattening): 359/359 leaf keys present in both, 0 missing, 0 extra.
  • Verified every %{...} interpolation token matches exactly between corresponding en/ko keys: 0 mismatches.
  • Verified HTML tag structure (tag name sequence) matches exactly for every *_html key: 0 mismatches.
  • Verified spina.languages key set matches en.yml exactly (16 keys, same set, no ko self-entry in either file).
  • Verified both YAML files parse successfully with Ruby's YAML.load_file (no syntax errors).
  • Confirmed only one file is touched by this change (git diff --stat against main): config/locales/ko.yml, 417 insertions, no other files modified.
  • Manually spot-checked 35+ translated keys across activerecord attributes, images, navigations, pages, page_translations, photos, preferences, resources, ui, user_mailer, users, website, and wysiwyg sections for accuracy, natural CMS-admin register, and correct Korean grammar (e.g. dynamic particle handling like %{subject}을(를)).

Translate all admin UI strings in config/locales/en.yml to Korean,
matching key structure and Rails i18n interpolation tokens.
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.

1 participant