๋ฉ”์ธ ์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
Sonamu๋Š” ํƒ€์ž… ์•ˆ์ „ํ•œ ๋‹ค๊ตญ์–ด(i18n) ์‹œ์Šคํ…œ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SD (Sonamu Dictionary) ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ ํƒ€์ž„์— ํ‚ค ์˜คํƒ€๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , Entity ๋ผ๋ฒจ์„ ์ž๋™์œผ๋กœ ์ถ”์ถœํ•˜์—ฌ ๋ฒˆ์—ญ ์ž‘์—…์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ํŠน์ง•

  • ํƒ€์ž… ์•ˆ์ „์„ฑ: ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ‚ค ์‚ฌ์šฉ ์‹œ ์ปดํŒŒ์ผ ์—๋Ÿฌ
  • Entity ๋ผ๋ฒจ ์ž๋™ ์ถ”์ถœ: title, prop.desc, enum ๋ผ๋ฒจ์ด ์ž๋™์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ์— ํฌํ•จ
  • ํ•จ์ˆ˜ํ˜• ๊ฐ’ ์ง€์›: ๋™์  ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ((count) => \$๊ฐœโ€œ)
  • ํ•œ๊ตญ์–ด ํ—ฌํผ: ์กฐ์‚ฌ ์ฒ˜๋ฆฌ(์€/๋Š”, ์ด/๊ฐ€), ๋ณต์ˆ˜ํ˜• ๋“ฑ
  • Excel import/export: Sonamu UI์—์„œ ๋ฒˆ์—ญ ํŒŒ์ผ ๊ด€๋ฆฌ
  • Locale๋ณ„ ์ปฌ๋Ÿผ ์ง€์›: name_ko, name_en ๊ฐ™์€ ๋‹ค๊ตญ์–ด DB ์ปฌ๋Ÿผ

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

์ž๋™ ์ƒ์„ฑ ํŒŒ์ผ

sd.generated.ts๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:
ํ•ญ๋ชฉ์„ค๋ช…์˜ˆ์‹œ ํ‚ค
Entity ํƒ€์ดํ‹€Entity์˜ title ์†์„ฑentity.User
Prop ๋ผ๋ฒจprop์˜ desc ์†์„ฑentity.User.email
Enum ๋ผ๋ฒจenumLabels ์ •์˜enum.UserRole.admin
SD ํ•จ์ˆ˜ํƒ€์ž… ์•ˆ์ „ํ•œ ๋ฒˆ์—ญ ํ•จ์ˆ˜-
localizedColumnDB ์ปฌ๋Ÿผ ๋‹ค๊ตญ์–ด ์ง€์›-

์›Œํฌํ”Œ๋กœ์šฐ

  1. Entity์—์„œ title, prop.desc, enumLabels ์ •์˜
  2. pnpm sync ์‹คํ–‰ ์‹œ sd.generated.ts ์ž๋™ ์ƒ์„ฑ
  3. ko.ts, en.ts์—์„œ ํ”„๋กœ์ ํŠธ ๋”•์…”๋„ˆ๋ฆฌ ์ž‘์„ฑ
  4. SD("key") ํ•จ์ˆ˜๋กœ ํ˜„์žฌ locale์— ๋งž๋Š” ํ…์ŠคํŠธ ์‚ฌ์šฉ