[Javascript] : 국제화 지원 API Intl - supportedValuesOf

profile
마릴린벅시
2023. 2. 18. 15:01개발

Intl의 함수를 사용하다 보면 옵션값으로 다양한 문자열을 넣게 된다. 이 때 어떤 문자열이 유효한지 조회하고 싶을 때 유용하게 사용할 수 있는 함수가 있다. 어떤 값을 넣어야 할지 헷갈리거나 모르겠을 때 Intl.supportedValuesOf함수의 리턴값을 참고하면 된다.

 

Intl.supportedValuesOf

먼저 이 함수를 브라우저에서 사용할 수 있는지 체크하려면 undefined와 비교하면 된다.

if (typeof Intl.supportedValuesOf !== "undefined") {
  // undefined이 아니라면 사용이 가능한 것!
}

 

currency 조회하기

// currency옵션에 넣을 수 있는 나라별 금액표기 값이 출력된다.
console.log(Intl.supportedValuesOf('currency'));

// ["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD",
// "AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF",
// "BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN",
// "BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC",
// "CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD",
// "EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL",
// "GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL",
// "HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR",
// "ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF",
// "KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR", => KRW 한국 발견!
// "LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK",
// "MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR",
// "MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR",
// "PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR",
// "RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG",
// "SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN",
// "SVC","SYP","SZL","THB","TJS","TMT","TND","TOP",
// "TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU",
// "UZS","VES","VND","VUV","WST","XAF","XCD","XDR",
// "XOF","XPF","XSU","YER","ZAR","ZMW","ZWL"]

 

unit 조회하기

unit옵션에 사용할 수 있는 문자열이 출력된다. 그램, 킬로미터, 시간 등 다양한 유닛이 나온다.

console.log(Intl.supportedValuesOf('unit'));

// ["acre","bit","byte","celsius","centimeter","day","degree",
// "fahrenheit","fluid-ounce","foot","gallon","gigabit","gigabyte",
// "gram","hectare","hour","inch","kilobit","kilobyte","kilogram",
// "kilometer","liter","megabit","megabyte","meter","microsecond","mile",
// "mile-scandinavian","milliliter","millimeter","millisecond","minute","month",
// "nanosecond","ounce","percent","petabyte","pound","second","stone","terabit",
// "terabyte","week","yard","year"]

 

supportedValuesOf 함수의 인자로 넣을 수 있는 값들

// calendar, collation, currency, numberingSystem, timeZone, unit 등이 있다.
console.log(Intl.supportedValuesOf('calendar'));
console.log(Intl.supportedValuesOf('collation'));
console.log(Intl.supportedValuesOf('currency'));
console.log(Intl.supportedValuesOf('numberingSystem'));
console.log(Intl.supportedValuesOf('timeZone'));
console.log(Intl.supportedValuesOf('unit'));

// 인자로 넣은 값에서 오류가 발생할 것을 방지하기 위해서 try-catch문으로 감싸줄 수 있다.
try {
  Intl.supportedValuesOf('someInvalidKey');
} catch (err) {
  console.log(err.toString());
  // Expected output: RangeError: invalid key: "someInvalidKey"
}

 

 

 

반응형