์ด ํ์ด์ง์ ์ํ๋ AI ์ด์์คํดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์์ฝํฉ๋๋ค
๋ฒ์ ๊ธฐ๋ก
- "Init history"v9.0.02026. 6. 13.
์ด ํ์ด์ง์ ์ฝํ ์ธ ๋ AI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ญ๋์์ต๋๋ค.
์์ด ์๋ณธ ๋ด์ฉ์ ์ต์ ๋ฒ์ ์ ๋ณด๊ธฐ์ด ๋ฌธ์๋ฅผ ๊ฐ์ ํ ์์ด๋์ด๊ฐ ์์ผ์๋ฉด GitHub์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ์ฌ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํด ์ฃผ์ธ์.
๋ฌธ์์ ๋ํ GitHub ๋งํฌ๋ฌธ์์ Markdown์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
@intlayer/vue-i18n: vue-i18n ํธํ ์ด๋ํฐ
Vue ์ ํ๋ฆฌ์ผ์ด์
์ด ํ์ฌ vue-i18n์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์ปดํฌ๋ํธ๋ translation hooks๋ฅผ ๋ค์ ์์ฑํ์ง ์๊ณ Intlayer๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ ์ ์์ต๋๋ค. Intlayer๋ ๋ด๋ถ์ ์ผ๋ก Intlayer์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด์ vue-i18n์ API๋ฅผ ์๋ฒฝํ๊ฒ ๋ฐ์ํ๋ compat adapter๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํด์ผ ํ ์ผ
์์ํ๋ ค๋ฉด ํ๋ก์ ํธ์์ initialization ๋ช ๋ น์ ์คํํ์ธ์:
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
Initialization ์ค์ Intlayer๋ ์ค์ ํ์ผ (intlayer.config.ts)์ ์ค์ ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์
์ ์ํด ํ๋ก์ ํธ๋ฅผ ์ค๋นํฉ๋๋ค. vue-i18n imports๋ฅผ ์๋์ผ๋ก aliasํ๊ธฐ ์ํด Vite ์ค์ ์ Intlayer plugin์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง
vueI18nVitePlugin์ bundler์ module alias๋ฅผ ์ฃผ์
ํฉ๋๋ค. ์ฝ๋๋ฒ ์ด์ค์ vue-i18n import๋ ํฌ๋ช
ํ๊ฒ @intlayer/vue-i18n์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ๋ฉ๋๋ค.
๋ด๋ถ์ ์ผ๋ก adapter๋ ๋ณต์กํ vue-i18n ๊ตฌ๋ฌธ์ ๋ค์ดํฐ๋ธ๋ก ์ฒ๋ฆฌํฉ๋๋ค:
- Interpolation & Plurals:
{name}๊ณผ list{0}interpolations์ resolveํฉ๋๋ค. Pipe plurals ("car | cars")์ ์์น ์๋ฏธ๋ก ์ ๋ฐ๋ผ Intlayer enumeration/plural nodes๋ก ๋ณํ๋ฉ๋๋ค. - Formats:
d()์n()๊ฐ์ ํจ์๋ ๋ด๋ถ์ ์ผ๋กIntl์ ๋ํํ์ฌ options์ ์ ์๋datetimeFormats์numberFormats๋ฅผ ์ง์ํฉ๋๋ค. - Global & Local State:
global.locale์ Intlayer client์์ ์ง์๋๋WritableComputedRef๋ก ๋งคํ๋๋ฏ๋ก reactivity๋ ์ ํํ ์์๋๋ก ์๋ํฉ๋๋ค (์:locale.value = 'fr'). - Directives:
v-tdirective๋ ๋ฑ๋ก๋๊ณ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ ๊ณผ ์ ํํ ๋์ผํ๊ฒ ๊ณ์ ๋ ๋๋ง๋์ง๋ง ์ฝํ ์ธ ๋ Intlayer dictionaries๋ก ์ ๊ณต๋์ด type safety, ๋ ๋์ bundle optimization, seamless CMS integration์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋์์ ์๋์ง ์ดํดํ๋ ค๋ฉด JavaScript i18n์ ์ญ์ฌ๋ฅผ ์ฝ์ด๋ณด์ธ์.
