RTL nga
Ammuem no kasano nga ipalubos ti suporta para iti kannawan-aginggana-iti-kannigid a teksto iti Bootstrap iti ballasiw ti layout, paset, ken utilidadmi.
Pamiliarkayo
Irekomendarmi a pamiliar nga umuna iti Bootstrap babaen ti panangbasa iti panidmi iti Panangrugi nga Introduksion . Apaman a nakatarayka iti dayta, itultuloymo ti agbasa ditoy no kasano nga ipalubos ti RTL.
Mabalinmo pay a kayat ti basaen nga agpangato iti proyekto ti RTLCSS , ta daytoy ket mangpabileg ti wagasmi iti RTL.
Eksperimental a tampok
Ti tampok ti RTL ket eksperimental pay laeng ken nalabit nga agbaliwto segun ti feedback ti agar-aramat. Adda nakitam wenno adda isingasingmo a panagrang-ay? Open an issue , kayatmi a maala dagiti pannakaawatmo.
Masapul nga HTML
Adda dagiti dua a nainget a kasapulan para iti panangipalubos ti RTL kadagiti panid a paandaren ti Bootstrap.
- Itakderan
dir="rtl"
ti<html>
elemento. - Manginayon ti maitutop nga
lang
attribute, kas tilang="ar"
, iti<html>
elemento.
Manipud sadiay, kasapulam nga iraman ti RTL a bersion ti CSS-tayo. Kas pagarigan, ditoy ti stylesheet para iti naurnong ken napabassit a CSStayo nga addaan iti RTL a napalubosan:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.rtl.min.css" integrity="sha384-+qdLaIRZfNu4cVPK/PxJJEy0B0f3Ugv8i482AKY7gwXwhaCroABd086ybrVKTa0q" crossorigin="anonymous">
Plantilia ti pangrugian
Mabalinmo a kitaen dagiti kasapulan iti ngato a naiparangarang iti daytoy a nabaliwan a plantilia ti pangrugian ti RTL.
<!doctype html>
<html lang="ar" dir="rtl">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.rtl.min.css" integrity="sha384-+qdLaIRZfNu4cVPK/PxJJEy0B0f3Ugv8i482AKY7gwXwhaCroABd086ybrVKTa0q" crossorigin="anonymous">
<title>مرحبا بالعالم!</title>
</head>
<body>
<h1>مرحبا بالعالم!</h1>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa03rtR1zdB" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
-->
</body>
</html>
Dagiti pagarigan ti RTL
Mangrugi iti maysa kadagiti sumagmamano a pagarigantayo iti RTL .
Sungaden
Ti wagasmi a mangbangon ti suporta ti RTL iti Bootstrap ket umay nga addaan iti dua a napateg a pangngeddeng a mangapektar no kasano ti panagsurat ken panagusarmi iti CSS-mi:
-
Umuna, inkeddengmi a bangonen dayta babaen ti proyekto nga RTLCSS . Daytoy ket mangted kadatayo kadagiti sumagmamano a nabileg a tampok para iti panagituray kadagiti panagbalbaliw ken dagiti panangibabawi no umakar manipud iti LTR aginggana iti RTL. Daytoy ket mangipalubos pay kadatayo a mangbangon ti dua a bersion ti Bootstrap manipud iti maysa a codebase.
-
Maikadua, binaliwanmi ti nagan ti sumagmamano a klase ti direksion tapno mangadaptar iti lohikal a pamay-an dagiti tagikua. Kaaduan kadakayo ket nakilangen kadagiti lohikal a tagikua gapu kadagiti flex utilities-mi—suktanda dagiti tagikua ti direksion a kas
left
kenright
paborstart
kenend
. Dayta ket mangaramid kadagiti nagan ti klase ken dagiti pateg a maitutop para iti LTR ken RTL nga awan ti ania man nga overhead.
Kas pagarigan, imbes a .ml-3
para iti margin-left
, usaren ti .ms-3
.
Ti panagtrabaho iti RTL, babaen ti taudantayo a Sass wenno naurnong a CSS, ket saan koma a naiduma unay manipud iti default nga LTRtayo nupay kasta.
Ipasayaat manipud iti gubuayan
No maipapan iti panagpasayaat , ti kaykayat a wagas ket ti pananggundaway kadagiti variable, mapa, ken mixin. Daytoy nga asitgan ket agtrabaho a kapada para iti RTL, urayno daytoy ket post-proseso manipud kadagiti naurnong a papeles, gapu ti no kasano ti panagtrabaho ti RTLCSS .
Dagiti kostumbre a pateg ti RTL
Babaen ti panagusar kadagiti direktiba ti pateg ti RTLCSS , mabalinmo nga aramiden ti maysa a variable a rimmuar a naiduma a pateg para iti RTL. Kas pagarigan, tapno mapabassit ti dagsen para iti $font-weight-bold
intero a codebase, mabalinmo nga usaren ti /*rtl: {value}*/
sintaksis:
$font-weight-bold: 700 #{/* rtl:600 */} !default;
A mangiruar koma kadagiti sumaganad para iti default a CSS ken RTL CSStayo:
/* bootstrap.css */
dt {
font-weight: 700 /* rtl:600 */;
}
/* bootstrap.rtl.css */
dt {
font-weight: 600;
}
Alternatibo nga stack ti letra
Iti kaso nga agus-usarkayo iti kostumbre a letra, ammom a saan nga amin a letra ket mangsuporta iti saan a Latin nga alpabeto. Tapno agsubli manipud iti Pan-Europeano nga agturong iti Arabiko a pamilia, mabalin a kasapulam nga usaren /*rtl:insert: {value}*/
iti stack ti letramo tapno baliwam dagiti nagan dagiti pamilia ti letra.
Kas pagarigan, tapno agsubli manipud Helvetica Neue Webfont
para iti LTR aginggana Helvetica Neue Arabic
iti para iti RTL, ti kodigom ti Sass ket kastoy ti langa:
$font-family-sans-serif:
Helvetica Neue #{"/* rtl:insert:Arabic */"},
// Cross-platform generic font family (default user interface font)
system-ui,
// Safari for macOS and iOS (San Francisco)
-apple-system,
// Chrome < 56 for macOS (San Francisco)
BlinkMacSystemFont,
// Windows
"Segoe UI",
// Android
Roboto,
// Basic web fallback
Arial,
// Linux
"Noto Sans",
// Sans serif fallback
sans-serif,
// Emoji fonts
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
LTR ken RTL nga aggigiddan
Kasapulan kadi ti agpada nga LTR ken RTL iti isu met laeng a panid? Thanks to RTLCSS String Maps , daytoy ket medyo diretso. Balkoten ti @import
s mo iti maysa a klase, ken mangikeddeng ti kostumbre a pagannurotan ti panagbalbaliw ti nagan para iti RTLCSS:
/* rtl:begin:options: {
"autoRename": true,
"stringMap":[ {
"name": "ltr-rtl",
"priority": 100,
"search": ["ltr"],
"replace": ["rtl"],
"options": {
"scope": "*",
"ignoreCase": false
}
} ]
} */
.ltr {
@import "../node_modules/bootstrap/scss/bootstrap";
}
/*rtl:end:options*/
Kalpasan ti panagtaray ti Sass kalpasanna ti RTLCSS, tunggal maysa a mangpili kadagiti CSS a papelesmo ket maisaksakbay babaen ti .ltr
, ken .rtl
para kadagiti RTL a papeles. Ita mabalinmon nga usaren ti agpada a file iti isu met laeng a panid, ken usarem laeng .ltr
wenno .rtl
kadagiti components wrappers-mo tapno usarem ti maysa wenno ti sabali a direksion.
Edge cases ken ammo a limitasion
Nupay maawatan daytoy a pamay-an, pangngaasiyo ta asikasuenyo dagiti sumaganad:
- No agsublika
.ltr
ken.rtl
, siguraduem nga inayonmodir
kenlang
dagiti attribute a maitunos iti dayta. - Ti panangikarga kadagiti agpada a papeles ket mabalin a maysa a pudno a bottleneck ti panagaramid: ibilang ti sumagmamano a panagoptimisar , ken mabalin a padasen nga ikarga ti maysa kadagita a papeles nga asynchronous .
- Dagiti estilo ti panagumok iti daytoy a wagas ket manglapped ti
form-validation-state()
mixinmi nga agtrabaho a kas nairanta, isu a kasapulan nga i-tweak-mo bassit daytoy a bukodmo. Kitaen ti #31223 .
Ti kaso ti breadcrumb
Ti breadcrumb separator ket isu laeng ti kaso a kasapulan ti bukodna a brand new a variable— nga isu ti $breadcrumb-divider-flipped
—defaulting iti $breadcrumb-divider
.