| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice |
Mam CMS, ktory by som chcel prelozit aj do inych jazykov. Nechcem to riesit tak, ze v URL sa zada parameter a prepne sa jazyk, ale uz pri instalacii si navolim jazyk a podla toho bude cele CMS v tom jazyku.
Chcem to spravit tak, ze v jednom subore (txt alebo json ci xml) by boli vsetky slova, ktore CMS obsahuje
napr. zrusit - cancel odoslat - send atd.
a vsade by sa z tohto suboru nahradili tie povodne slova. Neviem vsak ako to najlepsie spravit.
Keby som namiesto kazdeho slova vo vsetkych suboroch dal php premennu, boli by to stovky premennych, co by asi nebolo ok.
Navyse ak sa niekde vyskytnu slova aj v js subore, tak to mi je zas nanic. Ale zatial by som riesil iba php.
Ako to riesit?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 29.09.2016 13:21 | |
|
S tou hromadou premenných sa to môže zdať čudné, ale naozaj sa to tak robí. Resp nie premenné, ale prvky asociatívneho poľa.
Môžeš použiť nejaký template engine (smarty, twig...), alebo sa nimi aspoň inšpirovať. Pripadne sa inšpiruj nejakým frameworkom (laravel to veľmi pekne vyriešené)
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 30.09.2016 10:39 | |
|
mam to robene v template power - t.j. podobne ako smarty, tak skusim to teda s tymi premennymi. Rozmyslal som ,ze vyuzijem json, napr. Kód: { "a1": { "en":"Cancel", "sk":"Zrusiť" }, "a2": { "en":"Send", "sk":"Odoslať" }} a potom vlastne by som pouzil napr. $x[a1][en] atd... resp, pre moj system potom asociovane napr. {a1en}. Len po kazdom nacitani stranky potom musim nacitat get content toho json, ale to skusim spravit tak, aby to nacitalo len prvy krat do globalnej premennej.
|
|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 30.09.2016 10:45 | |
|
nie je lepsie si to napojit na databazu, spravit stlpce pre jazyky + premenna a celeho to po prvom nacitani uchovat do memcache a pracovat na tej urovni, pri kazdej zmene jazyka len nechat nacitat polozky znova a nechat po najdlhsiu dobu v memcache? samotna php zozere menej pamete pri nacitani stranky, naco vzdy nacitat cely jazyk ked je pouzita len jedna mutacia a len niektore casti z nej? takto to bude drzat cele v pameti memcache server, ktory je zvycajne na kazdom normalnejsom hostingu a takto nebude tymto textovym balastom zatazene php? ale len taky moj nazor na tuto vec, ze ci to nie je lepsie riesenie cez memcache a danym klucom ktorym sa nacita z neho dana hodnota, tym je db pouzita len raz kym nedojde k expiracii kluca alebo aktualizacii jazyka, resp pridania nejakej polozky
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 01.10.2016 8:06 | |
|
1. Chcelo by to niečo prehľadnejšie než json 2. Chcelo by to oddeliť jednotlivé jazyky do rôznych súborov. Takto budeš musieť načítať vždy všetky jazyky a z toho potom vybrať ten jeden. Tiež sa tak zjednoduší tvorba ďalších prekladov.
Koment od JanoF tiež stojí za zváženie.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 |
nezabudni, ze preklady nie su uplne take jednoduche, kedze musis riesis problemy ako napr. mnozne cisla (2-3 verzie slova), rody atd. s tou databazou som si nie uplne isty ci je to dobry napad. robit request kvoli kazdemu slovu? takze pri nacitani jednej stranky niekolko desiatok/stoviek requestov? zatial co subor nacitas iba raz. a cache bude pouzita rovnako ci je to subor alebo databaza, nie? ale mozno sa mylim, nie som na to expert
|
|
Registrovaný: 05.02.13 Prihlásený: 26.10.23 Príspevky: 59 Témy: 3 |
hatto prečo request na každé slovo? Jano hovorí správne, presne tak to používam aj ja vo svojich systémoch. Pri prvotnom načítaní stránky / zmene jazyka vytiahnem z DB všetky slová daného jazyka do poľa - pole uložím do memcache a mám hladký priebeh. A čo je ešte lepšie. Veľmi jednoducho na to spravíš rozhranie pre prekladateľov. S databázou sa pracuje lepšie ako so súbormi.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Nechápem prečo nespomenul niekto štandardný spôsob - gettext. Nie, miesto toho si každý bude vymýšľať svoj spôsob V každom prípade by OP mal využiť postup ako pôvodne odporučil BX - využiť existujúci systém, napr Twig. Memcache na toto vážne zamýšľané nebolo...
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 02.10.2016 19:06 | |
|
Standardy sposob ale neznamena, ze musi byt ten naj predsa, mne sa praveze memcache na taketo pouzitie paci ale ako sa hovori, sto ludi sto chuti.
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 19.10.2016 15:06 | |
|
a mozte mi zhruba priblizit, ako pracovat s memcache? Nasiel som toto: Kód: $memc = new Memcached(); $memc->addServer("host", 11211);
$data = $mysqli->query("SELECT * FROM test WHERE id = 1");
a teraz ako vytiahnem vsetky udaje z dtb do memcache? Bezne to robim nejak takto Kód: while($build = mysqli_fetch_array($data)) { echo $build['nazov']; } Proste ze ako to zapisat do memcache a ako k tym udajom pristupovat z lubovolnej inej podstranky, aby som stale nemusel davat query na dtb.
|
|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 19.10.2016 16:39 | |
|
http://www.9lessons.info/2012/02/memcached-with-php.htmlcez set nastavujes kluc a data k nemu, cez get ich zasa citas na zaklade kluca
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 19.10.2016 19:25 | |
|
super, dakujem za link!
Zial zistil som, ze na mojom serveri nie je instalovane memcache. Mozno by mi to na poziadanie zapli, lenze ten moj CMS system budem instalovat roznym ludom na rozne hostingy i servery, takze na to sa nemozem spoliehat, ze vsade bude ten memcache a potom zbytocne riesit so spravcami hostingov ci to mozu povolit atd...
Takze budem to riesit nejak, ze natiahnem data z dtb do nejakeho globalneho array, a na jednotlivych strankach dam zobrazit len tie, ktore dana stranka potrebuje. Pripadne sa vykona query na kazdej podstranke len na vytiahnutie tych slov, ktore stranka potrebuje, co je max. 5-6.
Je to CMS, nie je tam vela slov - hlavne menu, potom nejake nadpisy, a zvysok je obsah stranok, nazvy galerii ci noviniek, co si klient aj tak spravuje sam.
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 20.10.2016 10:35 | |
|
Ak tam nie sú desatisíce slov, tak to môžeš natiahnuť kľudne aj celé do pamäte a neriešiť to. Nemá zmysel robiť to zbytočne efektíve, ak je slov málo. Ak ale píšeš o nadpisoch a obsahu stránok v CMS, tak to je iná vec. To už budú záznamy v databázi, predpokladám, že budú editovateľné. A tam už je treba jazykové verzie zase riešiť inak a treba sa nad tým aj zamyslieť trocha inak.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 20.10.2016 13:20 | |
|
Jedna sa cisto o jazykovu verziu CMS systemu - SK a CZ. Cize obsah stranok si uzivatel napise vo svojom jazyku, to neriesim. Riesim iba samotne CMS - cize naozaj len par slov na kazdej stranke. Nadpismi som myslel nazvy sekcii v CMS, nie uzivatelsky obsah. Ide o to, aby si uzivatel mohol prepnut jazyk do CZ a niekto zase do SK. Cize v podstate len samotne rozhranie adminu. OK, vyriesil som to teda tymi par query na kazdej podstranke, a teraz robim este translator, kde bude mozne pridavat nove slova a ich preklady, pripadne menit a prekladat tie co su.
|
|
Registrovaný: 05.02.13 Prihlásený: 26.10.23 Príspevky: 59 Témy: 3 |
Ak to chápem správne, ty budeš ľudom - zákazníkom poskytovať zdrojáky? Alebo prečo to zaváhanie ohľadom viacerých hostingov? Dnes sa to už vo väčšine prípadov funguje tak (cloudovo), že súbory - zdrojáky máš u seba na servery (alebo VPS) a len kupuješ domeny pre zákazníka, ktorých DNS smeruje na tvoj server. Môžeš buď pre každú inštanciu vytvárať nové súbory (neodporúčam) alebo použiť jeden zdroják - pre všetky weby s vlastnými databázami.
A máš hneď vyriešenú bezpečnosť, customizáciu servera, jednoduchú správu a mnoho ďalšieho.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 Bydlisko: Levice | Napísal autor témy neopagan: 24.10.2016 14:14 | |
|
zakaznikom poskytujem len CMS na spravu ich webov, ktory nainstalujem na ich server. Ja nemam cloudovy server, nepotrebujem ho momentalne, tolko zakaznikov nemam, aby mi to vratilo investiciu. Len som chcel ten CMS lokalizovat, aby ho mali k dispozicii aj v inom jazyku. Uz som to vyriesil pomocou dtb, kde som ulozil slova aj v druhom jazyku a podla toho ako si to nastavi v CMS, tak taky jazyk mu nacita. Funguje to v pohode.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Jazyková mutácia v Ostatné | 2 | 327 | 19.11.2013 7:46 ChickenHunter79 | | Verzia PHP v PHP, ASP | 2 | 284 | 14.03.2014 21:30 shaggy | | Verzia browsera v JavaScript, VBScript, Ajax | 3 | 431 | 23.12.2011 22:52 shaggy | | verzia HDMI v Monitory, televízory a projektory | 14 | 1113 | 23.11.2018 6:15 zodiaq | | Mobilna verzia [ Choď na stránku: 1, 2 ] v Správy pre vedenie fóra | 35 | 6503 | 26.01.2015 20:02 Lessik | | verzia windowsu v Operačné systémy Microsoft | 2 | 447 | 03.12.2009 15:15 AsuSmaNiaK | | verzia directx v Operačné systémy Microsoft | 2 | 2942 | 09.11.2008 15:11 lurtz | | Mobilna verzia webu v HTML, XHTML, XML, CSS | 3 | 749 | 31.01.2012 14:23 stenley | | aka verzia visty? v Operačné systémy Microsoft | 7 | 463 | 14.06.2008 22:10 f_fabregas4 | | Beta verzia- hlúposť? v Operačné systémy Microsoft | 10 | 482 | 26.05.2008 21:00 Jaro | | ESET verzia 4 v Antivíry a antispywary | 3 | 778 | 04.04.2009 23:33 Bobface | | Spravna BIOS verzia [ Choď na stránku: 1, 2 ] v Operačné systémy Microsoft | 38 | 899 | 20.05.2016 20:35 chameleo | | Mobilna verzia webu. v Webdesign | 3 | 632 | 06.07.2017 17:05 killer | | PHP nová verzia v PHP, ASP | 4 | 441 | 27.12.2015 18:02 neopagan | | winamp najnovsia verzia v Audio programy | 2 | 614 | 03.08.2009 17:28 Denco1 | | jedoducha Live verzia v Operačné systémy Unix a Linux | 1 | 349 | 23.08.2010 11:06 walther |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|