위젯

언어

지연 로드되는 8개의 내장 로케일과 합리적인 폴백.

위젯에는 8개의 내장 로케일이 포함되어 있습니다: 영어(en), 한국어(ko, 기본값), 프랑스어(fr), 독일어(de), 스페인어(es), 이탈리아어(it), 브라질 포르투갈어(pt), 러시아어(ru).

initInstaFix({
  endpoint: "/api/instafix",
  projectName: "my-project",
  locale: "fr",
});

로케일 해석 방식

  • 영어와 한국어(기본값)는 번들에 포함되어 있습니다. 그 외의 로케일은 각각 작은 청크로 로드되므로, 실제로 사용하는 언어만 다운로드하면 됩니다.
  • 전체 BCP-47 태그도 사용할 수 있습니다 — "fr-CA"fr로, "pt-BR"pt로 해석됩니다.
  • 알 수 없는 로케일은 console.warn을 출력하고 영어로 폴백합니다. 아무것도 깨지지 않습니다.
  • 로케일 청크가 로드되는 동안에는 레이블이 영어로 렌더링되다가, 로드가 완료되는 즉시 다시 지역화됩니다. 마커는 번역이 준비될 때까지 기다리므로 스크린 리더용 레이블이 절반만 번역된 상태로 노출되는 일은 없습니다.

커스텀 로케일

registerLocale(code, translations)는 위젯이 기본 제공하지 않는 언어를 추가하고, loadLocale(code)는 내장 사전을 미리 가져옵니다. 둘 다 @instafix/widget의 런타임 export입니다:

import { initInstaFix, registerLocale, type Translations } from "@instafix/widget";

registerLocale("nl", { "panel.title": "Feedbacks", "fab.annotate": "Nieuwe annotatie maken" });
initInstaFix({ endpoint: "/api/instafix", projectName: "my-project", locale: "nl" });

부분 사전도 문제없습니다. 누락된 키는 키 단위로 영어로 폴백하므로, 문자열 하나를 재정의하기 위해 전체 카탈로그를 복사할 필요가 없습니다 — 전체 항목을 타입 체크하고 싶을 때만 Translations 타입을 지정하세요. 구현이 강제하는 두 가지 규칙이 있습니다: 기본 언어 코드로 등록해야 하며("nl-BE"가 아니라 "nl" — 조회 시 기본 코드로 정규화됩니다), registerLocale은 반드시 initInstaFix보다 먼저 호출해야 합니다.

첫 렌더링부터 잠깐의 영어 깜빡임 없이 내장 로케일을 바로 보여주고 싶다면, 초기화 전에 await loadLocale("fr")를 호출하세요.

대시보드도 동일한 세트를 따릅니다

@instafix/dashboard도 동일한 해석 규칙으로 동일한 8개 로케일을 제공하며, 동일한 부분 사전 동작을 가진 자체 registerLocale을 export합니다 — 자세한 내용은 대시보드 문서를 참고하세요.

여러분의 언어를 내장 로케일로 추가하고 싶으신가요? 로케일 기여는 이 프로젝트에 참여하는 가장 친근한 첫 PR입니다 — CONTRIBUTING의 "Adding a Locale" 섹션을 참고하세요.

GitHub에서 수정

이 페이지의 목차