close
Skip to content

Adding initial Korean translation - #12830

Merged
mekarpeles merged 8 commits into
internetarchive:masterfrom
systil3:i18n/ko
Jun 23, 2026
Merged

Adding initial Korean translation#12830
mekarpeles merged 8 commits into
internetarchive:masterfrom
systil3:i18n/ko

Conversation

@systil3

@systil3 systil3 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Overview

Adds an initial Korean (ISO 639-1: ko) translation for Open Library.
Korean is spoken by approximately 80 million people worldwide, including large communities in South Korea, North America, etc. This PR creates openlibrary/i18n/ko/messages.po with translations covering the whole UI element with EN including core features : account management, borrowing, book editing, navigation, and notifications. This also modifies get_supported_languages() of openlibrary/code.py as adding one line to apply Korean mapping.
This contribution aims to make Open Library more accessible to Korean-speaking users.

Technical

All msgid strings were translated to natural, commonly-used Korean.
Since Korean does not grammatically distinguish singular from plural in the same way English does, we set all plural msgstr entries to use index [0] only.
Technical terms or proper nouns without established Korean equivalents (e.g. "Internet Archive", "eBook", "ISBN", "reCAPTCHA", "Adobe Digital Editions") were kept in their original form exceptionally.

Testing

As indicated in the internationalization section of the open library docs, you can build the modifications using the line docker compose run --rm -uroot home make i18n and validate them using the line docker compose exec -uroot web ./scripts/i18n-messages validate ko.

Screenshot

image

Stakeholders

@gladmanhh : helped modify line around 5800 ~ 8700 of messages.po
@hajicastle : helped line 2900~5800

@mekarpeles
mekarpeles requested a review from Copilot June 1, 2026 06:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.

@mekarpeles

Copy link
Copy Markdown
Member

Thank you for contributing, @systil3! Welcome to Open Library — this appears to be your first contribution to the project.

🤖 Copilot has been assigned for an initial review.

This PR has no linked issue, so it will go through triage before a reviewer is assigned. Triage runs on Mondays and Fridays. There are currently 66 open non-draft PRs in the queue ahead of yours.

Possible improvements for this PR

  • No linked issue — this is a substantial change. If there is an existing issue tracking Korean localization, please link it with a #NNN reference in the PR body. If there isn't one, consider opening one so the team can track and triage it.
PR triage checklist (maintainers / Pam)
  • PR description — not empty; explains what the change does and how to verify it
  • References an issue — PR body contains a #NNN reference
    • Linked issue is triaged — has a Priority: * label (not just Needs: Triage)
    • Linked issue is assigned — has at least one assignee
  • Commit history clean — no WIP/fixup/conflict noise; commit messages are meaningful
  • CI passing — no failing check-runs
  • Test cases present — if the change touches substantive logic, test coverage exists or is explained
  • Proof of testing — PR body includes a description of what was tested, a screenshot, or a video

Note

This comment was automatically generated by Pam, Open Library's Project AI Manager, on behalf of @mekarpeles. Pam is designed to provide status visibility, perform basic project management functions and relevant codebase research, and provide actionable feedback so contributors aren't left waiting.

@mekarpeles mekarpeles added the Needs: Submitter Input Waiting on input from the creator of the issue/pr [managed] label Jun 1, 2026
@github-actions github-actions Bot removed the Needs: Submitter Input Waiting on input from the creator of the issue/pr [managed] label Jun 1, 2026
@mekarpeles mekarpeles self-assigned this Jun 1, 2026
@mekarpeles

Copy link
Copy Markdown
Member

Korean element re-ordering may making this one challenging (hence the python failure).

We may need to use flags to disable these tests for Korean

systil3 added 2 commits June 3, 2026 17:42
fix some typo and add <!-- i18n-lint no-tree-equal --> flag to some terms
@systil3

systil3 commented Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

Korean element re-ordering may making this one challenging (hence the python failure).

We may need to use flags to disable these tests for Korean

I've made a commit after adding the flag for some terms where the change in order of HTML elements is inevitable due to the structure of Korean sentences, and correcting some typos.

@github-actions github-actions Bot added the Needs: Response Issues which require feedback from lead label Jun 3, 2026
Clear 3 msgstr entries with broken HTML structure (<a<a duplicate tag
at line junctions) that caused test_html_format failures. All 3 entries
were fuzzy, so no translated content is lost — they fall back to English.

Also add ko to get_supported_languages() in code.py so Korean appears
in the language selector UI. This was described in the PR but missing
from the original diff.

All 117 ko test_po_files.py tests passing. Validation clean (0 errors).
@mekarpeles

Copy link
Copy Markdown
Member

Hi @systil3, @systil4, and @systil2 — thank you for this contribution! Korean is a widely spoken language and this translation will be a meaningful addition.

I've pushed a maintenance commit directly to your branch (3825ca038) that makes a few small fixes:

What changed:

  1. Cleared 3 untranslated strings with broken HTML — Three fuzzy entries had a copy-paste artifact where a line split produced <a<a (a duplicate tag at the line junction). This caused test_html_format failures in CI. All 3 entries were already marked #, fuzzy, so they fall back to English in the UI — no translated content is lost.

  2. Added ko to get_supported_languages() in openlibrary/plugins/openlibrary/code.py — This was described in the PR body but was missing from the original diff. Without it, Korean wouldn't appear in the language selector even after merge.

I also rebased the branch onto master (in the local branch I used) and folded in the pre-commit bot commit, keeping the meaningful history intact.

To undo this commit if needed: on your local clone run git log --oneline to find the SHA before my commit, then git reset --hard <that-sha> and git push --force-with-lease.

CI should be green now. Ready for review.

— Slater, via PAM (Open Library's Project AI Manager)

@mekarpeles
mekarpeles merged commit 7382a5e into internetarchive:master Jun 23, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs: Response Issues which require feedback from lead

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants