स्थानीयकरण
हर बिल्ट-इन UI स्ट्रिंग (क्लोज़ बटन, pagination लेबल, सॉर्ट घोषणाएँ, अपलोड प्रॉम्प्ट…) locale रजिस्ट्री से होकर रिज़ॉल्व होती है। बंडल में केवल 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 बदलें — pagination लेबल और dialog बटन तुरंत अपडेट हो जाते हैं।
एक 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 तैयार अनुवादों के साथ आता है। हर एक स्वतंत्र मॉड्यूल है — केवल वही इम्पोर्ट करें जिसकी आपको ज़रूरत है (या मेल खाती .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 |
संदेश संदर्भ
पूरा key सेट 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) इंटरपोलेट करता है।