์ด ํ์ด์ง์ ์ํ๋ AI ์ด์์คํดํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ฅผ ์์ฝํฉ๋๋ค
์ด ๋ฌธ์๋ ์ค๋๋์์ต๋๋ค. ๊ธฐ๋ณธ ๋ฒ์ ์ด ๋ค์ ๋ ์ง์ ์ ๋ฐ์ดํธ๋์์ต๋๋ค: 2025๋ 8์ 23์ผ.
์๋ฌธ ๋ฌธ์๋ก ์ด๋๋ฒ์ ๊ธฐ๋ก
- "React Native ๋ฐ ๊ตฌํ ํ๊ฒฝ์ฉ polyfills ์ถ๊ฐ"v7.5.02025. 12. 18.
- "์ด๊ธฐ ์ด๋ ฅ"v5.5.102025. 6. 29.
์ด ํ์ด์ง์ ์ฝํ ์ธ ๋ AI๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์ญ๋์์ต๋๋ค.
์์ด ์๋ณธ ๋ด์ฉ์ ์ต์ ๋ฒ์ ์ ๋ณด๊ธฐ์ด ๋ฌธ์๋ฅผ ๊ฐ์ ํ ์์ด๋์ด๊ฐ ์์ผ์๋ฉด GitHub์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ์ฌ ์์ ๋กญ๊ฒ ๊ธฐ์ฌํด ์ฃผ์ธ์.
๋ฌธ์์ ๋ํ GitHub ๋งํฌ๋ฌธ์์ Markdown์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
๋ฌธ์: intlayer์ getLocaleName ํจ์
์ค๋ช
getLocaleName ํจ์๋ ์ฃผ์ด์ง ๋ก์ผ์ผ(targetLocale)์ ํ์งํ๋ ์ด๋ฆ์ ํ์ ๋ก์ผ์ผ(displayLocale)๋ก ๋ฐํํฉ๋๋ค. targetLocale์ด ์ ๊ณต๋์ง ์์ผ๋ฉด, displayLocale์ ์ด๋ฆ์ ํด๋น ๋ก์ผ์ผ์ ์ธ์ด๋ก ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์
displayLocale: Locales- ์ค๋ช : ๋์ ๋ก์ผ์ผ์ ์ด๋ฆ์ด ํ์๋ ๋ก์ผ์ผ์ ๋๋ค.
- ํ์ : ์ ํจํ ๋ก์ผ์ผ์ ๋ํ๋ด๋ ์ด๊ฑฐํ ๋๋ ๋ฌธ์์ด์ ๋๋ค.
targetLocale?: Locales- ์ค๋ช : ์ด๋ฆ์ด ํ์งํ๋ ๋ก์ผ์ผ์ ๋๋ค.
- ํ์ : ์ ํ ์ฌํญ์ด๋ฉฐ, ์ ํจํ ๋ก์ผ์ผ์ ๋ํ๋ด๋ ์ด๊ฑฐํ ๋๋ ๋ฌธ์์ด์ ๋๋ค.
๋ฐํ๊ฐ
- ํ์
:
string - ์ค๋ช
:
targetLocale๊ฐ ์ ๊ณต๋๋ฉดdisplayLocale์์ ํ์งํ๋targetLocale์ ์ด๋ฆ์ ๋ฐํํ๋ฉฐ, ์ ๊ณต๋์ง ์์ผ๋ฉดdisplayLocale์์ ์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค. ๋ฒ์ญ์ ์ฐพ์ ์ ์์ผ๋ฉด"Unknown locale"์ ๋ฐํํฉ๋๋ค.
์ฌ์ฉ ์์
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
import { Locales, getLocaleName } from "intlayer";
getLocaleName(Locales.ENGLISH); // ์ถ๋ ฅ: "English"
getLocaleName(Locales.ENGLISH, Locales.FRENCH); // ์ถ๋ ฅ: "Anglais"
getLocaleName(Locales.ENGLISH, Locales.ESPANOL); // ์ถ๋ ฅ: "Inglรฉs"
getLocaleName(Locales.ENGLISH, Locales.ENGLISH); // ์ถ๋ ฅ: "English"
getLocaleName(Locales.FRENCH); // ์ถ๋ ฅ: "Franรงais"
getLocaleName(Locales.FRENCH, Locales.FRENCH); // ์ถ๋ ฅ: "Franรงais"
getLocaleName(Locales.FRENCH, Locales.ESPANOL); // ์ถ๋ ฅ: "Francรฉs"
getLocaleName(Locales.FRENCH, Locales.ENGLISH); // ์ถ๋ ฅ: "French"
getLocaleName(Locales.CHINESE); // ์ถ๋ ฅ: "ไธญๆ"
getLocaleName(Locales.CHINESE, Locales.FRENCH); // ์ถ๋ ฅ: "Chinois"
getLocaleName(Locales.CHINESE, Locales.ESPANOL); // ์ถ๋ ฅ: "Chino"
getLocaleName(Locales.CHINESE, Locales.ENGLISH); // ์ถ๋ ฅ: "Chinese"
getLocaleName("unknown-locale"); // ์ถ๋ ฅ: "์ ์ ์๋ ๋ก์ผ์ผ"
์์ธ ์ํฉ
targetLocale๊ฐ ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ:- ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก
displayLocale์์ ์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค. - ๋ฒ์ญ ๋๋ฝ:
localeNameTranslations์targetLocale๋๋ ํน์ displayLocale์ ๋ํ ํญ๋ชฉ์ด ์์ผ๋ฉด, ํจ์๋ownLocalesName์ ์ฌ์ฉํ๊ฑฐ๋"Unknown locale"์ ๋ฐํํฉ๋๋ค.
React Native ๋ฐ ๊ตฌํ ํ๊ฒฝ์ฉ Polyfills
getLocaleName ํจ์๋ Intl.DisplayNames API์ ์์กดํ๋ฉฐ, ์ด API๋ React Native๋ ๊ตฌํ JavaScript ํ๊ฒฝ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ getLocaleName์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ polyfills๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ด๊ธฐ์ polyfills๋ฅผ ๊ฐ์ ธ์ค์ธ์. ๊ฐ๋ฅํ๋ฉด ์ง์
์ ํ์ผ(์: index.js, App.tsx, ๋๋ main.tsx)์์ ์ํํ์ธ์:
์ฝ๋๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ
์์ธํ ๋ด์ฉ์ FormatJS polyfills ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
