Intl
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017ë 9ì.
* Some parts of this feature may have varying levels of support.
Intl ë¤ìì¤íì´ì¤ ê°ì²´ìë ì¬ë¬ ìì±ìì êµì í ìì±ì ë° ê¸°í ì¸ì´ì 민ê°í í¨ìì ê³µíµë 기ë¥ì´ í¬í¨ëì´ ììµëë¤. ì´ë¥¼ ì¢
í©íì¬ ì¸ì´ì 민ê°í 문ìì´ ë¹êµ, ì«ì ìì, ë ì§ ë° ìê° ìì ë±ì ì ê³µíë ECMAScript êµì í API를 구ì±í©ëë¤.
ì¤ëª
ëë¶ë¶ì ì ì ê°ì²´ì ë¬ë¦¬ Intlì ìì±ìê° ìëëë¤. new ì°ì°ìì í¨ê» ì¬ì©íê±°ë Intl ê°ì²´ë¥¼ í¨ìë¡ í¸ì¶í ì ììµëë¤. Math ê°ì²´ì ë§ì°¬ê°ì§ë¡ Intlì 모ë íë¡í¼í°ì ë©ìëë ì ì ì
ëë¤.
êµì í ìì±ìë¿ë§ ìëë¼ ë¤ë¥¸ ìì±ìì ì¬ë¬ ì¸ì´ì 민ê°í ë©ìë(ê°ì´ 보기ì ëì´ëì´ ììµëë¤)ë ë¡ì¼ì¼ì ìë³íê³ ì¤ì ë¡ ì¬ì©í ë¡ì¼ì¼ì ê²°ì íë ë° ê³µíµ í¨í´ì ì¬ì©í©ëë¤. 모ë locales ë° options ì¸ì를 ë°ìë¤ì´ê³ options.localeMatcher ìì±ì ì§ì ë ìê³ ë¦¬ì¦ì ì¬ì©íì¬ ì§ìëë ë¡ì¼ì¼ì ëí´ ìì²ë ë¡ì¼ì¼ì íìíë ë°©ìì
ëë¤.
locales ì¸ì
locales ì¸ìë 주ì´ì§ ì°ì°ì ì¬ì©ëë ë¡ì¼ì¼ì ì íë ë° ì¬ì©ë©ëë¤. JavaScript 구íì²´ë localesì ê²ì¬íê³ ííë 기본 ì¤ì ì 충족í기 ìí´ ê°ì¥ ê·¼ì í ë¡ì¼ì¼ì ê³ì°í©ëë¤. ìë íëª©ì´ localesì´ ë ì ììµëë¤.
undefined(íì ìëµ): 구íì²´ì 기본 ë¡ì¼ì¼ì ì¬ì©í©ëë¤.- íëì ë¡ì¼ì¼: íëì ë¡ì¼ì¼ ìë³ì í¹ì ë¡ì¼ì¼ ìë³ì를 ê°ì¸ë
Intl.Localeê°ì²´ - ë¡ì¼ì¼ 리ì¤í¸: ë¤ë¥¸ ê°ì ê°ì²´ë¡ ë³íë ë¤ì ë¡ì¼ì¼ ë°°ì´ë¡ ì²ë¦¬ë©ëë¤.
íìì ë ê²½ì°ìì ì¬ì©ëë ì¤ì ë¡ì¼ì¼ì ë¡ì¼ì¼ íìì íµí´ ê²°ì ë, ê°ì¥ ì ì§ìëë ë¡ì¼ì¼ì
ëë¤. ë¡ì¼ì¼ ìë³ìê° ë¬¸ìì´ì´ë ê°ì²´ê° ìë ê²½ì° TypeErrorê° ë°ìí©ëë¤. ë¡ì¼ì¼ ìë³ìê° êµ¬ë¬¸ì ì í¨íì§ ìì 문ìì´ì¸ ê²½ì° RangeErrorê° ë°ìí©ëë¤. ë¡ì¼ì¼ ìë³ìê° ì ëë¡ íì±ëìì§ë§ 구íì²´ê° ì´ë¥¼ ì¸ìíì§ ëª»íë©´ 무ìëê³ ëª©ë¡ì ë¤ì ë¡ì¼ì¼ì´ ê³ ë ¤ëì´ ê²°êµ ìì¤í
ì ë¡ì¼ì¼ë¡ ëëìê°ëë¤. ê·¸ë¬ë 구íì²´ê° í¥í 모ë ë¡ì¼ì¼ì ëí ë°ì´í°ë¥¼ ì¶ê°í ì ìì¼ë¯ë¡ í¹ì ë¡ì¼ì¼ ì´ë¦ì´ 무ìëë ê²ì ìì¡´í´ìë ì ë©ëë¤. ì를 ë¤ì´ new Intl.DateTimeFormat("default")ë "default"ê° êµ¬ë¬¸ìì¼ë¡ë ì í¨íì§ë§ ì´ë¤ ë¡ì¼ì¼ë¡ë ì¸ìëì§ ì기 ë문ì 구íì²´ì 기본 ë¡ì¼ì¼ë§ ì¬ì©íê² ë©ëë¤.
ë¡ì¼ì¼ ìë³ìë ë¤ìì¼ë¡ 구ì±ë 문ìì´ì ëë¤.
- 2~~3ì ëë 5~~8ìë¡ êµ¬ì±ë ì¸ì´ íì íê·¸
- 4ê¸ìë¡ êµ¬ì±ë ì¤í¬ë¦½í¸ íì íê·¸ Optional
- 2ê¸ì ëë 3ìë¦¬ë¡ êµ¬ì±ë ì§ì íì íê·¸ Optional
- ê°ê° 5~8ê°ì ìì«ì ëë ì«ì í ì리 ë¤ì ìì«ì 3ê°ê° í¬í¨ë íë ì´ìì ë³í íì íê·¸(ë°ëì 모ë ê³ ì í´ì¼ í¨) Optional
- íë ì´ìì BCP 47 íì¥ ìíì¤ Optional
- ê°ì¸ì© íì¥ ìíì¤ Optional
ê° íì íê·¸ì ìíì¤ë íì´íì¼ë¡ 구ë¶ë©ëë¤. ë¡ì¼ì¼ ìë³ìë ëì문ì를 구ë¶íì§ ìë ASCIIì ëë¤. ê·¸ë¬ë ì¤í¬ë¦½í¸ íì íê·¸ìë ì 목 ë문ì(첫 ê¸ìë ë문ì, ì´ì´ì§ë ê¸ìë ì문ì)를, ì§ì íì íê·¸ìë ë문ì를, ê·¸ ì¸ìë 모ë ì문ì를 ì¬ì©íë ê²ì´ ì¼ë°ì ì ëë¤. ì를 ë¤ì´
"hi": íëì´(ì¸ì´)"de-AT": ì¤ì¤í¸ë¦¬ì(ì§ì)ìì ì¬ì©íë ë ì¼ì´(ì¸ì´)"zh-Hans-CN": ì¤êµ(ì§ì)ìì ì¬ì©íë ê°ì²´(ì¤í¬ë¦½í¸)ë¡ ì°ì¸ ì¤êµì´(ì¸ì´)"en-emodeng": "ì´ê¸° íë ìì´" ë°©ì¸(ë³í)ì ìì´(ì¸ì´)
ì¸ì´, ì¤í¬ë¦½í¸, ì§ì(êµê° í¬í¨) ë° ë³í(ëë¬¼ê² ì¬ì©)ì ìë³íë íì íê·¸ë IANA ì¸ì´ íì íê·¸ ë ì§ì¤í¸ë¦¬ì ë±ë¡ëì´ ììµëë¤. ì´ ë ì§ì¤í¸ë¦¬ë ìê°ì´ ì§ë¨ì ë°ë¼ 주기ì ì¼ë¡ ì ë°ì´í¸ëë©° 구íì´ íì ìµì ìíê° ìë ìë ìì¼ë¯ë¡ íì íê·¸ê° ë리 ì§ìë ê²ì´ë¼ëë° ë무 ìì¡´íì§ ë§ì기 ë°ëëë¤.
BCP 47 íì¥ ìíì¤ë í ì리 ì«ì ëë 문ì("x" ì ì¸)ì íì´íì¼ë¡ 구ë¶ë íë ì´ìì 2~8ì리 ì«ì ëë ì«ì íì íê·¸ë¡ êµ¬ì±ë©ëë¤. ê° ì«ì ëë 문ìë¹ íëì ìíì¤ë§ íì©ë©ëë¤ "de-a-foo-a-foo"ë ì í¨íì§ ììµëë¤. BCP 47 íì¥ì íìíê·¸ë ì ëì½ë CLDR íë¡ì í¸ì ì ìëì´ ììµëë¤. íì¬ ë ê°ì íì¥ìë§ ìë¯¸ê° ì ìëì´ ììµëë¤.
-
"u"(ì ëì½ë) íì¥ìëIntlAPI ê°ì²´ì ì¶ê° ì¬ì©ì ì§ì ì ìì²íë ë° ì¬ì©í ì ììµëë¤. ìëë ììì ëë¤."de-DE-u-co-phonebk": ë ì¼ì´ ì ë ¬ ììì ì íë²í¸ë¶ ë³íì ì¬ì©íì¬ ë¤ìê³¼ ê°ì´ ìë¼ì°í¸ 모ìì í´ë¹ 문ì ìì¼ë¡ í´ìí©ëë¤. ä â ae, ö â oe, ü â ue."th-TH-u-nu-thai": ì«ì íìì íêµ ì«ì(à¹, à¹, à¹, à¹, à¹, à¹, à¹, à¹, à¹, à¹)를 ì¬ì©í©ëë¤."ja-JP-u-ca-japanese": ë ì§ ë° ìê° ìììì ì¼ë³¸ ë¬ë ¥ì ì¬ì©íì¬ 2013ë ì í¤ì´ì¸ì´ ìë 25ë , ì¦ å¹³æ 25ë¡ íìí©ëë¤."en-GB-u-ca-islamic": ìêµì ìì´ì ì´ì¬ë(íêµ) ë¬ë ¥ì ì¬ì©íë©°, 2017ë 10ì 14ì¼ ê·¸ë ê³ ë¦¬ë ¥ì 1439ë 무íë 24ì¼ íêµë ¥ì ëë¤.
-
"t"(ë³íë¨) íì¥ìë ë³íë ì½í ì¸ (ì: ë¤ë¥¸ ë¡ì¼ì¼ìì ë²ìë í ì¤í¸)를 ëíë ëë¤. íì¬Intl기ë¥ì"t"íì¥ì를 ê³ ë ¤íì§ ììµëë¤. ê·¸ë¬ë ì´ íì¥ìë ëëë¡ íì¥ìê° ìë ì¤ì²© ë¡ì¼ì¼ì í¬í¨í©ëë¤. ì를 ë¤ì´"de-t-en"ì ë³íë íì¥ìë ìì´ì ëí ë¡ì¼ì¼ ìë³ì를 í¬í¨í©ëë¤. ì¤ì²© ë¡ì¼ì¼ì´ ìë ê²½ì° ì í¨í ë¡ì¼ì¼ ìë³ìì´ì´ì¼ í©ëë¤. ì를 ë¤ì´"en-emodeng-emodeng"ì ì¤ë³µëemodengë³í íì íê·¸ê° í¬í¨ëì´ ìì¼ë¯ë¡ ì í¨íì§ ìì¼ë¯ë¡"de-t-en-emodeng-emodeng"ë ì í¨íì§ ììµëë¤.
ë§ì§ë§ì¼ë¡ 문ì "x"를 ì¬ì©íë ë¹ê³µê° íì¥ì ìíì¤ ë¤ì íì´íì¼ë¡ 구ë¶ë íë ì´ìì 1~8ì ëë ì«ì íì íê·¸ê° ëíë ì ììµëë¤. ì´ë¥¼ íµí´ ì í리ì¼ì´ì
ì ìì²´ì ì¼ë¡ ë¹ê³µê°ë¡ ì¬ì©í ì 보를 ì¸ì½ë©í ì ìì¼ë©°, 모ë Intl ì°ì°ìì 무ìë©ëë¤.
options ì¸ì
options ì¸ìë ìì±ìì í¨ìë§ë¤ ë¤ë¥¸ ìì±ì ê°ì§ ê°ì²´ì¬ì¼ í©ëë¤. options ì¸ìê° ì ê³µëì§ ìê±°ë ì ìëì§ ìì ê²½ì° ëª¨ë ìì±ì 기본ê°ì´ ì¬ì©ë©ëë¤.
localeMatcher ìì±ì 모ë ì¸ì´ì 민ê°í ìì±ì ë° í¨ììì ì§ìë©ëë¤. ì´ ìì±ì ê°ì 문ìì´ "lookup" ëë "best fit"ì´ì´ì¼ íë©° ìëì ì¤ëª
ë ë¡ì¼ì¼ ì¼ì¹ ìê³ ë¦¬ì¦ ì¤ íë를 ì íí´ì¼ í©ëë¤.
ë¡ì¼ì¼ ìë³ ë° íì
locales ì¸ìë¡ ì§ì ë ë¡ì¼ì¼ 목ë¡ì ì ëì½ë íì¥ì´ ì ê±°ë í ì í리ì¼ì´ì
ìì ì°ì ììê° ì§ì ë ìì²ì¼ë¡ í´ìë©ëë¤. ë°íìì ì´ë¥¼ ì¬ì© ê°ë¥í ë¡ì¼ì¼ê³¼ ë¹êµíì¬ ì¬ì© ê°ë¥í ìµìì ë¡ì¼ì¼ì ì íí©ëë¤. ì¬ê¸°ì ë ê°ì§ ë§¤ì¹ ìê³ ë¦¬ì¦ì´ ì¡´ì¬í©ëë¤. "lookup" 매ì¹ì BCP 47ì ëª
ìë Lookup ìê³ ë¦¬ì¦ì ë°ë¥´ê³ , "best fit" 매ì¹ì ë°íìì´ Lookup ìê³ ë¦¬ì¦ì ê²°ê³¼ë³´ë¤ ìµìí ìì²ì ë ì í©í ë¡ì¼ì¼ì ì ê³µí ì ìëë¡ í©ëë¤. ë§ì½ ì í리ì¼ì´ì
ìì locales ì¸ì를 ì ê³µíì§ ìê±°ë ë°íìì ìì²ê³¼ ì¼ì¹íë ë¡ì¼ì¼ì´ ìë ê²½ì° ë°íìì 기본 ë¡ì¼ì¼ì´ ì¬ì©ë©ëë¤. ì¼ì¹ ì¬ë¶ ê²ì¬ê¸°ë options ì¸ìì ìì±ì ì¬ì©íì¬ ì íí ì ììµëë¤(ìë를 참조íì기 ë°ëëë¤).
ì íí ë¡ì¼ì¼ ìë³ìì ì ëì½ë íì¥ ììê° ìë ê²½ì° ì´ì í´ë¹ íì¥ì ì¬ì©íì¬ ìì±ë ê°ì²´ ëë í¨ìì ëìì ì¬ì©ì ë§ì¶¤ ì¬ì©í ì ììµëë¤. ê° ìì±ì ëë í¨ìë ì ëì½ë íì¥ì ëí´ ì ìë í¤ì íì ì§í©ë§ ì§ìíë©°, ì§ìëë ê°ì ë¡ì¼ì¼ ìë³ìì ë°ë¼ ë¬ë¼ì§ë ê²½ì°ê° ë§ìµëë¤. ì를 ë¤ì´ "co" í¤(ì½ë ì´ì
)ë Intl.Collatorììë§ ì§ìëë©°, "phonebk" ê°ì ë
ì¼ì´ììë§ ì§ìë©ëë¤.
ì ì ìì±
Intl.Collator-
ì¸ì´ë³ 문ìì´ ë¹êµë¥¼ ê°ë¥íê² íë ê°ì²´ì¸ ì½ë ì´í°ì ìì±ìì ëë¤.
Intl.DateTimeFormat-
ì¸ì´ë³ ë ì§ì ìê° íìì ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.DisplayNames-
ì¸ì´, ì§ì ë° ì¤í¬ë¦½í¸ íì ì´ë¦ì ì¼ê´ëê² ë²ìí ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.DurationFormat-
ë¡ì¼ì¼ë³ë¡ ê¸°ê° íìì ì§ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.ListFormat-
ì¸ì´ë³ 리ì¤í¸ íìì ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.Locale-
ì ëì½ë ìë³ì를 ííí ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.NumberFormat-
ì¸ì´ë³ ì«ì íìì ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.PluralRules-
ë³µìíì 구ë¶íë íìê³¼ ì¸ì´ë³ ê·ì¹ì íì±ííë ê°ì²´ì ìì±ìì ëë¤.
Intl.RelativeTimeFormat-
ìë ìê° íìì ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl.Segmenter-
ë¡ì¼ì¼ì ë°ë¥¸ í ì¤í¸ ì¸ê·¸ë¨¼í¸ë¥¼ ì í ì ìë ê°ì²´ì ìì±ìì ëë¤.
Intl[@@toStringTag]-
@@toStringTagìì±ì ì´ê¸°ê°ì 문ìì´"Intl"ì ëë¤. ì´ ìì±ìObject.prototype.toString()ìì ì¬ì©í©ëë¤.
ì ì ë©ìë
Intl.getCanonicalLocales()-
íì¤ ë¡ì¼ì¼ ì´ë¦ì ë°íí©ëë¤.
Intl.supportedValuesOf()-
구íì²´ìì ì§ìíë ì§ìëë ê³ ì í ë¬ë ¥, ì½ë ì´ì , íµí, ì«ì ì²´ê³ ëë ë¨ì ê°ì´ í¬í¨ë, ì ë ¬ë ë°°ì´ì ë°íí©ëë¤.
ìì
>ë ì§ì ì«ì ìì ì§ì
Intl를 ì¬ì©íì¬ í¹ì ì¸ì´ ë° ì§ìì ì¼ë°ì ì¸ íìì¼ë¡ ë ì§ ë° ì«ì íìì ì§ì í ì ììµëë¤.
const count = 26254.39;
const date = new Date("2012-05-24");
function log(locale) {
console.log(
`${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(
locale,
).format(count)}`,
);
}
log("en-US"); // 5/24/2012 26,254.39
log("de-DE"); // 24.5.2012 26.254,39
ë¸ë¼ì°ì ì ì í¸ ì¸ì´ ì¬ì©í기
Intl ë©ìëì íëì½ë©ë ë¡ì¼ì¼ ì´ë¦ì ì ë¬íë ëì navigator.languageìì ì ê³µíë ì¬ì©ìê° ì í¸íë ì¸ì´ë¥¼ ì¬ì©í ì ììµëë¤.
const date = new Date("2012-05-24");
const formattedDate = new Intl.DateTimeFormat(navigator.language).format(date);
ëë navigator.languages ìì±ì ì¬ì©ìê° ì í¸íë ì¸ì´ì ì ë ¬ë 목ë¡ì ì ê³µí©ëë¤. ì´ ëª©ë¡ì Intl ìì±ìì ì§ì ì ë¬íì¬ ê¸°ë³¸ ì¤ì ê¸°ë° ë¡ì¼ì¼ ëì²´ ì íì 구íí ì ììµëë¤. ë¡ì¼ì¼ íì íë¡ì¸ì¤ë ì¬ì© ê°ë¥í ê°ì¥ ì í©í ë¡ì¼ì¼ì ì ííë ë° ì¬ì©ë©ëë¤.
const count = 26254.39;
const formattedCount = new Intl.NumberFormat(navigator.languages).format(count);
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Internationalization API Specification > # intl-object > |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
String.prototype.localeCompare()Number.prototype.toLocaleString()Date.prototype.toLocaleString()Date.prototype.toLocaleDateString()Date.prototype.toLocaleTimeString()Keyboard.getLayoutMap()navigator.languagenavigator.languages- The ECMAScript Internationalization API by Norbert Lindenberg (2012)