Mi a legelegánsabb megoldás arra, hogy többnyelvű weboldalt készíts?
Megbíztak egy ilyen feladattal, és elég kezdő vagyok. Én arra gondoltam, hogy minden oldalnak és aloldalnak elkészítem az angol nyelvű változatát, és a backend mindig azt küldi ki a felhasználónak, amelyik nyelvet választotta. Például az index oldalnak lesz egy angol nyelvű változata is, mondjuk index_EN néven, és ha kiválasztja a USER az angol nyelvet, akkor az aktuális oldal angol változatát kapja meg. Illetve az űtválasztás úgy lenne megoldva, hogy a magyar nyelvű oldalakon a linkek mindig a magyar nyelvű aloldal változatokra mutassanak, az angol változaton meg értelemszerűen az angolra. Viszont néha eléggé bele lehet kavarodni abba, hogy most melyik oldal hova linkel. Ja meg SÜTIkkel gondoltam megjegyeztetni, hogy a felhasználó utoljára melyik nyelvet választotta, és akkor ha legközelebb meglátogatja az oldalt, akkor egy script rögtön átirányítja arra a nyelvre, amin utoljára volt. De ez így nem sok, hogy minden oldalból 2 változat van?
ELőször arra gondoltam, h az összes szöveget elmentem egy JSON file-ba, és mindig az aktuális nyelvnek megfelelőt olvasom be és rendereltetem ki, de az meg baromi erőforrás igényes, és még jobban bele lehet kavarodni. Valszeg ezt a megoldást sehol nem használják a weben, max a játékiparban.
4: gyakorlatilag igen. Azt azért megsúgom, hogy az nem keretrendszer, csak egy modul..
5: például, hogy mikor én középiskolás voltam (nem most volt...), már akkor is röhejes volt az asp, pláne ma.
Sajnos én se tartom egy jó megoldásnak, baromi kényelmetlen használni, sokkal gyorsabban meg lehetne írni a backendet PHP-val mondjuk, de a munkahelyemen ezt használják, úgyhogy ezen nem tudok változtatni. Sajnos.
Azt pedig külön köszönöm, hogy felhívtad a figyelmem arra, hogy ez csak egy modul, néha hajlamos vagyok ilyen téren hanyagul fogalmazni.
Én megírtam először egyébként egy ugyan ilyen megoldást, működött is, de asp.net-ben nem annyira könnyű ezt megvalósítani. Kezdjük azzal, hogy a JSON fileból csak osztályt lehet csinálni, ami memóriigényes, de végülis C#-ban minden egy objektum, szóval ezen felül is lehet emelkedni. A második probléma, hogy ezt az osztályt mindig át kell adni a VIEWnak, de előtte inicializálni kell, ami azt jelenti, hogy minden alkalommal mikor betöltesz egy oldalt, akkor lefut a JSON file memóriába való beolvasása, ami megint csak idő.
A körfolyamat az lenne, hogy a felhasználó oldalt vált, akkor a vezérlő létrehoz egy nyelvi objektumot, ami beolvassa a megfelelő JSON filet, amit aztán átad a VIEWnak és azt visszaküldi a felhasználónak. Az én megoldásommal meg rögtön a megfelelő nyelvű nézetet adom vissza. Mondjuk annyi a baj, hogy ha épp űrlap kitöltés közben vált nyelvet, akkor valszeg elvesznek az adatok, de ezt nem tudom, annyira még nem ismerem az adatkötéseket aspben.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!