You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ch...@apache.org on 2026/02/25 07:28:18 UTC
(airflow) branch main updated: Add Korean locale guide for translation skill (#62340)
This is an automated email from the ASF dual-hosted git repository.
choo121600 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 651d57abca5 Add Korean locale guide for translation skill (#62340)
651d57abca5 is described below
commit 651d57abca54b9826a31a018ad21fd6bf7a67dd7
Author: Chanho Lee <ib...@gmail.com>
AuthorDate: Wed Feb 25 16:28:11 2026 +0900
Add Korean locale guide for translation skill (#62340)
---
.github/skills/airflow-translations/locales/ko.md | 113 ++++++++++++++++++++++
1 file changed, 113 insertions(+)
diff --git a/.github/skills/airflow-translations/locales/ko.md b/.github/skills/airflow-translations/locales/ko.md
new file mode 100644
index 00000000000..67cfcd18652
--- /dev/null
+++ b/.github/skills/airflow-translations/locales/ko.md
@@ -0,0 +1,113 @@
+<!-- SPDX-License-Identifier: Apache-2.0
+ https://www.apache.org/licenses/LICENSE-2.0 -->
+
+# Korean (ko)
+
+This document provides locale-specific instructions for translating English Airflow UI strings into Korean. It inherits all global rules from the parent [SKILL.md](../SKILL.md).
+
+## Translation Style
+
+Use wording already established in existing `ko` locale files first. If a term has no established translation yet, prefer natural Korean UI phrasing over literal transliteration.
+
+**English source:**
+
+```json
+"lastDagRun_one": "Last Dag Run",
+"deleteConnection_other": "Delete {{count}} connections"
+```
+
+**Correct** — natural Korean UI wording:
+
+```json
+"lastDagRun_one": "마지막 Dag 실행",
+"deleteConnection_other": "커넥션 {{count}}개 삭제"
+```
+
+**Incorrect** — overly literal or awkward:
+
+```json
+"lastDagRun_one": "마지막 Dag 런",
+"deleteConnection_other": "{{count}} 연결들을 삭제"
+```
+
+## Plural Forms
+
+Korean often uses the same wording for singular and plural. Follow established usage in existing `ko` locale files first. If an existing key pair already distinguishes `_one` and `_other`, keep that distinction. If no established wording exists, use the same translation for both.
+
+**English source:**
+
+```json
+"taskCount_one": "{{count}} Task",
+"taskCount_other": "{{count}} Tasks"
+```
+
+**Correct** — identical for both when no established distinction exists:
+
+```json
+"taskCount_one": "{{count}}개 작업",
+"taskCount_other": "{{count}}개 작업"
+```
+
+## Counters and Spacing
+
+Use counters consistent with existing `ko` locale usage and keep spacing readable:
+
+- Insert a single space between Korean and adjacent English technical terms where needed (`Dag 실행`, `커넥션 ID`).
+- Do not insert a space between numbers/placeholders and counters such as `개` (for example, `{{count}}개`).
+
+```json
+"deleteConnection_other": "커넥션 {{count}}개 삭제",
+"taskCount_one": "{{count}}개 작업",
+"taskCount_other": "{{count}}개 작업",
+"lastDagRun_one": "마지막 Dag 실행",
+"connectionId": "커넥션 ID"
+```
+
+## Particles and Placeholders
+
+Preserve all `{{variable}}` placeholders exactly. Attach Korean particles outside placeholders and reorder phrases only when needed for natural Korean word order.
+
+**English source:**
+
+```json
+"confirmation": "Are you sure you want to delete {{resourceName}}? This action cannot be undone.",
+"description": "{{count}} {{resourceName}} have been successfully deleted. Keys: {{keys}}"
+```
+
+**Correct** — placeholders preserved and particles outside:
+
+```json
+"confirmation": "{{resourceName}}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+"description": "{{count}}개 {{resourceName}}이(가) 성공적으로 삭제되었습니다. 키: {{keys}}"
+```
+
+**Incorrect** — variable names translated:
+
+```json
+"confirmation": "{{리소스이름}}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+"description": "{{개수}}개 {{리소스이름}}이(가) 성공적으로 삭제되었습니다. 키: {{키들}}"
+```
+
+## Tone and UI Voice
+
+- Use neutral, slightly formal tone.
+- Keep labels and messages concise for UI.
+- Use polite confirmations in destructive actions:
+ `"{{resourceName}}을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."`
+- Avoid colloquial phrasing.
+
+## Terminology and Casing
+
+- Keep `Dag` casing exactly as `Dag` (never `DAG`).
+- Reuse established Korean role terms from existing `ko` locale files (for example, `스케줄러`, `오퍼레이터`).
+- Prefer established `ko` glossary by key context (for example, `Dag 실행`, `커넥션`, `변수`), and keep stable technical tokens in English: `XCom`, `REST API`, `JSON`, `URL`, `ID`, `UTC`.
+
+## Terminology Reference
+
+The established Korean translations are defined in existing locale files. Before translating, **read the existing ko JSON files** to learn the established terminology:
+
+```
+airflow-core/src/airflow/ui/public/i18n/locales/ko/
+```
+
+Use the translations found in these files as the authoritative glossary. When translating a term, check how it has been translated elsewhere in the locale to maintain consistency. If a term has not been translated yet, refer to the English source in `en/` and apply the rules in this document.