Imam i za css fileove…i za JS.
Za css sam si recimo uveo sintaksu:
@mobile{
... //ovdje idu pravila koja se tiču isključivo djelova stranice koji se prikazuju na mobitelima
}
@desktop{
...//...isključivo za desktop
}
I sad kompajler takav file razbija u dva css file-a, a framework je podešen tako da desktop clienta posluži samo sa onim css fileovima koji sadrže pravila isključivo za desktop…a mobile clienta samo sa pravilima za mobile.
U suštini je to stvar optimizacije jer nećeš svakom prosljeđivati sva pravila… desktop će dobiti samo ono što se njega tiče i mobiteli će dobiti samo ono što se njih tiče.
…ali pored optimizacije, ovako nešto ti daje potpunu kontrolu i da isporučuješ stranicu “as desktop version” ili “as mobile version”…po želji. Što je također praktično ponekad.
Ovo gore naravno ne isključuje i mogućnost korištenje @media screen pravila.
Osim toga taj moj css kompajler je omogućio i svašta nešto što srećeš u sass/less sintaksi. …ali to su oni ipak radili bolje, tako da bi radio kombinaciju. Prvo bi propustio kroz moj kompajler…pa onda tek kroz njihov.
Što se tiče JS-a, nisam puno utjecao na sintaksu…osim već spomenute sintakse za praktičnije zbrajanje varijabli sa stringom.
Ali to mi nije bilo primarno…to sam ubacio tek onako pošto sam već kompajlirao code, pa sam eto tako iz šale si omogućio i to proširenje sintakse. Bilo je svakako cool spoznati da se moguće uzdići iznad pravila ugrađene sintakse…i na toj razini također djelovati.
A zašto sam primarno kompajlirao code?
Zbog multilanguage …htio sam multilanguage integrirati da bude maksimalno jednostavan za onoga koji kodira…i da stvar bude optimizirana. Neke želje su bile:
- Da se ne učitava cijeli translation-data na client stranu, samo zato jer će negdje u javascriptu biti poneki komad teksta koji se prevodi.
- S druge strane nisam htio da itko mora gubiti sekundu svoga vremena da povezuje išta oko varijabli za prijevod.
- Da prijevodi nisu pred developerom u obliku varijabli…nego da doslovice kucaju stringove kako im padaju riječi na pamet…a da pozadinksi sustavi to sve hendlaju…
Vuglavnom, došao sam do toga da developer treba pisati ovako nešto:
var x = "{{ivo ide u školu.}}";
var days = {{['pon','uto','sri','čet','pet','sub','ned']}}; //ovo je zapravo array...i ova sintaksa bi skršila JS parser ukoliko moj predkompajler to nebi obradio.
…sve ostalo odrađuje kompajler.
Znači, developer samo treba u duple vitičaste staviti ono što želi da se prevodi…i dalje nit brige niti pameti za njega.
Također, developer je na ovaj način mogao prevoditi i komentare u codeu ako bi slučajno i tako nešto poželio, npr:
var x = 5+5; // {{Ovo je komentar koji će biti preveden nakon što kompajler obavi svoje}}
Btw…kompajler automatski surađuje sa admin panelom kojeg puni sa novim tekstovima za prijevod koji se pojave…tako da admini dobivaju notifikacije kada se pojave novi tekstovi i sve je smooth and easy…
Također admin panel može povuči i automatske prijevode od Googlea API-a prije nego li oko admina baci konačni review prijevoda.
Uglavnom, bilo je toga jako puno vezano uz to multilanguage rješenje…mnogi su me hejtali kada sam to radio (ništa čudno :)) …a na kraju je ispalo da su neki poznati frameworci išli istim pristupom, hehe.
Ako će te zanimati, bila je tema gdje sam detaljnije opisao što sam i kako radio: Multilanguage web site
Evo i admin panela, kratki slatki video gdje se vidi kako stvar šljaka: https://www.youtube.com/watch?v=ppTFQf88PEo&t=2s
Ono što sam zahebao, sustav sam integrirao unutar jednog projekta…a nisam napravio admin panel kao vanjsku zasebnu jedinicu…s kojom bi mogao upravljati bilo kojim projektom. (Koji naravno plati da koristi moj alat za multilanguage :))
Ali to ću popraviti/nadograditi kada za to bude vrijeme.
Jer ovo rješenje koje sam osmislio, je zlato. 
P.S. taj compajler za ugradnju multilanguage-a jednako obrađuje i .js i .php fileove. Ako treba, mogu se prevoditi i djelovi .css file-a, hehe. Ma može bilo što obraditi …pa i obične .txt fileove ako ima potrebe. Nema baš nikakvog ograničenja.