Cursor IDE์ ์ค์ ํ์ด์ง(Cursor Settings)๋ฅผ ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ ๋๊ตฌ์ ๋๋ค.
ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์: ์์ค ํจ์น(์ ์ ๋ฌธ์์ด) + ๋ฐํ์ DOM ๋ฒ์ญ(๋์ ๋ฌธ์์ด)์ ์กฐํฉํฉ๋๋ค.
- macOS ๋๋ Windows
- Python 3.10+
- Cursor IDE
| OS | ๊ธฐ๋ณธ ํ์ง ๊ฒฝ๋ก |
|---|---|
| macOS | /Applications/Cursor.app/Contents/Resources/app |
| Windows | %LOCALAPPDATA%\Programs\Cursor\resources\app ๋๋ %ProgramFiles%\Cursor\resources\app |
๋ค๋ฅธ ๊ฒฝ๋ก์ ์ค์น๋ ๊ฒฝ์ฐ --cursor-path ์ต์
์ผ๋ก ์ง์ ์ง์ ํ ์ ์์ต๋๋ค. Windows์์ ํ์ผ ์์ ์ ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํ ์ ์์ต๋๋ค.
cd cursor-korean-patch
python3 src/repatch.pyWindows (PowerShell ๋๋ CMD):
cd cursor-korean-patch
python src\repatch.py์ด ๋ช ๋ น์ด ๋ค์์ ํ ๋ฒ์ ์ํํฉ๋๋ค:
- ์ด์ ํจ์น ๋ณต์
- ๋ฌธ์์ด ์ถ์ถ โ
translations/strings.json - ๋ฏธ๋ฒ์ญ ๊ฐ์ง โ
translations/untranslated.json - ์์ค ํจ์น + ๋ฐํ์ ๋ฒ์ญ ์ ์ฉ
python3 src/extract.py # ๋ฌธ์์ด ์ถ์ถ
python3 src/patch.py -d translations/ko.json # ํจ์น ์ ์ฉ (runtime_ko.json ์๋ ํฌํจ)ํจ์น๊ฐ ์ด๋ฏธ ์ ์ฉ๋ workbench.desktop.main.js๋ง ์๊ณ ์น์
๋ง์ปค๊ฐ ๊นจ์ง ๊ฒฝ์ฐ, ์๋ณธ ๋ฐฑ์
์์ ์ถ์ถํฉ๋๋ค.
python3 src/extract.py --workbench "/path/to/Cursor/resources/app/out/vs/workbench/workbench.desktop.main.js.bak" -o translations/strings.jsonpython3 src/repatch.py --cursor-path /path/to/Cursor/resources/app
# Windows ์์:
python src\repatch.py --cursor-path "C:\Users\์ฌ์ฉ์\AppData\Local\Programs\Cursor\resources\app"python3 src/patch.py --revert
# Windows: python src\patch.py --revert- macOS:
./scripts/run.sh(bash) - Windows:
scripts\run.bat(CMD)
python3 src/patch.py -d translations/ko.json --dry-runCursor ์
๋ฐ์ดํธ ์ workbench.desktop.main.js๊ฐ ๋ฎ์ด์์์ง๋๋ค.
python3 src/repatch.py์คํtranslations/untranslated.json์ ์ ๊ท ๋ฌธ์์ด์ด ์์ผ๋ฉด ๋ฒ์ญ (untranslated_hints.json์${...}์ ๋ฏธ์ฌ ๋ฑ์ผ๋กko.json๊ณผ ์ ๋ง์ ๋ ์ฐธ๊ณ )- ๋ฒ์ญ ๊ฒฐ๊ณผ๋ฅผ
ko.json๋๋runtime_ko.json์ ์ถ๊ฐ (์๋ ๋ถ๋ฅ ๊ธฐ์ค ์ฐธ๊ณ ) python3 src/repatch.py --translate-and-patch์คํ- Cursor ์ฌ์์
์์ด์ ํธ์๊ฒ ์์ฒญ ์์: "cursor-korean-patch ์ฌํจ์นํด์ค"
| ๋ฐฉ์ | ํ์ผ | ๋์ | ํน์ง |
|---|---|---|---|
| ์์ค ํจ์น | ko.json |
์ ์ ๋ฌธ์์ด (๋ฐ์ดํ, ์์ฑ๊ฐ) | ๊น๋ฐ์ ์์, ์ฆ์ ์ ์ฉ |
| ๋ฐํ์ ๋ฒ์ญ | runtime_ko.json |
${๋ณ์} ํฌํจ, ๋จ์ด ํ๋์ง๋ฆฌ(Open, Cancel ๋ฑ) |
MutationObserver๋ก DOM ์ค์๊ฐ ๋ฒ์ญ |
- ๋จ์ด ํ๋์ง๋ฆฌ(Open, Cancel, Default ๋ฑ)๋ ํ์ผ ์ ์ฒด์์ ์๋ฐฑ ๋ฒ ๋ฑ์ฅํ๋ฏ๋ก ์์ค ํจ์น ๋ถ๊ฐ โ ๋ฐํ์๋ง ์ฌ์ฉ
${๋ณ์}ํฌํจ ๋ฌธ์์ด์ ๋ฐํ์ ์ ์ฉ
๋ฏธ๋ํ์ด ์ ๋ณ์๋ช
์ด ๋ฒ์ ๋ง๋ค ๋ฐ๋๋๋ค (์: 2.5.20 WPl, 2.5.25 bLl).
์ค์ ์น์
์ general:"General" ํจํด์ผ๋ก ํ์งํ๋ฏ๋ก ์ ๋ฒ์ ์์๋ ๋์ํฉ๋๋ค.
cursor-korean-patch/
โโโ src/
โ โโโ extract.py # ๋ฌธ์์ด ์ถ์ถ (Solid Fe() ํ
ํ๋ฆฟ, getter, return, dropdown ๋ฑ)
โ โโโ patch.py # ์์ค ํจ์น + ๋ฐํ์ ์ฃผ์
โ โโโ repatch.py # ํตํฉ ํ์ดํ๋ผ์ธ (๊ถ์ฅ)
โ โโโ diff.py # ๋ฏธ๋ฒ์ญ ๊ฐ์ง
โ โโโ runtime_inject.js # ๋ฐํ์ ๋ฒ์ญ ์คํฌ๋ฆฝํธ
โโโ scripts/
โ โโโ run.sh # macOS ์ํด๋ฆญ ์คํฌ๋ฆฝํธ
โ โโโ run.bat # Windows ์ํด๋ฆญ ์คํฌ๋ฆฝํธ
โโโ translations/
โ โโโ strings.json # ์ถ์ถ๋ ์์ด ๋ฌธ์์ด
โ โโโ ko.json # ์์ค ํจ์น ๋ฒ์ญ ์ฌ์
โ โโโ runtime_ko.json # ๋ฐํ์ ๋ฒ์ญ ์ฌ์
โ โโโ untranslated.json # ๋ฏธ๋ฒ์ญ ๋ฌธ์์ด (repatch ์ ์์ฑ)
โ โโโ untranslated_hints.json # ko ์ ๋์ฌ/๋์ ์ ๋ฏธ์ฌ ํํธ (์์ ๋๋ง)
โโโ .cursor/rules/
โ โโโ korean-patch.mdc # ์์ด์ ํธ ์ฌํจ์น ์ง์นจ
โโโ TRANSLATE_PROMPT.md # AI ๋ฒ์ญ ์์ด์ ํธ ์์ธ ์ง์์ฌํญ
โโโ README.md