Ko‘rinish va tillar
Rebrending — bu bitta raqam. O‘n bir til to‘g‘ridan-to‘g‘ri paketda keladi, ulardan biri o‘ngdan-chapga yoziladi, va buni yoqish uchun hech narsa sozlash shart emas.
Mavjud v0.1.0
Palitra — bitta raqam
Butun admin rangi OKLCH’dagi bitta rang tusidan (hue) hosil qilinadi. Bunda hech qanday sborka bosqichi va forklash kerak bo‘ladigan stil jadvali yo‘q.
FastFortSettings(
ui={"accent_hue": 232, "accent_chroma": 0.15},
)
accent_hue — 0 dan 360 gacha; accent_chroma — 0 dan 0.37 gacha. Har bir
aksent, chegara, fokus halqasi, hover holati va soya shu ikkita qiymatdan
kelib chiqadi — ikkala mavzuda ham.
HSL o‘rniga OKLCH tanlangan, chunki OKLCH’da namunani ochroq qilish uning xroma (chroma) qiymatini saqlab qoladi — HSL gradienti och tomonda kulrang tomon siljiydi, shuning uchun qo‘lda moslashtirilgan palitralar birgalikda saqlanishi kerak bo‘lgan qirqta HEX qiymatga aylanib qoladi.
Mavzular
ui={"theme": "system", "density": "comfortable"}
system · light · dark, shuningdek comfortable · compact. system —
standart qiymat bo‘lib, brauzer sozlamasiga amal qiladi; foydalanuvchi buni
admin sarlavhasining o‘zida o‘zgartirishi mumkin, va tanlov saqlanib qoladi.
Qaysi mavzu qo‘llanishini belgilaydigan flag boot.js tomonidan
o‘rnatiladi — bu birinchi chizishdan oldin ishlaydigan yagona skript. Boshqa
har qanday joyda bu bir kadr kech bo‘ladi, va bir kadr kechikish har bir
o‘tishda noto‘g‘ri palitraning ko‘zga tashlanadigan yarq etishiga olib
keladi.
O‘z CSS’ingiz
ui={"custom_css_url": "/static/admin-overrides.css"}
O‘rnatilgan stil jadvalidan keyin yuklanadi — u yettita kaskad qatlamidan
(00-reset … 06-widgets) iborat bo‘lib, bitta javobga birlashtiriladi.
Sizning faylingiz ularning barchasidan keyin joylashadi, shuning uchun oddiy
selektor !importantsiz ham g‘alaba qozonadi.
Boyitilgan matn muharriri
ui={"richtext_url": "https://cdn.example.com/ckeditor.js"}
FastFort textareani render qiladi va uni data-ff-richtext bilan
belgilaydi; bu ularni topadigan skriptning nomi. None oddiy textareani
qoldiradi — buzilgan muharrir emas, balki ishlaydigan boshqaruv elementi.
Muharrirni paketga qo‘shish muqobil variant bo‘lardi, lekin bu noto‘g‘ri
kelishuv: har bir loyiha uchun wheel ichida yarim megabayt muharrir, holbuki
ko‘pchilik boshqa muharrirni yoki umuman hech qaysisini xohlamaydi. Agar URL
boshqa manbada (origin) bo‘lsa, o‘sha manba CSP’ning script-srciga
qo‘shiladi — shuning uchun bu sozlama, shablon ichidan kiritib bo‘ladigan
narsa emas.
Muhit yorliqlari
ui={"environment_label": "PRODUCTION", "environment_tone": "danger"}
Sarlavhada info, warning yoki danger ohangida ko‘rsatiladi. Shu
tufayli kimningdir ochiq turgan ikkita oynasi orasidagi farq o‘qimasdan ham
ko‘rinadi.
Logotip va favicon
ui={"logo_url": "/static/logo.svg", "favicon_url": "/static/favicon.png"}
Tillar
O‘n bir til katalogi wheel ichida keladi: ingliz, o‘zbek, rus, turk, nemis, fransuz, ispan, xitoy, yapon, koreys va arab tillari.
Sozlash kerak bo‘lgan hech narsa yo‘q. Admin o‘rnatilgan zahoti allaqachon
tarjima qilingan bo‘ladi va standart holda brauzerning Accept-Language
sarlavhasiga amal qiladi.
ui={"language": None} # follow the browser — the default
ui={"language": "uz"} # pin every visitor to one language
None ataylab standart qiymat qilib olingan: adminini kim ochishidan qat’i
nazar bitta tilda ko‘rishni xohlaydigan loyiha buni ochiq aytishi kerak — aks
holda hamma jimgina ingliz tiliga qadab qo‘yiladi.
Arab tili joylashuvni teskari aylantiradi
Stil jadvali boshdan-oxir mantiqiy xususiyatlar (logical properties)
yordamida yozilgan — left emas, inset-inline-start; padding-left emas,
padding-inline. Bitta dir atributi butun adminni teskari aylantiradi: yon
panelni, jadval tekislanishini, breadcrumb ajratkichlarini, saralash
strelkalarini.
Test stil jadvalidagi fizik yo‘nalishlarni sanaydi va yangisi paydo bo‘lsa, muvaffaqiyatsiz tugaydi. Aynan ikkita ataylab qilingan istisno bor: checkbox belgisi (belgi — istalgan tilda ham belgi) va xarita, u skript tomonidan fizik piksellarda joylashtiriladigan koordinata fazosidir.
O‘z so‘zlaringizni tarjima qilish
FastFort o‘z interfeysini tarjima qiladi — tugmalarni, filtrlarni,
xabarlarni. U sizning model nomlaringizni tarjima qilmaydi, va verbose_name
katalog orqali o‘tkazilmaydi. Model nomi — bu sizning o‘z domeningiz uchun
sizning so‘zingiz, va uni o‘n bir tilda taxmin qilish freymvork qilishga
urinishi kerak bo‘lgan narsa emas. Django ham sizning model nomlaringizni
tarjima qilmaydi.
O‘z satrlaringiz uchun:
ui={"locale_dir": "app/locale"}
Yozuvlari FastFortning o‘z yozuvlaridan ustun turadigan <language>.json
fayllari joylashgan katalog.
{
"Products": "Mahsulotlar",
"Shipments": "Jo'natmalar",
"Mark discontinued": "Ishlab chiqarishdan olindi deb belgilash"
}
Brauzer tomonidagi skript chizadigan satrlar
Vidjet o‘zi chizadigan har qanday narsa — taqvimdagi oy nomlari, davomiylik
boshqaruv elementining yorliqlari, buyruqlar palitrasining placeholder’i — bu
server yuboradigan satr bo‘lib, <html> ustidagi data-ff-t-*
atributlari orqali uzatiladi.
Skript barcha tillar uchun keshlanadigan bitta fayl, shuning uchun unda foydalanuvchiga ko‘rinadigan ingliz tilidagi matn bo‘lishi mumkin emas. Test skriptning zaxira (fallback) jadvalini serverdagisi bilan solishtiradi, chunki mos kelmaslik biror boshqaruv elementini barcha tillarda ingliz tilida qoldirib ketadi va bu hech narsani muvaffaqiyatsiz qilmaydi.
Vaqt zonasi
ui={"timezone": "Asia/Tashkent"}
Sana-vaqtlar har doimgidek saqlanadi va shu vaqt zonasida ko‘rsatiladi.