지역화
지역화 (Localization)
지역화(Localization, "l10n"이라고도 함)는 제품이나 콘텐츠를 특정 로캘이나 시장에 맞게 적응시키는 과정입니다. Material UI의 기본 로캘은 영어(미국)인데요, 다른 로캘을 사용하고 싶다면 아래 방법을 따라가면 됩니다.
출처: 문서
본문
지역화(Localization, "l10n"이라 부르기도 해요)는 제품이나 콘텐츠를 특정 로캘 또는 시장에 맞게 적응시키는 과정입니다.
Material UI의 기본 로캘은 영어(미국)입니다. 다른 로캘을 사용하려면 아래 설명을 따라가세요.
로캘 텍스트 (Locale text)
테마를 사용해 로캘 텍스트를 전역으로 구성할 수 있어요.
import { createTheme, ThemeProvider } from '@mui/material/styles';
import { zhCN } from '@mui/material/locale';
const theme = createTheme(
{
palette: {
primary: { main: '#1976d2' },
},
},
zhCN,
);
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>;
예시 (Example)
import * as React from 'react';
import TablePagination from '@mui/material/TablePagination';
import Autocomplete from '@mui/material/Autocomplete';
import Box from '@mui/material/Box';
import TextField from '@mui/material/TextField';
import { createTheme, ThemeProvider, useTheme } from '@mui/material/styles';
import * as locales from '@mui/material/locale';
type SupportedLocales = keyof typeof locales;
export default function Locales() {
const [locale, setLocale] = React.useState<SupportedLocales>('zhCN');
const theme = useTheme();
const themeWithLocale = React.useMemo(
() => createTheme(theme, locales[locale]),
[locale, theme],
);
return (
<Box sx={{ width: '100%' }}>
<ThemeProvider theme={themeWithLocale}>
<Autocomplete
options={Object.keys(locales)}
getOptionLabel={(key) => `${key.substring(0, 2)}-${key.substring(2, 4)}`}
style={{ width: 300 }}
value={locale}
disableClearable
onChange={(event: any, newValue: string | null) => {
setLocale(newValue as SupportedLocales);
}}
renderInput={(params) => (
<TextField {...params} label="Locale" fullWidth />
)}
/>
<TablePagination
count={2000}
rowsPerPage={10}
page={1}
component="div"
onPageChange={() => {}}
/>
</ThemeProvider>
</Box>
);
}
:::warning Data Grid와 Data Grid Pro 컴포넌트는 자체적인 지역화를 갖고 있어요. :::
지원되는 로캘 (Supported locales)
| Locale | BCP 47 language tag | Import name |
|---|---|---|
| Amharic | am-ET | amET |
| Arabic (Egypt) | ar-EG | arEG |
| Arabic (Saudi Arabia) | ar-SA | arSA |
| Arabic (Sudan) | ar-SD | arSD |
| Armenian | hy-AM | hyAM |
| Azerbaijani | az-AZ | azAZ |
| Bangla | bn-BD | bnBD |
| Bulgarian | bg-BG | bgBG |
| Catalan | ca-ES | caES |
| Chinese (Hong Kong) | zh-HK | zhHK |
| Chinese (Simplified) | zh-CN | zhCN |
| Chinese (Taiwan) | zh-TW | zhTW |
| Croatian | hr-HR | hrHR |
| Czech | cs-CZ | csCZ |
| Danish | da-DK | daDK |
| Dutch | nl-NL | nlNL |
| English (United States) | en-US | enUS |
| Estonian | et-EE | etEE |
| Finnish | fi-FI | fiFI |
| French | fr-FR | frFR |
| German | de-DE | deDE |
| Greek | el-GR | elGR |
| Hebrew | he-IL | heIL |
| Hindi | hi-IN | hiIN |
| Hungarian | hu-HU | huHU |
| Icelandic | is-IS | isIS |
| Indonesian | id-ID | idID |
| Italian | it-IT | itIT |
| Japanese | ja-JP | jaJP |
| Khmer | kh-KH | khKH |
| Kazakh | kk-KZ | kkKZ |
| Korean | ko-KR | koKR |
| Kurdish (Central) | ku-CKB | kuCKB |
| Macedonian | mk-MK | mkMK |
| Myanmar | my-MY | myMY |
| Malay | ms-MS | msMS |
| Nepali | ne-NP | neNP |
| Norwegian (bokmål) | nb-NO | nbNO |
| Norwegian (nynorsk) | nn-NO | nnNO |
| Pashto (Afghanistan) | ps-AF | psAF |
| Persian | fa-IR | faIR |
| Polish | pl-PL | plPL |
| Portuguese | pt-PT | ptPT |
| Portuguese (Brazil) | pt-BR | ptBR |
| Romanian | ro-RO | roRO |
| Russian | ru-RU | ruRU |
| Serbian | sr-RS | srRS |
| Sinhalese | si-LK | siLK |
| Slovak | sk-SK | skSK |
| Spanish | es-ES | esES |
| Swedish | sv-SE | svSE |
| Thai | th-TH | thTH |
| Turkish | tr-TR | trTR |
| Tagalog | tl-TL | tlTL |
| Ukrainian | uk-UA | ukUA |
| Urdu (Pakistan) | ur-PK | urPK |
| Vietnamese | vi-VN | viVN |
소스는 GitHub 저장소에서 찾을 수 있어요.
직접 번역을 만들거나 영어 텍스트를 커스터마이즈하려면 이 파일을 프로젝트에 복사하고 필요한 변경을 한 뒤, 그 로캘을 import 하면 됩니다.
pull request를 열어 Material UI에 새로운 번역을 기여하는 것도 고려해주세요.
다만 Material UI는 가장 흔한 100개 로캘을 지원하는 것을 목표로 하므로, 자주 사용되지 않는 로캘(예: 모국어 화자가 "겨우" 250만 명뿐인 gl-ES)에 대한 기여는 받지 않을 수도 있어요.
RTL 지원 (RTL Support)
아랍어, 페르시아어, 히브리어, 쿠르드어 등 오른쪽에서 왼쪽으로 쓰는 언어가 지원됩니다. 사용하려면 이 가이드를 따라가세요.
더 알아보기 (Learn more)
- Material UI 가이드 모아보기