diff --git a/README_KR.md b/README_KR.md
new file mode 100644
index 0000000..e47915b
--- /dev/null
+++ b/README_KR.md
@@ -0,0 +1,77 @@
+# Textractor
+
+![How it looks](screenshot.png)
+
+[Español](README_ES.md) ● [简体中文](README_SC.md) ● [日本語](README_JP.md) ● [Русский](README_RU.md) ● [Bahasa](README_ID.md) ● [Português](README_PT.md) ● [ไทย](README_TH.md)
+
+**Textractor** (a.k.a. NextHooker)는 Windows/Wine에서 작동하는 [ITHVNR](http://www.hongfire.com/forum/showthread.php/438331-ITHVNR-ITH-with-the-VNR-engine)을 기반으로 한 오픈소스 x86/x64 비디오게임 텍스트 후커 입니다.
+빠른 사용법의 이해를 위해 [tutorial video](https://tinyurl.com/textractor-tutorial) 를 참고하세요.
+
+[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=akashmozumdar%40gmail.com&item_name=Textractor%20development¤cy_code=USD)
+
+## 다운로드
+
+[여기](https://github.com/Artikash/Textractor/releases)에서 Textractor 최신버전을 받으실 수 있습니다.
+최신버전의 ITHVNR은 [여기](https://drive.google.com/open?id=13aHF4uIXWn-3YML_k2YCDWhtGgn5-tnO)서 받을 수 있습니다.
+Textractor 실행오류를 겪는다면 vcredist를 실행해 보시기 바랍니다.
+
+## 특징
+
+- 높은 확장성과 커스터마이즈
+- 많은 게임엔진의 자동 후킹이 가능 (몇몇의 VNR로 후킹 불가능한 경우도 포함)
+- /H "hook" 코드를 통한 후킹 (많은 AGTH 코드가 지원됨)
+- /R "read" 코드를 통해 직접적으로 텍스트 추출이 가능
+
+## 지원
+
+버그나, 후킹에 문제가 있는 게임이나, 기능요청 혹은 제안들을 알려주시기 바랍니다.
+특정 게임의 문제해결을 위하여 해당게임을 무료로 받을 수 있는 링크나 [Steam](https://steamcommunity.com/profiles/76561198097566313/)을 통한 제공을 받고 있습니다.
+
+## 확장기능
+
+어떻게 확장기능을 만드는지 [Example Extension project](https://github.com/Artikash/ExampleExtension) 을 확인해 보시기 바랍니다.
+확장기능 폴더를 확인해 확장기능들이 어떤 역할들을 하는지 알아보세요.
+
+## 기여
+
+모든 기여자들에게 감사하고 있습니다! 코드베이스에 궁금한 점이 있다면 akashmozumdar@gmail.com 에 이메일 해 주시기 바랍니다.
+
+## 컴파일링
+
+*Textractor*를 컴파일링 하기 전에, Qt version 5.11과 CMake를 포함한 Visual Studio가 있어야 합니다.
+그 이후로는, 단순히 Visual Studio를 통해 폴더를 열고 빌드하는 것으로 실행이 가능합니다.
+
+## 프로젝트 아키텍쳐
+
+The host (see GUI/host folder) injects texthook.dll (created from the texthook folder) into the target process and connects to it via 2 pipe files.
+Host writes to hostPipe, texthook writes to hookPipe.
+texthook waits for the pipe to be connected, then injects a few instructions into any text outputting functions (e.g. TextOut, GetGlyphOutline) that cause their input to be sent through the pipe.
+Additional information about hooks is exchanged via shared memory.
+The text that the host receives through the pipe is then processed a little before being dispatched back to the GUI.
+Finally, the GUI dispatches the text to extensions before displaying it.
+
+## 개발자들
+
+이하의 리스트에서 링크변경이 필요하다면 연락주시기 바랍니다.
+- Textractor mainly made by [Me](https://github.com/Artikash) with the help of
+ - [DoumanAsh](https://github.com/DoumanAsh)
+ - [Niakr1s](https://github.com/Niakr1s)
+ - [tinyAdapter](https://github.com/tinyAdapter)
+- Spanish translation by [scese250](https://github.com/scese250)
+- Turkish translation by niisokusu
+- Simplified Chinese translation by [tinyAdapter](https://github.com/tinyAdapter)
+- Russian translation by [TokcDK](https://github.com/TokcDK)
+- Indonesian translation by [Hawxone](https://github.com/Hawxone)
+- Portuguese translation by [TsumiHokiro](https://github.com/TsumiHokiro)
+- Thai translation by [azmadoppler](https://github.com/azmadoppler)
+- ITHVNR updated by [mireado](https://github.com/mireado), [Eguni](https://github.com/Eguni), and [IJEMIN](https://github.com/IJEMIN)
+- ITHVNR originally made by [Stomp](http://www.hongfire.com/forum/member/325894-stomp)
+- VNR engine made by [jichi](https://archive.is/prJwr)
+- ITH updated by [Andys](https://github.com/AndyScull)
+- ITH originally made by [kaosu](http://www.hongfire.com/forum/member/562651-kaosu)
+- Locale Emulator library made by [xupefei](https://github.com/xupefei)
+- MinHook library made by [TsudaKageyu](https://github.com/TsudaKageyu)
+
+## Special Thanks
+
+- Everybody adding issues!
diff --git a/text.cpp b/text.cpp
index 31c4d22..341732c 100644
--- a/text.cpp
+++ b/text.cpp
@@ -3,6 +3,7 @@
#else
#define ARCH "x86"
#endif
+
const char* ATTACH = u8"Attach to game";
const char* LAUNCH = u8"Launch game";
const char* DETACH = u8"Detach from game";
@@ -424,8 +425,8 @@ I'm currently looking for a new job: email me if you know anyone hiring US softw
EXTRA_WINDOW_INFO = u8R"(Правый клик для изменения настроек
Нажмите и перетащите за края - для перемещения, или за правый-нижний угол - для изменения размера)";
TOPMOST = u8"Поверх всех окон";
- SHOW_ORIGINAL = u8"Исходный текст";
- SHOW_ORIGINAL_INFO = u8R"(Исходный текст будет скрыт
+ SHOW_ORIGINAL = u8"Исходный текст";
+ SHOW_ORIGINAL_INFO = u8R"(Исходный текст будет скрыт
Работает только если это расширение используется после расширения перевода)";
SIZE_LOCK = u8"Фиксированный размер";
BG_COLOR = u8"Цвет заднего фона";
@@ -572,8 +573,8 @@ Estou a procura de um novo trabalho: por favor enviê-me uma mensagem de e-mail
Se você gostou desse projeto, divulgue a todos :))";
UPDATE_AVAILABLE = L"Atualização disponível: baixe em https://github.com/Artikash/Textractor/releases";
ALREADY_INJECTED = L"Textractor: já está injetado";
- NEED_32_BIT = L"Textractor: arquitetura errada: apenas o Textractor x86 pode injetar neste processo";
- NEED_64_BIT = L"Textractor: arquitetura errada: apenas o Textractor x64 pode injetar neste processo";
+ NEED_32_BIT = L"Textractor: arquitetura errada: apenas o Textractor x86 pode injetar neste processo";
+ NEED_64_BIT = L"Textractor: arquitetura errada: apenas o Textractor x64 pode injetar neste processo";
INJECT_FAILED = L"Textractor: não pode injetar";
LAUNCH_FAILED = L"Textractor: não pode iniciar";
INVALID_CODE = L"Textractor: código inválido";
@@ -596,29 +597,29 @@ Se você gostou desse projeto, divulgue a todos :))";
SELECT_LANGUAGE_MESSAGE = u8"Qual lingua deve o/a %1 traduzir para?";
TOO_MANY_TRANS_REQUESTS = L"Foram feitos pedidos de tradução demais: recusa na feitura de mais pedidos";
TRANSLATION_ERROR = L"Erro enquanto traduzindo";
- EXTRA_WINDOW_INFO = u8R"(Clique com o botão direito para mudar as opções
+ EXTRA_WINDOW_INFO = u8R"(Clique com o botão direito para mudar as opções
Clique e arraste nas beiradas da janela para mover, ou no canto inferior direito para redimessionar)";
TOPMOST = u8"Sempre em cima";
- SHOW_ORIGINAL = u8"Texto original";
- SHOW_ORIGINAL_INFO = u8R"(Texto original não será mostrado
+ SHOW_ORIGINAL = u8"Texto original";
+ SHOW_ORIGINAL_INFO = u8R"(Texto original não será mostrado
Apenas funciona se essa extensão for usada diretamente após uma extensão de tradução)";
- SIZE_LOCK = u8"Travar o Tamanho";
- BG_COLOR = u8"Cor de fundo";
- TEXT_COLOR = u8"Cor do Texto";
- FONT = u8"Fonte";
- REGEX_FILTER = u8"Fíltro regex";
- INVALID_REGEX = u8"Regex inválido";
- CURRENT_FILTER = u8"Atualmente filtrando: %1";
- REPLACER_INSTRUCTIONS = LR"(Este arquivo apenas faz algo quando a extensão "Replacer" está sendo utilizada.
+ SIZE_LOCK = u8"Travar o Tamanho";
+ BG_COLOR = u8"Cor de fundo";
+ TEXT_COLOR = u8"Cor do Texto";
+ FONT = u8"Fonte";
+ REGEX_FILTER = u8"Fíltro regex";
+ INVALID_REGEX = u8"Regex inválido";
+ CURRENT_FILTER = u8"Atualmente filtrando: %1";
+ REPLACER_INSTRUCTIONS = LR"(Este arquivo apenas faz algo quando a extensão "Replacer" está sendo utilizada.
Comandos de substituição devem ser formatos da seguinte maneira:
|ORIG|texto_original|BECOMES|texto_substituido|END|
Todo texto fora de um comando de substituição é ignorado.
Espaços contidos no texto original serão ignorados, mas o texto substituído pode conter espaços, novas línhas, etc.
Esse arquívo deve ser codifícado em (UTF-16 little endian).)";
- THREAD_LINKER = u8"Ligador de Threads";
- LINK = u8"Ligar";
- THREAD_LINK_FROM = u8"Número do thread para ligar de";
- THREAD_LINK_TO = u8"Número do thread para ligar para";
+ THREAD_LINKER = u8"Ligador de Threads";
+ LINK = u8"Ligar";
+ THREAD_LINK_FROM = u8"Número do thread para ligar de";
+ THREAD_LINK_TO = u8"Número do thread para ligar para";
#endif // PORTUGUESE
#ifdef THAI
@@ -647,10 +648,10 @@ Esse arquívo deve ser codifícado em (UTF-16 little endian).)";
ถ้าหากพบเจอปัญหาสามารถติดต่อมาได้ รวมไปถึงการแนะนำฟังก์ชั้นที่อยากให้มี หรือ คำถามเกี่ยวกับโปรแกรม Textractor สามารถติดต่อ
ผ่านหน้าเว็บไซต์หลักผ่านทางหน้า Issue หรือทางอีเมลล์
Source code สามารถหาได้จากส่วนของ GPLv3 ที่หน้าหลักของเว็บไซต์)";
- UPDATE_AVAILABLE = L"มีอัพเดทใหม่ : สามารถดาวน์โหลดได้จาก https://github.com/Artikash/Textractor/releases";
+ UPDATE_AVAILABLE = L"มีอัพเดทใหม่ : สามารถดาวน์โหลดได้จาก https://github.com/Artikash/Textractor/releases";
ALREADY_INJECTED = L"Textractor: ได้ถูกเชื่อมแล้ว";
- NEED_32_BIT = L"ระบบปฏิบัติการ Textractor ไม่ถูกต้อง : เฉพาะ Textractor x86 เท่านั่นสามารถเชื่อม Process นี้ได้";
- NEED_64_BIT = L"ระบบปฏิบัติการ Textractor ไม่ถูกต้อง : เฉพาะ Textractor x64 เท่านั่นสามารถเชื่อม Process นี้ได้";
+ NEED_32_BIT = L"ระบบปฏิบัติการ Textractor ไม่ถูกต้อง : เฉพาะ Textractor x86 เท่านั่นสามารถเชื่อม Process นี้ได้";
+ NEED_64_BIT = L"ระบบปฏิบัติการ Textractor ไม่ถูกต้อง : เฉพาะ Textractor x64 เท่านั่นสามารถเชื่อม Process นี้ได้";
INJECT_FAILED = L"Textractor: ไม่สามารถเชื่อมได้";
LAUNCH_FAILED = L"Textractor: ไม่สามารถเริ่มได้";
INVALID_CODE = L"Textractor: รหัสไม่ถูกต้อง";
@@ -682,5 +683,82 @@ Source code สามารถหาได้จากส่วนของ GPLv
FONT = u8"ฟ้อนต์";
#endif // THAI
+#ifdef KOREAN
+ ATTACH = u8"게임에 부착";
+ LAUNCH = u8"게임 실행";
+ DETACH = u8"게임에서 탈착";
+ FORGET = u8"게임 저장정보 삭제";
+ ADD_HOOK = u8"후킹주소 추가";
+ REMOVE_HOOKS = u8"후킹주소 삭제";
+ SAVE_HOOKS = u8"후킹주소 저장";
+ SEARCH_FOR_HOOKS = u8"후킹주소 찾기";
+ SETTINGS = u8"설정";
+ EXTENSIONS = u8"확장기능";
+ SELECT_PROCESS = u8"프로세스 선택";
+ ATTACH_INFO = u8R"(부착하려는 게임이 보이지 않는다면, 관리자 권한으로 실행해보세요. 프로세스 id를 입력 할 수도 있습니다.)";
+ SELECT_PROCESS_INFO = u8"직접 프로세스파일 이름을 타이핑한다면, 정확한 경로를 입력하세요";
+ FROM_COMPUTER = u8"컴퓨터로부터 선택";
+ PROCESSES = u8"프로세스 (*.exe)";
+ SAVE_SETTINGS = u8"설정 저장";
+ EXTEN_WINDOW_INSTRUCTIONS = u8R"(확장기능을 추가하려면 리스트에서 오른쪽 클릭하거나
+ 폴더에서 드래그하세요.
+확장기능 순서를 변경하려면 리스트에서 드래그합니다.
+(확장기능은 위부터 순서대로 작동합니다.)
+확장기능을 삭제하려면 delete 를 누르세요.)";
+ ADD_EXTENSION = u8"확장기능 추가";
+ INVALID_EXTENSION = u8"%1 은 유효하지 않은 확장기능입니다.";
+ CONFIRM_EXTENSION_OVERWRITE = u8"다른버전의 동일한 확장기능이 존재합니다. 덮어씌우시겠습니까?";
+ EXTENSION_WRITE_ERROR = u8"확장기능을 저장하는데 실패하였습니다.";
+ USE_JP_LOCALE = u8"일본어 로케일로 에뮬레이트합니까?";
+ HOOK_SEARCH_UNSTABLE_WARNING = u8"후킹주소 찾기는 불안정합니다! 게임의 강제종료에 대비하세요!";
+ SEARCH_CJK = u8"한국어/일본어/중국어 찾기";
+ CODEPAGE = u8"코드페이지";
+ SEARCH_FOR_TEXT = u8"특정 텍스트 찾기";
+ START_HOOK_SEARCH = u8"주소찾기 시작";
+ SAVE_SEARCH_RESULTS = u8"찾기결과 저장";
+ DOUBLE_CLICK_TO_REMOVE_HOOK = u8"더블클릭으로 주소 제거";
+ FILTER_REPETITION = u8"반복문 필터";
+ AUTO_ATTACH = u8"자동 부착";
+ ATTACH_SAVED_ONLY = u8"자동 부착 (저장된 게임만)";
+ SHOW_SYSTEM_PROCESSES = u8"시스템 프로세스 보기";
+ DEFAULT_CODEPAGE = u8"기본 코드페이지";
+ FLUSH_DELAY = u8"플러시 딜레이";
+ MAX_BUFFER_SIZE = u8"최대 버퍼 크기";
+ MAX_HISTORY_SIZE = u8"최대 히스토리 크기";
+ CONSOLE = L"콘솔";
+ CLIPBOARD = L"클립보드";
+ UPDATE_AVAILABLE = L"업데이트가 있습니다:https://github.com/Artikash/Textractor/releases";
+ ALREADY_INJECTED = L"Textractor: 이미 부착되어 있습니다";
+ NEED_32_BIT = L"Textractor: 아키텍쳐 불일치: Textractor x86을 사용해야 합니다";
+ NEED_64_BIT = L"Textractor: 아키텍쳐 불일치: Textractor x64을 사용해야 합니다";
+ INJECT_FAILED = L"Textractor: 부착할 수 없습니다";
+ LAUNCH_FAILED = L"Textractor: 실행할 수 없습니다";
+ INVALID_CODE = L"Textractor: 유효하지 않은 코드";
+ INVALID_CODEPAGE = L"Textractor: 텍스트를 변환할 수 없습니다 (유효하지 않은 코드페이지?)";
+ SELECT_LANGUAGE = u8"언어 선택";
+ SELECT_LANGUAGE_MESSAGE = u8"어떤 언어로 %1 번역하시겠습니까?";
+ TOO_MANY_TRANS_REQUESTS = L"너무 많은 번역요청: 요청 거부됨";
+ TRANSLATION_ERROR = L"번역 에러";
+ EXTRA_WINDOW_INFO = u8R"(오른쪽 클릭으로 설정변경
+드래그로 창 이동이 가능하고, 오른쪽 모서리에서 크기조절이 가능)";
+ TOPMOST = u8"항상 위";
+ SHOW_ORIGINAL = u8"원문";
+ SHOW_ORIGINAL_INFO = u8R"(원문이 출력되지 않음
+이 확장기능이 번역확장기능 이후에 사용될때만 동작함)";
+ SIZE_LOCK = u8"사이즈 고정";
+ BG_COLOR = u8"배경색";
+ TEXT_COLOR = u8"글씨색";
+ FONT = u8"폰트";
+ REGEX_FILTER = u8"정규식 필터";
+ INVALID_REGEX = u8"유효하지 않은 정규식";
+ CURRENT_FILTER = u8"현재 필터중: %1";
+ REPLACER_INSTRUCTIONS = LR"(이 파일은 "Replacer" 확장기능이 작동중일때만 사용됨.
+Replacement commands는 아래 형식을 따라야 함:
+|ORIG|original_text|BECOMES|replacement_text|END|
+이 파일에서 replacement command 바깥의 텍스트는 무시됨.
+original_text의 빈공간은 무시되지만, replacement_text는 공백과 엔터등을 포함 가능.
+이 파일은 유니코드로 저장되어야만 함 (UTF-16 little endian).)";
+#endif // KOREAN
+
return 0;
}();