Локализация
Әр кірістірілген UI мәтіні (жабу түймелері, пагинация белгілері, сұрыптау хабарламалары, жүктеу сұраулары…) locale тізілімі арқылы шешіледі. Bundle-ге тек en кірістірілген — қалған әр тіл сырттан (импортталатын модуль немесе JSON файл) жүктеліп, addLocale арқылы тіркеледі. Дәл сол тізілім @zephora/react мен @zephora/native-ті басқарады. en, tr.
Locale жүктеу
// 1) As a module (tree-shaken, typed):
import { addLocale } from "@zephora/react";
import { trLocale } from "@zephora/theme/locales/tr";
addLocale("tr", trLocale);
// 2) As JSON over the network (e.g. from your CDN):
const messages = await fetch("/locales/tr.json").then((r) => r.json());
addLocale("tr", messages);
// JSON dosyası pakette hazır: @zephora/theme/locales/tr.jsonТірі демо
Locale-ді ауыстырыңыз — пагинация белгілері мен dialog түймелері лезде жаңарады.
Locale таңдау
// Web
<ZephoraConfigProvider locale="tr">...</ZephoraConfigProvider>
// React Native
<ZephoraProvider theme={lightTheme} locale="tr">...</ZephoraProvider>Теңшелетін locale тіркеу
addLocale хабарламаларыңызды ағылшын тілінің үстіне біріктіреді, сондықтан ішінара анықтамалар қауіпсіз. updateLocale бар locale-ді жамайды.
import { addLocale, updateLocale } from "@zephora/react";
addLocale("de", {
intlLocale: "de",
firstDayOfWeek: 1,
close: "Schließen",
cancel: "Abbrechen",
confirm: "Bestätigen",
loading: "Wird geladen…",
pageOf: "Seite {page} von {count}",
});
updateLocale("de", { clear: "Leeren" });Өз компоненттеріңізде мәтіндерді оқу
import { useLocale, localeOption } from "@zephora/react";
function SaveBar() {
const { t } = useLocale();
return <Button>{t("apply")}</Button>;
}
// Outside React:
localeOption("cancel", "tr"); // "İptal"Қолжетімді locale-дер
48 дайын аудармамен жеткізіледі. Әрқайсысы дербес модуль — тек қажетін импорттаңыз (немесе сәйкес .json-ды fetch етіңіз).
| Код | Тіл | Импорт жолы |
|---|---|---|
ar | العربية (Arabic) | @zephora/theme/locales/ar |
az | Azərbaycanca (Azerbaijani) | @zephora/theme/locales/az |
bg | Български (Bulgarian) | @zephora/theme/locales/bg |
bn | বাংলা (Bengali) | @zephora/theme/locales/bn |
ca | Català (Catalan) | @zephora/theme/locales/ca |
cs | Čeština (Czech) | @zephora/theme/locales/cs |
da | Dansk (Danish) | @zephora/theme/locales/da |
de | Deutsch (German) | @zephora/theme/locales/de |
el | Ελληνικά (Greek) | @zephora/theme/locales/el |
es | Español (Spanish) | @zephora/theme/locales/es |
et | Eesti (Estonian) | @zephora/theme/locales/et |
fa | فارسی (Persian) | @zephora/theme/locales/fa |
fi | Suomi (Finnish) | @zephora/theme/locales/fi |
fr | Français (French) | @zephora/theme/locales/fr |
he | עברית (Hebrew) | @zephora/theme/locales/he |
hi | हिन्दी (Hindi) | @zephora/theme/locales/hi |
hr | Hrvatski (Croatian) | @zephora/theme/locales/hr |
hu | Magyar (Hungarian) | @zephora/theme/locales/hu |
hy | Հայերեն (Armenian) | @zephora/theme/locales/hy |
id | Bahasa Indonesia (Indonesian) | @zephora/theme/locales/id |
is | Íslenska (Icelandic) | @zephora/theme/locales/is |
it | Italiano (Italian) | @zephora/theme/locales/it |
ja | 日本語 (Japanese) | @zephora/theme/locales/ja |
ka | ქართული (Georgian) | @zephora/theme/locales/ka |
kk | Қазақша (Kazakh) | @zephora/theme/locales/kk |
ko | 한국어 (Korean) | @zephora/theme/locales/ko |
lt | Lietuvių (Lithuanian) | @zephora/theme/locales/lt |
lv | Latviešu (Latvian) | @zephora/theme/locales/lv |
ms | Bahasa Melayu (Malay) | @zephora/theme/locales/ms |
nl | Nederlands (Dutch) | @zephora/theme/locales/nl |
no | Norsk bokmål (Norwegian) | @zephora/theme/locales/no |
pl | Polski (Polish) | @zephora/theme/locales/pl |
pt | Português (Portuguese) | @zephora/theme/locales/pt |
pt-br | Português do Brasil (Brazilian Portuguese) | @zephora/theme/locales/pt-br |
ro | Română (Romanian) | @zephora/theme/locales/ro |
ru | Русский (Russian) | @zephora/theme/locales/ru |
sk | Slovenčina (Slovak) | @zephora/theme/locales/sk |
sl | Slovenščina (Slovenian) | @zephora/theme/locales/sl |
sr | Srpski (Serbian) | @zephora/theme/locales/sr |
sv | Svenska (Swedish) | @zephora/theme/locales/sv |
sw | Kiswahili (Swahili) | @zephora/theme/locales/sw |
ta | தமிழ் (Tamil) | @zephora/theme/locales/ta |
th | ไทย (Thai) | @zephora/theme/locales/th |
tr | Türkçe (Turkish) | @zephora/theme/locales/tr |
uk | Українська (Ukrainian) | @zephora/theme/locales/uk |
vi | Tiếng Việt (Vietnamese) | @zephora/theme/locales/vi |
zh-cn | 简体中文 (Simplified Chinese) | @zephora/theme/locales/zh-cn |
zh-tw | 繁體中文 (Traditional Chinese) | @zephora/theme/locales/zh-tw |
Хабарлама анықтамасы
Толық кілттер жиыны ZephoraLocale типінде орналасқан — әрекеттер (close, cancel, confirm, clear…), деректер күйлері (loading, noData, emptyMessage), форма мәтіндері (showPassword, browseFiles, removeFile), навигация (pageOf, nextPage, breadcrumb), деректерді көрсету (sortAscending, selectAllRows, goToSlide) және күндер (prevMonth, chooseDate, firstDayOfWeek, intlLocale). Толтырғыштар t(key, params) арқылы интерполяцияланатын {param} синтаксисін қолданады.