번역 작업 진행중입니다.

Intl 객체는 ECMAScript 국제화(i18n) API(각 언어에 맞는 문자비교, 숫자, 시간, 날짜비교를 제공하는)를 위한 이름공간입니다. Collator, NumberFormatDateTimeFormat는 Intl 객체의 속성을 위한 생성자입니다. 이 페이지는 일반적인 국제화의 기능을 수행하는 객체의 생성자들과 언어를 구분하는 함수들 뿐만 아니라 이러한 속성들에 대해서도 다루고 있습니다. 

속성

Intl.Collator
collators 생성자입니다. collators 오브젝트는 각 언어에 맞는 문자열 비교를 가능하게 해줍니다.
Intl.DateTimeFormat
dateTimeFormat 생성자입니다. dateTimeFormat 오브젝트는 각 언어에 맞는 시간, 날짜의 형식화를 가능하게 해줍니다.
Intl.ListFormat
Constructor for objects that enable language-sensitive list formatting.
Intl.NumberFormat
numberFormat 생성자입니다. numberFormat 오브젝트는 각 언어에 맞는 숫자 형식화를 가능하게 해줍니다.
Intl.PluralRules
Constructor for objects that enable plural-sensitive formatting and language-specific rules for plurals.
Intl.RelativeTimeFormat
Constructor for objects that enable language-sensitive relative time formatting.

메서드

Intl.getCanonicalLocales()
이 메소드는 표준 로케일 이름들을 반환합니다.

Locale identification and negotiation

The internationalization constructors as well as several language sensitive methods of other constructors (listed under See also) use a common pattern for identifying locales and determing the one they will actually use: they all accept locales and options arguments, and negotiate the requested locale(s) against the locales they support using an algorithm specified in the options.localeMatcher property.

locales argument

The locales argument must be either a string holding a BCP 47 language tag, or an array of such language tags. If the locales argument is not provided or is undefined, the runtime's default locale is used.

A BCP 47 language tag identifies a language or locale (the difference between the two is fuzzy). In their most common form it can contain, in this order: a language code, a script code, and a country code, all separated by hyphens. Examples:

  • "hi": Hindi.
  • "de-AT": German as used in Austria.
  • "zh-Hans-CN": Chinese written in simplified characters as used in China.

The subtags identifying languages, scripts, countries (regions), and (rarely used) variants in BCP 47 language tags can be found in the IANA Language Subtag Registry.

BCP 47 also allows for extensions, and one of them matters to the JavaScript internationalization functions: the "u" (Unicode) extension. It can be used to request a customization of the locale-specific behavior of a Collator, NumberFormat, or DateTimeFormat object. Examples:

  • "de-DE-u-co-phonebk": Use the phonebook variant of the German sort order, which expands umlauted vowels to character pairs: ä → ae, ö → oe, ü → ue.
  • "th-TH-u-nu-thai": Use Thai digits (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) in number formatting.
  • "ja-JP-u-ca-japanese": Use the Japanese calendar in date and time formatting, so that 2013 is expressed as the year 25 of the Heisei period, or 平成25.

Locale negotiation

The locales argument, after stripping off all Unicode extensions, is interpreted as a prioritized request from the application. The runtime compares it against the locales it has available and picks the best one available. Two matching algorithms exist: the "lookup" matcher follows the Lookup algorithm specified in BCP 47; the "best fit" matcher lets the runtime provide a locale that's at least, but possibly more, suited for the request than the result of the Lookup algorithm. If the application doesn't provide a locales argument, or the runtime doesn't have a locale that matches the request, then the runtime's default locale is used. The matcher can be selected using a property of the options argument (see below).

If the selected language tag had a Unicode extension substring, that extension is now used to customize the constructed object or the behavior of the function. Each constructor or function supports only a subset of the keys defined for the Unicode extension, and the supported values often depend on the language tag. For example, the "co" key (collation) is only supported by Collator, and its "phonebk" value is only supported for German.

options argument

The options argument must be an object with properties that vary between constructors and functions. If the options argument is not provided or is undefined, default values are used for all properties.

One property is supported by all language sensitive constructors and functions: The localeMatcher property, whose value must be a string "lookup" or "best fit" and which selects one of the locale matching algorithms described above.

명세

Specification Status Comment
ECMAScript Internationalization API 1.0 (ECMA-402)
The definition of 'Intl' in that specification.
Standard Initial definition.
ECMAScript Internationalization API 2.0 (ECMA-402)
The definition of 'Intl' in that specification.
Standard  
ECMAScript Internationalization API 4.0 (ECMA-402)
The definition of 'Intl' in that specification.
Draft Added Intl.getCanonicalLocales in the 4th edition.

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 24Edge Full support YesFirefox Full support 29IE Full support 11Opera Full support 15Safari Full support 10WebView Android No support NoChrome Android Full support 26Edge Mobile Full support YesFirefox Android Full support 56Opera Android ? Safari iOS Full support 10Samsung Internet Android Full support Yesnodejs ?
getCanonicalLocalesChrome Full support 54Edge Full support 16Firefox Full support 48IE No support NoOpera No support NoSafari Full support 11WebView Android No support NoChrome Android No support NoEdge Mobile No support NoFirefox Android Full support 56Opera Android No support NoSafari iOS Full support 11Samsung Internet Android No support Nonodejs No support No
CollatorChrome Full support 24Edge Full support YesFirefox Full support 29IE Full support 11Opera Full support 15Safari Full support 10WebView Android No support NoChrome Android Full support 26Edge Mobile Full support YesFirefox Android Full support 56Opera Android ? Safari iOS Full support 10Samsung Internet Android Full support Yesnodejs ?
DateTimeFormatChrome Full support 24Edge Full support YesFirefox Full support 29IE Full support 11Opera Full support 15Safari Full support 10WebView Android No support NoChrome Android Full support 26Edge Mobile Full support YesFirefox Android Full support 56Opera Android ? Safari iOS Full support 10Samsung Internet Android Full support Yesnodejs ?
NumberFormatChrome Full support 24Edge Full support YesFirefox Full support 29IE Full support 11Opera Full support 15Safari Full support 10WebView Android Full support 4.4Chrome Android Full support 26Edge Mobile Full support YesFirefox Android Full support 56Opera Android Full support 37Safari iOS Full support 10Samsung Internet Android Full support Yesnodejs ?
PluralRulesChrome Full support 63Edge Full support YesFirefox Full support 58IE No support NoOpera Full support 50Safari No support NoWebView Android Full support 63Chrome Android Full support 63Edge Mobile No support NoFirefox Android Full support 58Opera Android Full support 50Safari iOS No support NoSamsung Internet Android No support Nonodejs No support No
RelativeTimeFormatChrome Full support 71Edge No support NoFirefox Full support 65IE No support NoOpera ? Safari No support NoWebView Android Full support 71Chrome Android Full support 71Edge Mobile No support NoFirefox Android Full support 65Opera Android ? Safari iOS No support NoSamsung Internet Android ? nodejs No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

같이 보기

문서 태그 및 공헌자

이 페이지의 공헌자: mdnwebdocs-bot, alattalatta, hrg921
최종 변경자: mdnwebdocs-bot,