sonamu.config.ts μ€μ
sonamu.config.tsμμ i18n μ΅μ
μ νμ±νν©λλ€:
λλ ν 리 ꡬ쑰
i18nμ νμ±ννλ©΄api/src/i18n/ λλ ν λ¦¬κ° νμν©λλ€:
λμ λ리 νμΌ μμ±
defaultLocale λμ λ리 (ko.ts)
λ€λ₯Έ locale λμ λ리 (en.ts)
defineLocaleμ sd.generated.tsμμ exportλλ©°, defaultLocaleμ ν€λ₯Ό κΈ°μ€μΌλ‘ νμ
체ν¬λ₯Ό
μ 곡ν©λλ€.Locale μ€μ
νλ‘ νΈμλ (ν΄λΌμ΄μΈνΈ)
sd.generated.tsμλ ν΄λΌμ΄μΈνΈ μΈ‘ locale κ΄λ¦¬λ₯Ό μν setLocaleκ³Ό getCurrentLocale ν¨μκ° ν¬ν¨λ©λλ€:
sonamu.shared.tsμ axios interceptorκ° λͺ¨λ API μμ²μ Accept-Language ν€λλ₯Ό μλμΌλ‘ μΆκ°ν©λλ€:
setLocale("en")μ νΈμΆν λ€μ λͺ¨λ API μμ²μ Accept-Language: en ν€λλ₯Ό ν¬ν¨ν©λλ€.
λ°±μλ (μλ²)
μμ²λ³λ‘ localeμ μ€μ νλ €λ©΄ λ―Έλ€μ¨μ΄μμ Contextλ₯Ό ꡬμ±ν©λλ€:ν΄λΌμ΄μΈνΈμμ
setLocale()λ‘ localeμ μ€μ νλ©΄, axios interceptorκ° Accept-Language ν€λλ₯Ό
μλ μ λ¬νκ³ , μλ²μ locale λ―Έλ€μ¨μ΄κ° μ΄λ₯Ό μ½μ΄ SD() νΈμΆ μ ν΄λΉ μΈμ΄μ λ²μμ λ°νν©λλ€.
λ³λμ μΆκ° μ€μ μμ΄ ν΄λΌμ΄μΈνΈ-μλ² κ° localeμ΄ λκΈ°νλ©λλ€.μ΄κΈ°ν νμΈ
μ€μ μ΄ μλ£λλ©΄pnpm syncλ₯Ό μ€ννμ¬ sd.generated.tsκ° μμ±λλμ§ νμΈν©λλ€:
sd.generated.tsμλ λ€μμ΄ ν¬ν¨λ©λλ€:
- Entityμμ μΆμΆν λΌλ²¨ (
entityLabels) SD()ν¨μlocalizedColumn()ν¨μdefineLocale()ν¨μ
SD ν¨μ μ¬μ©λ²
λμ
λ리 μμ± λ° μ¬μ©
Entity λΌλ²¨
μλ μΆμΆλλ λΌλ²¨