Skip to content

Latest commit

ย 

History

History
132 lines (97 loc) ยท 4.63 KB

File metadata and controls

132 lines (97 loc) ยท 4.63 KB

Cursor Settings ํ•œ๊ธ€ ํŒจ์น˜

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.py

Windows (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.json

๊ฒฝ๋กœ ์ง์ ‘ ์ง€์ • (์ž๋™ ํƒ์ง€ ์‹คํŒจ ์‹œ)

python3 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)

Dry Run (์‹œ๋ฎฌ๋ ˆ์ด์…˜)

python3 src/patch.py -d translations/ko.json --dry-run

Cursor ์—…๋ฐ์ดํŠธ ํ›„

Cursor ์—…๋ฐ์ดํŠธ ์‹œ workbench.desktop.main.js๊ฐ€ ๋ฎ์–ด์”Œ์›Œ์ง‘๋‹ˆ๋‹ค.

  1. python3 src/repatch.py ์‹คํ–‰
  2. translations/untranslated.json์— ์‹ ๊ทœ ๋ฌธ์ž์—ด์ด ์žˆ์œผ๋ฉด ๋ฒˆ์—ญ (untranslated_hints.json์€ ${...} ์ ‘๋ฏธ์‚ฌ ๋“ฑ์œผ๋กœ ko.json๊ณผ ์•ˆ ๋งž์„ ๋•Œ ์ฐธ๊ณ )
  3. ๋ฒˆ์—ญ ๊ฒฐ๊ณผ๋ฅผ ko.json ๋˜๋Š” runtime_ko.json์— ์ถ”๊ฐ€ (์•„๋ž˜ ๋ถ„๋ฅ˜ ๊ธฐ์ค€ ์ฐธ๊ณ )
  4. python3 src/repatch.py --translate-and-patch ์‹คํ–‰
  5. Cursor ์žฌ์‹œ์ž‘

์—์ด์ „ํŠธ์—๊ฒŒ ์š”์ฒญ ์˜ˆ์‹œ: "cursor-korean-patch ์žฌํŒจ์น˜ํ•ด์ค˜"

์•„ํ‚คํ…์ฒ˜

๋ฐฉ์‹ ํŒŒ์ผ ๋Œ€์ƒ ํŠน์ง•
์†Œ์Šค ํŒจ์น˜ ko.json ์ •์  ๋ฌธ์ž์—ด (๋”ฐ์˜ดํ‘œ, ์†์„ฑ๊ฐ’) ๊นœ๋ฐ•์ž„ ์—†์Œ, ์ฆ‰์‹œ ์ ์šฉ
๋Ÿฐํƒ€์ž„ ๋ฒˆ์—ญ runtime_ko.json ${๋ณ€์ˆ˜} ํฌํ•จ, ๋‹จ์–ด ํ•˜๋‚˜์งœ๋ฆฌ(Open, Cancel ๋“ฑ) MutationObserver๋กœ DOM ์‹ค์‹œ๊ฐ„ ๋ฒˆ์—ญ
  • ๋‹จ์–ด ํ•˜๋‚˜์งœ๋ฆฌ(Open, Cancel, Default ๋“ฑ)๋Š” ํŒŒ์ผ ์ „์ฒด์—์„œ ์ˆ˜๋ฐฑ ๋ฒˆ ๋“ฑ์žฅํ•˜๋ฏ€๋กœ ์†Œ์Šค ํŒจ์น˜ ๋ถˆ๊ฐ€ โ†’ ๋Ÿฐํƒ€์ž„๋งŒ ์‚ฌ์šฉ
  • ${๋ณ€์ˆ˜} ํฌํ•จ ๋ฌธ์ž์—ด์€ ๋Ÿฐํƒ€์ž„ ์ „์šฉ

Cursor ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ

๋ฏธ๋‹ˆํŒŒ์ด ์‹œ ๋ณ€์ˆ˜๋ช…์ด ๋ฒ„์ „๋งˆ๋‹ค ๋ฐ”๋€๋‹ˆ๋‹ค (์˜ˆ: 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