[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
NapísalOffline : 29.09.2016 12:42 | jazykova verzia

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?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 09.12.16
Príspevky: 1333
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 29.09.2016 13:21 | jazykova verzia

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!
Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
Napísal autor témyOffline : 30.09.2016 10:39 | jazykova verzia

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.


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
jazykova verzia

Registrovaný: 01.05.05
Príspevky: 11402
Témy: 1420 | 1420
Bydlisko: Bratislava
Vek: 31
NapísalOffline : 30.09.2016 10:45 | jazykova verzia

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


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | MSI NVIDIA GeForce GTX 750Ti 2 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 4000 GB | Logitech Wireless Illuminated K800 | Logitech Wireless G700s & Razer Kabuto | Logitech Wireless F710 | 24" LCD Eizo FlexScan S2431WE | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | BlackBerry Passport 32 GB | Samsung Galaxy Tab A6 10.1 LTE 80 GB (ROOT) | Nintendo Classic Mini
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 09.12.16
Príspevky: 1333
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 01.10.2016 8:06 | jazykova verzia

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!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.02.14
Prihlásený: 09.12.16
Príspevky: 431
Témy: 9 | 9
NapísalOffline : 01.10.2016 11:04 | jazykova verzia

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 ;)


Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 05.02.13
Prihlásený: 09.12.16
Príspevky: 58
Témy: 3 | 3
NapísalOffline : 01.10.2016 17:01 | jazykova verzia

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
jazykova verzia

Registrovaný: 24.01.08
Prihlásený: 09.12.16
Príspevky: 14462
Témy: 65 | 65
Bydlisko: Žilina
Vek: 29
NapísalOffline : 01.10.2016 17:42 | jazykova verzia

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, ...
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
jazykova verzia

Registrovaný: 01.05.05
Príspevky: 11402
Témy: 1420 | 1420
Bydlisko: Bratislava
Vek: 31
NapísalOffline : 02.10.2016 19:06 | jazykova verzia

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.


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | MSI NVIDIA GeForce GTX 750Ti 2 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 4000 GB | Logitech Wireless Illuminated K800 | Logitech Wireless G700s & Razer Kabuto | Logitech Wireless F710 | 24" LCD Eizo FlexScan S2431WE | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | BlackBerry Passport 32 GB | Samsung Galaxy Tab A6 10.1 LTE 80 GB (ROOT) | Nintendo Classic Mini
Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
Napísal autor témyOffline : 19.10.2016 15:06 | jazykova verzia

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.


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
jazykova verzia

Registrovaný: 01.05.05
Príspevky: 11402
Témy: 1420 | 1420
Bydlisko: Bratislava
Vek: 31
NapísalOffline : 19.10.2016 16:39 | jazykova verzia

http://www.9lessons.info/2012/02/memcached-with-php.html

cez set nastavujes kluc a data k nemu, cez get ich zasa citas na zaklade kluca


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | MSI NVIDIA GeForce GTX 750Ti 2 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 4000 GB | Logitech Wireless Illuminated K800 | Logitech Wireless G700s & Razer Kabuto | Logitech Wireless F710 | 24" LCD Eizo FlexScan S2431WE | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | BlackBerry Passport 32 GB | Samsung Galaxy Tab A6 10.1 LTE 80 GB (ROOT) | Nintendo Classic Mini
Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
Napísal autor témyOffline : 19.10.2016 19:25 | jazykova verzia

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 09.12.16
Príspevky: 1333
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 20.10.2016 10:35 | jazykova verzia

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!
Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
Napísal autor témyOffline : 20.10.2016 13:20 | jazykova verzia

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.


Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 05.02.13
Prihlásený: 09.12.16
Príspevky: 58
Témy: 3 | 3
NapísalOffline : 21.10.2016 9:04 | jazykova verzia

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.


Offline

Užívateľ
Užívateľ
jazykova verzia

Registrovaný: 07.08.06
Prihlásený: 02.11.16
Príspevky: 891
Témy: 251 | 251
Bydlisko: Levice
Napísal autor témyOffline : 24.10.2016 14:14 | jazykova verzia

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.


 [ Príspevkov: 16 ] 


jazykova verzia



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Jazyková mutácia

v Ostatné

2

108

19.11.2013 7:46

ChickenHunter79

V tomto fóre nie sú ďalšie neprečítané témy.

Mobilna verzia

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Správy pre vedenie fóra

35

3695

26.01.2015 20:02

Lessik

V tomto fóre nie sú ďalšie neprečítané témy.

verzia windowsu

v Operačné systémy Microsoft

2

250

03.12.2009 15:15

AsuSmaNiaK

V tomto fóre nie sú ďalšie neprečítané témy.

verzia directx

v Operačné systémy Microsoft

2

2727

09.11.2008 15:11

lurtz

V tomto fóre nie sú ďalšie neprečítané témy.

Verzia PHP

v PHP, ASP

2

85

14.03.2014 21:30

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Verzia browsera

v JavaScript, VBScript, Ajax

3

207

23.12.2011 22:52

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

jedoducha Live verzia

v Operačné systémy Unix a Linux

1

133

23.08.2010 11:06

walther

V tomto fóre nie sú ďalšie neprečítané témy.

mobilna verzia stranky

v HTML, XHTML, XML, CSS

21

342

29.09.2015 21:13

JustMe

V tomto fóre nie sú ďalšie neprečítané témy.

Education verzia Corelu

v Ostatné

1

164

11.05.2009 11:04

Svolo

V tomto fóre nie sú ďalšie neprečítané témy.

Win7 (64bit verzia)

v Pamäte

23

1269

29.01.2010 16:51

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

OEM verzia Vista

v Operačné systémy Microsoft

15

1702

27.01.2008 18:57

T.L.A.K.

V tomto fóre nie sú ďalšie neprečítané témy.

Idealna verzia OS

v Operačné systémy Microsoft

7

104

04.09.2016 12:02

Miso122

V tomto fóre nie sú ďalšie neprečítané témy.

Mobilna verzia webu

v HTML, XHTML, XML, CSS

3

375

31.01.2012 14:23

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

aka verzia visty?

v Operačné systémy Microsoft

7

289

14.06.2008 22:10

f_fabregas4

V tomto fóre nie sú ďalšie neprečítané témy.

Beta verzia- hlúposť?

v Operačné systémy Microsoft

10

223

26.05.2008 21:00

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

ESET verzia 4

v Antivíry a antispywary

3

585

04.04.2009 23:33

Bobface



Powered by phpBB 3.x.x © 2005 - 2016 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF