-
Notifications
You must be signed in to change notification settings - Fork 276
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(i18n): translate i18n guide to korean (#4215)
* Ready to Translate * docs: translations for korean 93% completed * docs: translations for korean almost completed * style(autofix.ci): automated formatting * fix: use lowercase `.png` extension * docs(i18n): translate `transifex.md` * docs: use new images * docs: further tidy up translation --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: scarf <greenscarf005@gmail.com>
- Loading branch information
1 parent
06ac1c7
commit a2a5cd9
Showing
14 changed files
with
898 additions
and
0 deletions.
There are no files selected for viewing
186 changes: 186 additions & 0 deletions
186
doc/src/content/docs/ko/i18n/explanation/file_format.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
--- | ||
title: 번역 파일 포맷 (.po) | ||
--- | ||
|
||
번역은 각 언어 및 국가별 언어 코드로 명명된 [`".po"` 파일(Portable Object)][po]에 저장됩니다. 예를 | ||
들어 스페인에서 사용되는 스페인어에 대한 번역은 `es_ES.po`에, 멕시코에서 사용되는 스페인어에 대한 | ||
번역은 `es_MX.po`에 저장됩니다. | ||
|
||
[po]: https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html | ||
|
||
평범한 텍스트 파일이므로 아무 텍스트 편집기를 써도 상관없으나 보통은 | ||
[Poedit](https://poedit.net)같은 전용 번역 편집기나 <https://translations.launchpad.net> 웹 기반 | ||
번역 도구를 쓸 수도 있습니다. | ||
|
||
`".po"` 파일의 형식은 번역할 영어 문구와 그 뒤에 로컬 번역이 있는 항목 목록입니다. 영어 문구는 | ||
`msgid`로 시작하는 줄에 있고, 번역된 구문은 `msgstr`로 시작하는 줄에 있습니다. | ||
|
||
`msgid` 줄 앞에는 해당 단어나 문구가 소스 코드에서 어디에서 왔는지를 나타내는 주석 줄이 있습니다. | ||
원문의 의미가 명확하지 않을 때 맥락을 파악하는데 도움을 줍니다. 또한 번역을 더 쉽게 하기 위해 | ||
개발자가 남긴 주석이 있을 수도 있습니다. | ||
|
||
대부분의 항목은 다음과 같이 표시됩니다: | ||
|
||
``` | ||
#: action.cpp:421 | ||
msgid "Construct Terrain" | ||
msgstr "niarreT tcurtsnoC" | ||
``` | ||
|
||
여기서 영어 문구는 "Construct Terrain" 이고, `action.cpp` 파일의 421 번째 줄에 나와 있습니다. 이 | ||
예제는 그저 영어 문자를 뒤집은 것입니다. 이렇게 하면 "Construct Terrain" 대신 "niarreT tcurtsnoC"가 | ||
표시됩니다. | ||
|
||
또 다른 예제로는: | ||
|
||
``` | ||
#: action.cpp:425 defense.cpp:635 defense.cpp:701 npcmove.cpp:2049 | ||
msgid "Sleep" | ||
msgstr "pleeS" | ||
``` | ||
|
||
방금의 예제와 비슷하지만, 더 많은 곳에서 쓰이는 문구를 번역했습니다. 이렇게 하면 `action.cpp`, | ||
`defense.cpp`(두 번), `npcmove.cpp` 총 네 곳에서 문구 "Sleep"이 "pleeS"로 표시됩니다. | ||
|
||
## 파일 헤더 | ||
|
||
".po"` 파일 상단의 헤더는 주석/msgid/msgstr 형식과 다른 유일한 부분입니다. | ||
|
||
이미 설정된 번역을 작업하는 경우에는 수정할 필요가 없습니다. | ||
|
||
새로 번역할 경우, 사용 중인 편집기, 또는 번역을 초기화할 때 권장되는 방식인 `msginit` 프로그램을 | ||
통해서 대부분 설정이 완료되어야 합니다(TRANSLATING.md 참조). | ||
|
||
다른 번역 파일에서 시작하는 경우에도 몇 가지 사항을 변경해야 할 수 있습니다. 가능한 한 최선을 다해 | ||
입력하세요. | ||
|
||
헤더는 다음과 같이 표시됩니다: | ||
|
||
``` | ||
# French translations for Cataclysm-DDA package. | ||
# Copyright (C) 2013 CleverRaven and Cataclysm-DDA contributors. | ||
# This file is distributed under the same license as the Cataclysm-DDA package. | ||
# Administrator <EMAIL@ADDRESS>, 2013. | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: 0.7-git\n" | ||
"Report-Msgid-Bugs-To: http://github.com/CleverRaven/Cataclysm-DDA\n" | ||
"POT-Creation-Date: 2013-08-01 13:44+0800\n" | ||
"PO-Revision-Date: 2013-08-01 14:02+0800\n" | ||
"Last-Translator: YOUR NAME <your@email.address>\n" | ||
"Language-Team: French\n" | ||
"Language: fr\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||
``` | ||
|
||
새로 번역을 시작하거나 기존 번역을 담당하고 있는 경우, 번역과 관련된 질문이나 문제가 있을 때 연락을 | ||
받을 수 있도록 이름과 이메일 주소를 기재하면 도움이 됩니다. | ||
|
||
수동으로 쉽게 작성할 수 없는 유일한 중요한 부분은 [`복수형 양식`](#복수형-양식) 항목입니다. 이 | ||
섹션은 귀하의 언어에서 다양한 수의 사물이 처리되는 방식을 결정합니다. 이에 대해서는 나중에 자세히 | ||
설명하겠습니다. | ||
|
||
## 문자열 및 줄 바꿈 서식 지정 | ||
|
||
일부 문자열에는 `%s`, `%2$d` 및 `\n`과 같은 특수 용어가 있습니다. | ||
|
||
`\n`은 줄 바꿈을 나타냅니다. 코드에서 줄 바꿈이 가능한 경우 줄을 감싸기 때문에 대부분 불필요하지만, | ||
때로는 다른 줄에 내용을 배치할 때 사용되기도 합니다. 번역에서 새 줄이 있어야 할 곳에 `\n`을 사용하면 | ||
됩니다. | ||
|
||
`%s` 및 기타 유사한 용어는 게임이 실행 중일 때 다른 용어로 대체됩니다. 번역에 따라 이러한 용어를 | ||
이동해야 할 수도 있습니다. 번역에서 `%`로 시작하는 모든 용어는 그대로 유지하는 것이 중요합니다. | ||
|
||
다음은 `%d`를 숫자로 대체한 예입니다: | ||
|
||
``` | ||
#: addiction.cpp:224 | ||
#, c-format | ||
msgid "" | ||
"Strength - %d; Perception - 1; Dexterity - 1;\n" | ||
"Depression and physical pain to some degree. Frequent cravings. Vomiting." | ||
msgstr "" | ||
";1 - ytiretxeD ;1 - noitpecreP ;%d - htgnertS\n" | ||
".gnitimoV .sgnivarc tneuqerF .eerged emos ot niap lacisyhp dna noisserpeD" | ||
``` | ||
|
||
여기서 `%d`가 반전되지 않고 `\n`이 줄 끝에 남아 있는 것이 중요합니다. 이 경우 메시지가 표시될 때 | ||
`%d`는 캐릭터의 힘 ( STR ) 수정자로 대체됩니다. | ||
|
||
경우에 따라 용어의 순서를 변경해야 할 수도 있습니다. 게임에 혼란을 줄 수 있으니까요. `%` 용어의 | ||
순서를 변경되면 모든 용어에 숫자를 추가해야 게임에서 어떤 것이 어떤 것인지 알 수 있습니다. 일부 | ||
문자열에는 이미 이러한 숫자가 있지만 그렇지 않은 문자열도 있을 수 있습니다. | ||
|
||
예를 들어 `%s가 %s를 쐈다!`가 들어 있는 문자열이 있으면 번역할 때 바뀔 수 있습니다. 아마도 | ||
`%s가 %s에게 쏘였다!`와 같이 될 것입니다. 하지만 지금은 거꾸로, 쏘는 사람이 맞는 사람과 바뀐 | ||
것입니다. | ||
|
||
이 경우 각 `%s`는 숫자(1~9)로 번호를 매긴 다음 `%`와 `s` 사이에 달러 기호( `$` )를 넣어야 합니다. | ||
예를 들어 `%1$s가 %2$s를 쐈다!`는 `%s가 %s를 쐈다!`와 동일합니다. 따라서 위의 번역 예제는 | ||
`%2$s가 %1$s에게 쏘였다!`가 될 수 있으며, 이 번역은 올바르게 작동합니다. | ||
|
||
게임에서 이러한 `%1$s` `%2$s` 매개변수를 자동으로 알아낼 수 있지만, (A): 번역의 모든 `%` 용어에 | ||
번호가 매겨져 있는지, (B): 영어 텍스트의 원래 순서에 따라 번호가 올바른지, 그 두 가지를 확인해야 | ||
합니다. | ||
|
||
예를 들자면: | ||
|
||
``` | ||
#: map.cpp:680 | ||
#, c-format | ||
msgid "%s loses control of the %s." | ||
msgstr "%2$s eht fo lortnoc sesol %1$s" | ||
``` | ||
|
||
게임 내에서 `아비게일`이 `트럭`을 운전하고 있다고 가정할 때 `kcurt eht fo lortnoc sesol liagibA`로 | ||
표시됩니다. | ||
|
||
## 문자열에 포함된 특수 태그 | ||
|
||
번역할 때 일부 문자열의 앞이나 안쪽에 특수 태그가 있을 수 있습니다. 이러한 태그는 그대로 두고 나머지 | ||
문자열만 번역해야 합니다. | ||
|
||
예를 들어, "data/raw/names.json"의 NPC 및 도시 이름 앞에는 단어와의 충돌을 피하기 위해 `<name>`이 | ||
붙습니다(예: 재료의 `Wood`, 성의 `Wood`). 이러한 경우 `<name>` 부분을 남겨 두어야 합니다. | ||
|
||
이하는 그 예시입니다: | ||
|
||
``` | ||
#. ~ proper name; gender=female; usage=given | ||
#: lang/json/json_names.py:6 | ||
msgid "<name>Abigail" | ||
msgstr "<name>liagibA" | ||
``` | ||
|
||
또한 이름 위에는 해당 이름이 게임 내에서 어떤 용도로 사용되는지 알려주는 주석이 표시됩니다. 예시의 | ||
경우 '아비게일'은 여성 NPC의 이름으로 사용할 수 있는 이름입니다. | ||
|
||
## 복수형 양식 | ||
|
||
많은 언어가 사물의 수에 따라 다른 용어를 사용합니다. 이러한 용어는 `".po"` 파일 헤더의 `Plural-Form` | ||
줄에 정의된 복수형을 사용하여 지원됩니다. | ||
|
||
이 경우 수에 따라 다른 형식을 위한 여러 개의 `msgstr` 줄이 있습니다. 게임은 개수에 따라 자동으로 | ||
올바른 형태를 선택합니다. | ||
|
||
이하는 그 예시입니다: | ||
|
||
``` | ||
#: melee.cpp:913 | ||
#, c-format | ||
msgid "%d enemy hit!" | ||
msgid_plural "%d enemies hit!" | ||
msgstr[0] "!tih ymene %d" | ||
msgstr[1] "!tih seimene %d" | ||
``` | ||
|
||
여기서 첫 번째 항목은 `enemy`가 하나만 있을 때, 두 번째 항목은 `enemies`이 하나보다 더 있을 때를 | ||
나타냅니다. 이 규칙은 언어마다 크게 다릅니다. | ||
|
||
> 역주: | ||
> | ||
> 한국어는 해당사항이 없습니다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: Language Specific Style Guide | ||
--- | ||
|
||
:::note{title="This section is a template."} | ||
|
||
As this page is for language-specific notes, it shouldn't be translated. Instead, it's used as a | ||
template. [Check here for examples.](#writing-style-guide-for-your-language) | ||
|
||
::: | ||
|
||
## How to write one for your language | ||
|
||
1. [Find your language code.](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) | ||
2. Create `doc/src/content/docs/{your-language-code}/i18n/explanation/style.md`. | ||
3. If it doesn't, add your language to `doc/astro.config.ts` file, for example: | ||
|
||
```diff | ||
diff --git a/doc/astro.config.ts b/doc/astro.config.ts | ||
index da91c2e0014..3dafa248a06 100644 | ||
--- a/doc/astro.config.ts | ||
+++ b/doc/astro.config.ts | ||
@@ -41,6 +41,7 @@ export default defineConfig({ | ||
locales: { | ||
en: { label: "English" }, | ||
ko: { label: "한국어", lang: "ko-KR" }, | ||
+ ru: { label: "Русский", lang: "ru-RU" }, | ||
}, | ||
logo: { src: "./src/assets/icon-round.svg" }, | ||
social: { github, discord }, | ||
``` | ||
|
||
In this example, it will allow russian language to be availble in language selector. Check | ||
[starlight](https://starlight.astro.build/guides/i18n/) for details. | ||
|
||
## Writing style guide for your language | ||
|
||
There's no restrictions on how or what to write in this file. For example, you could: | ||
|
||
- write language specific notes for other translaotrs to read | ||
- link to external resources or tools | ||
|
||
You could check out existing style guides for reference: | ||
|
||
- [Deutsch](../../../de/i18n/explanation/style.md) | ||
- [Russian](../../../ru/i18n/explanation/style.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
title: 영문 스타일 가이드 | ||
--- | ||
|
||
게임 내 텍스트를 추가하거나 편집할 때는 이하의 규칙을 따라주세요: | ||
|
||
1. 미국식 영어 철자를 사용합니다. | ||
|
||
2. 마침표 뒤에 두 문장 띄어쓰기를 사용합니다. 즉, 문장을 끝내는 마침표 뒤에 두 개의 공백이 뒤에 두 | ||
개의 공백이 와야 합니다. 문장이 텍스트 블록의 마지막 문장인 경우 그 뒤에 공백이 없어야 합니다. | ||
|
||
3. 2인칭 시점을 사용합니다(예: "you"). | ||
|
||
4. 특성, 무술, 소형 생체공학 모듈(Compact Bionic Modules, CBM)의 이름은 제목에 대문자로 표기해야 | ||
합니다. 즉, 관사, 전치사 또는 접속사가 아닌 한 각 단어는 대문자로 표기해야 합니다. | ||
|
||
5. 고유명사 이름의 항목과 개체도 제목에 대소문자를 사용해야 합니다. | ||
|
||
6. 다른 모든 항목 및 개체 이름은 모두 소문자로 표기합니다. | ||
|
||
7. 3개 이상의 대상을 나열할 때는 | ||
[연속 쉼표(옥스포드 쉼표)](https://en.wikipedia.org/wiki/Serial_comma)를 사용합니다. | ||
|
||
:::caution{title="연속 쉼표를 사용하지 않은 예"} | ||
|
||
A, B and C | ||
|
||
::: | ||
|
||
:::tip{title="연속 쉼표를 사용한 예"} | ||
|
||
A, B, and C | ||
|
||
::: | ||
|
||
8. 마침표 3개(...) 대신 줄임표 문자(…)를 사용합니다. 마침표가 세 개 있는 경우 줄임표 전용 유니코드 | ||
문자, 즉 U+2026으로 대체합니다. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: 관리자를 위한 번역 병합 및 관리하기 | ||
--- | ||
|
||
번역 파일을 올바르게 병합하고 유지 관리하려면 몇 가지 단계를 올바른 순서로 수행해야 합니다. | ||
|
||
이를 위해 제공되는 스크립트가 있으므로 대체로 다음과 같은 과정을 거치게 됩니다: | ||
|
||
1. 번역을 '.po' 형식으로 다운로드합니다. | ||
2. 번역 파일을 `lang/incoming/`에 넣고 `lang/po/`에 있는 파일과 이름이 일치하도록 합니다. | ||
3. `lang/update_pot.sh`를 실행하여 `lang/po/cataclysm-BN.pot`을 업데이트합니다(`polib` 및 | ||
`luaparser` 모듈이 설치된 파이썬이 필요함). | ||
4. `lang/merge_po.sh`를 실행하여 `lang/po/*.po`를 업데이트합니다. (로컬에서 번역을 테스트할 때만 | ||
쓰입니다. 지금은 Transifex로 프로젝트를 번역하기 때문입니다.) 이렇게 하면 `lang/incoming/`의 | ||
번역도 병합됩니다. | ||
|
||
이 단계만 거치면 번역 파일을 최신 상태로 유지할 수 있습니다. | ||
|
||
.po 파일을 `.mo` 파일로 컴파일하여 사용하려면 `lang/compile_mo.sh`를 실행합니다. 이 명령은 발견된 각 | ||
언어에 대해 `lang/mo/`에 디렉터리를 생성합니다. | ||
|
||
참고로 `lang/merge_po.sh`와 `lang/compile_mo.sh` 모두 병합 또는 컴파일할 언어를 지정하는 인수를 | ||
사용할 수 있습니다. 예를 들어 중국어 번체(zh_TW)에 대한 번역만 컴파일하려면 | ||
`lang/compile_mo.sh zh_TW`를 실행하면 됩니다. | ||
|
||
적절한 .mo 파일을 컴파일한 후, 게임 설정에서 해당 언어를 선택하면 카타클리즘을 실행할 때 해당 번역이 | ||
자동으로 사용됩니다. | ||
|
||
설정에서 `System language`를 선택한 경우, 게임은 언어 정의 파일 `data/raw/languages.json`을 기반으로 | ||
시스템 언어와 일치하는 언어를 사용하려고 시도합니다. | ||
|
||
새 언어에 대한 번역을 테스트 중이거나 설정에 해당 언어가 표시되지 않는 경우, 언어 정의 파일에 해당 | ||
언어에 대한 항목이 있는지 확인하세요. |
Oops, something went wrong.