본문 바로가기

ICU Message Format 검사기

브라우저 처리

ICU MessageFormat 문구의 {변수}, plural·select·selectordinal, offset, #, '따옴표' 문법을 해석해 오류를 찾고, 입력한 값으로 실제 문장이 어떻게 나오는지 미리보기를 보여 줍니다.

사용 전 확인
  • 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
도구 실행입력 후 결과 확인
ICU Message Format 검사기 샘플 실행

i18n 라이브러리(FormatJS, i18next ICU, Java·Android)는 '{count, plural, one {# tool} other {# tools} }' 같은 ICU MessageFormat으로 복수형과 성별에 따라 달라지는 문장을 씁니다. 중괄호 하나만 빠져도 앱에서 번역이 깨지므로, 이 도구가 문법을 실제로 해석…

브라우저 처리
샘플 결과
통과: 문제를 찾지 못했습니다.
인수: count (plural), name

미리보기 (ko):
도구 800개를 ToolBada에서 찾았습니다.
자바스크립트가 활성화되면 이 영역이 실제 입력, 실행, 결과 패널로 바뀝니다.

ICU Message Format 검사기 사용 가이드

i18n 라이브러리(FormatJS, i18next ICU, Java·Android)는 '{count, plural, one {# tool} other {# tools} }' 같은 ICU MessageFormat으로 복수형과 성별에 따라 달라지는 문장을 씁니다. 중괄호 하나만 빠져도 앱에서 번역이 깨지므로, 이 도구가 문법을 실제로 해석해 위치와 함께 오류를 알려 줍니다.

{이름}, {이름, number, percent}, {이름, date, long} 같은 인수와 plural·selectordinal·select 블록, offset:1, =0 같은 정확한 값 경우, # 자리 표시, '{' 처럼 따옴표로 감싼 글자를 모두 읽습니다. 필수인 other 경우가 빠졌거나, 해당 언어에 없는 복수 범주(한국어의 one 등)를 쓴 경우도 알려 줍니다.

두 번째 칸에 JSON으로 값을 넣으면 그 값으로 문장을 실제로 만들어 미리보기를 보여 주고, 값이 없는 인수와 쓰이지 않은 값을 찾아 줍니다. 문구에 한글이 있으면 한국어, 없으면 영어 복수 규칙을 쓰고 "@locale": "de"처럼 직접 정할 수도 있습니다.

사용 방법

  1. '입력 A' 칸에 ICU 메시지를 붙여 넣습니다.
  2. '입력 B' 칸에 {"count": 3, "name": "ToolBada"}처럼 미리볼 값을 JSON으로 넣습니다. 필요하면 "@locale"도 적습니다.
  3. '실행'을 누르면 오류·경고·참고와 인수 목록, 그리고 미리보기 문장이 나옵니다.

예시: 복수형이 있는 한국어 문구

입력
{count, plural, =0 {도구가 없습니다} other {도구 #개}}를 {name}에서 찾았습니다.
---
{"count":800,"name":"ToolBada"}
결과
통과: 문제를 찾지 못했습니다.
인수: count (plural), name

미리보기 (ko):
도구 800개를 ToolBada에서 찾았습니다.

count가 0이면 =0 경우의 '도구가 없습니다'가 쓰입니다.

이럴 때 쓰면 좋아요

  • 번역 파일(JSON·properties)의 ICU 문구가 깨지지 않았는지 배포 전에 확인할 때
  • 번역가가 보낸 문구에 other 경우가 빠졌는지 점검할 때
  • 복수형·성별 분기가 값에 따라 어떻게 나오는지 미리 볼 때
  • 한국어처럼 복수형이 없는 언어에서 쓸모없는 one 분기를 정리할 때

문제가 생겼을 때

'other 경우가 없습니다' 오류

plural과 select에는 어떤 값에도 맞지 않을 때 쓰는 other 경우가 반드시 있어야 합니다. other {…}를 추가하세요.

작은따옴표가 사라지거나 중괄호가 글자로 나옴

ICU에서 '는 특수 문자를 감싸는 기호입니다. 작은따옴표 자체를 쓰려면 it''s처럼 두 번 쓰고, {를 글자로 쓰려면 '{'로 감싸세요.

활용 팁

  • # 은 plural 블록 안에서만 숫자로 바뀝니다. offset:1이 있으면 # 은 값에서 1을 뺀 수가 됩니다.
  • 한국어에는 one, few 같은 복수 범주가 없어 other만 쓰입니다. =0, =1처럼 정확한 값 경우로 분기하세요.

자주 묻는 질문

MessageFormat 2.0 문법도 지원하나요?

아니요. 현재 대부분의 라이브러리가 쓰는 ICU MessageFormat 1 문법을 검사합니다.

날짜 미리보기는 어떤 형식으로 값을 넣나요?

"2026-08-28"이나 "2026-08-28T09:00:00Z"처럼 ISO 문자열을 넣으면 {d, date, long} 같은 형식으로 표시합니다.

번역 파일 전체를 한 번에 검사할 수 있나요?

한 번에 문구 하나를 검사합니다. 여러 문구는 하나씩 붙여 넣거나, 문법 오류가 의심되는 문구만 골라 확인하세요.