MDUI문서
llms.txt 링크 복사llms-full.txt 링크 복사이 페이지를 Markdown 형식으로 보기ChatGPT와 이 페이지 내용에 대해 논의하기프로젝트 전체 문서에 대해 ChatGPT와 논의하기
프리셋 색상
사용자 지정 색상
배경화면에서 색상 추출
배경화면을 선택해 주세요
개발 가이드
개요 설치 빠른 시작 TypeScript 지원 IDE 지원 현지화 자주 묻는 질문
AI 보조 개발
스타일
프레임워크와 통합
컴포넌트
함수
독립 패키지

현지화

mdui는 기본적으로 영어를 사용합니다. 다른 언어를 사용해야 하는 경우 다국어 구성이 필요합니다.

사용법

mdui는 다국어 기능을 구현하기 위해 세 가지 함수를 제공합니다:

  • loadLocale: 언어 팩을 로드합니다. 매개변수는 함수이며, 언어 코드를 받아 Promise를 반환합니다. 언어 팩 로드가 완료되면 Promise가 해당 언어 팩으로 resolve됩니다. 프로젝트의 엔트리 파일에서 이 함수를 호출해야 합니다.
  • setLocale: 지정된 언어로 전환합니다. 매개변수는 새 언어 코드이며, Promise를 반환합니다. 새 언어 팩 로드가 완료되면 resolve됩니다.
  • getLocale: 현재 언어 코드를 가져옵니다.

사용 예시는 다음과 같습니다:

import { loadLocale } from 'mdui/functions/loadLocale.js';
import { setLocale } from 'mdui/functions/setLocale.js';
import { getLocale } from 'mdui/functions/getLocale.js';

// 프로젝트 엔트리에서 loadLocale을 호출하여 언어 팩 로드
loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));

// 언어 전환이 필요할 때 이 함수를 호출합니다. Promise resolve 후 언어 전환 성공
setLocale('zh-cn').then(() => {
  // getLocale을 호출하여 현재 언어 코드를 얻을 수 있습니다
  console.log(getLocale()); // zh-cn
});

상태 이벤트

언어 전환 시작, 완료, 실패 시 window에서 mdui-localize-status 이벤트가 트리거됩니다. 이 이벤트를 리스닝하여 커스텀 작업을 수행할 수 있습니다(예: 언어 전환 성공 후 언어 코드를 Cookie에 쓰기).

이벤트의 detail.status 속성은 현재 발생한 상태 변경을 설명하며, 가능한 값은 loading, ready, error입니다:

detail.status 설명
loading

새로운 언어 팩 로드를 시작합니다.

detail 객체에는 다음이 포함됩니다:

  • loadingLocale: 새로 로드할 언어의 언어 코드.
ready

새로운 언어 팩 로드 성공.

detail 객체에는 다음이 포함됩니다:

  • readyLocale: 새로 로드된 언어의 언어 코드.
error

새로운 언어 팩 로드 실패.

detail 객체에는 다음이 포함됩니다:

  • errorLocale: 로드에 실패한 언어의 언어 코드.
  • errorMessage: 로드 실패 오류 메시지.

사용 예시는 다음과 같습니다:

window.addEventListener('mdui-localize-status', (event) => {
  if (event.detail.status === 'loading') {
    console.log(`새 언어 팩 로드 시작: ${event.detail.loadingLocale}`);
  } else if (event.detail.status === 'ready') {
    console.log(`새 언어 팩 ${event.detail.readyLocale} 로드 성공`);
  } else if (event.detail.status === 'error') {
    console.error(
      `새 언어 팩 ${event.detail.errorLocale} 로드 실패: ${event.detail.errorMessage}`,
    );
  }
});

언어 팩 로드 방식

지연 로드

동적 가져오기를 사용하면 해당 언어로 전환할 때 해당 언어 팩을 다운로드할 수 있습니다. 이것이 가장 권장되는 방법입니다.

import { loadLocale } from 'mdui/functions/loadLocale.js';

loadLocale((locale) => import(`../node_modules/mdui/locales/${locale}.js`));

사전 로드

페이지 로드 시 필요한 모든 언어 팩을 미리 다운로드합니다. 이를 통해 언어 전환 시 다운로드가 필요 없으므로 언어 전환이 더 빨라집니다.

import { loadLocale } from 'mdui/functions/loadLocale.js';

const localizedTemplates = new Map([
  ['zh-cn', import(`../node_modules/mdui/locales/zh-cn.js`)],
  ['zh-tw', import(`../node_modules/mdui/locales/zh-tw.js`)],
]);

loadLocale(async (locale) => localizedTemplates.get(locale));

정적 가져오기

이 방법을 사용하면 필요한 모든 언어 팩을 프로젝트 코드와 함께 단일 파일로 번들링할 수 있으므로 언어 팩을 별도로 다운로드할 필요가 없습니다.

import { loadLocale } from 'mdui/functions/loadLocale.js';
import * as locale_zh_cn from 'mdui/locales/zh-cn.js';
import * as locale_zh_tw from 'mdui/locales/zh-tw.js';

const localizedTemplates = new Map([
  ['zh-cn', locale_zh_cn],
  ['zh-tw', locale_zh_tw],
]);

loadLocale(async (locale) => localizedTemplates.get(locale));

CDN을 통한 언어 팩 로드

CDN을 통해 mdui를 사용하는 경우 CDN에서 직접 언어 팩을 로드할 수 있습니다. 사용 예시는 다음과 같습니다:

<script src="https://unpkg.com/mdui@2/mdui.global.js"></script>

<script>
  mdui.loadLocale(
    (locale) => import(`https://unpkg.com/mdui@2/locales/${locale}.js`),
  );
  mdui.setLocale('zh-cn');
</script>

지원되는 언어

현재 mdui는 다음 언어를 지원합니다:

언어 언어 코드
아랍어 ar-eg
아제르바이잔어 az-az
불가리아어 bg-bg
벵골어(방글라데시) bn-bd
벨라루스어 be-by
카탈루냐어 ca-es
체코어 cs-cz
덴마크어 da-dk
독일어 de-de
그리스어 el-gr
영어 en-gb
영어(미국) en-us
스페인어 es-es
에스토니아어 et-ee
페르시아어 fa-ir
핀란드어 fi-fi
프랑스어(벨기에) fr-be
프랑스어(캐나다) fr-ca
프랑스어(프랑스) fr-fr
아일랜드어 ga-ie
갈리시아어(스페인) gl-es
히브리어 he-il
힌디어 hi-in
크로아티아어 hr-hr
헝가리어 hu-hu
아르메니아어 hy-am
인도네시아어 id-id
이탈리아어 it-it
아이슬란드어 is-is
일본어 ja-jp
조지아어 ka-ge
크메르어 km-kh
북부 쿠르드어 kmr-iq
칸나다어 kn-in
카자흐어 kk-kz
한국어 ko-kr
리투아니아어 lt-lt
라트비아어 lv-lv
마케도니아어 mk-mk
말라얄람어 ml-in
몽골어 mn-mn
말레이어(말레이시아) ms-my
노르웨이어 nb-no
네팔어 ne-np
네덜란드어(벨기에) nl-be
네덜란드어 nl-nl
폴란드어 pl-pl
포르투갈어(브라질) pt-br
포르투갈어 pt-pt
루마니아어 ro-ro
러시아어 ru-ru
슬로바키아어 sk-sk
세르비아어 sr-rs
슬로베니아어 sl-si
스웨덴어 sv-se
타밀어 ta-in
태국어 th-th
터키어 tr-tr
우르두어(파키스탄) ur-pk
우크라이나어 uk-ua
베트남어 vi-vn
중국어 간체 zh-cn
중국어 번체(홍콩) zh-hk
중국어 번체(대만) zh-tw

새 번역 제출

새 번역을 기여하거나 기존 번역을 개선하려면 Github에서 Pull Request를 생성하세요. 언어 팩은 packages/mdui/src/xliff에 있습니다. Github에서 직접 편집할 수 있습니다.

이 페이지의 목차