ლოკალიზაცია
ყველა ჩაშენებული 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 — გვერდების ნავიგაციის ეტიკეტები და დიალოგის ღილაკები მყისიერად განახლდება.
locale-ის არჩევა
// Web
<ZephoraConfigProvider locale="tr">...</ZephoraConfigProvider>
// React Native
<ZephoraProvider theme={lightTheme} locale="tr">...</ZephoraProvider>მორგებული locale-ის რეგისტრაცია
addLocale თქვენს შეტყობინებებს ინგლისურის ზემოდან ერწყმის, ამიტომ ნაწილობრივი განსაზღვრებები უსაფრთხოა. updateLocale არსებულს ასწორებს.
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 მზა თარგმანით. თითოეული დამოუკიდებელი მოდულია — დააიმპორტეთ მხოლოდ ის, რაც გჭირდებათ (ან fetch-ით მიიღეთ შესაბამისი .json).
| კოდი | ენა | იმპორტის გზა |
|---|---|---|
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). ჩანაცვლებები იყენებს {param} სინტაქსს, რომელსაც t(key, params) ინტერპოლირებს.