Najboljši način za večjezičnost
 
SlimDeluxe 2. jun 2010 12:57:25 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#1

Zdravo,

zanima me, če ma kdo kakšno idejo, kateri je najboljši-najhitrejši način za parsanje jezikovnih datotek.



Npr. zdaj imam tako, v cookieu se prebere trenutna nastavitev in se potem includa ustrezen php language file.

Not so stringi v arrayu:


lang['product_stock'] = "Zaloga";
lang['product_info'] = "informacije o izdelku";

Razmišljam, da bi naredil tako:


lang['product_stock']['slovenian'] = "Zaloga";
lang['product_stock']['english'] = "Stock";

Tako stvar je lažje vzdrževat, kot tako kot imam v prvem primeru, ker npr. kakšenkrat pozabim dodati ali spremeniti string v vseh jezikih (vsak jezik v svoji mapi).



Zend ima menda jezikovne stringe v ini fileu.


product_stock = "Zaloga"

Dodatna slabost obeh pristopov je, da je težje narediti fallback. Npr. če enega stringa ni, se uporabi string od default jezika.

Druga slabost je pa ta, da je težje narediti spletni vmesnik za elegantno urejanje. Večina sistemov ima kar velik textbox, notri je pa vsebina celega file-a.



Zato sem mislil, da bi zadevo morda naredil v XML datotekah.

Npr:


<languagefile name="product" default="slovenian">
<string key="product_stock">
<value>Zaloga</value>
<translation lang="english">Stock</translation>
</string>
</languagefile>

Preden začnem naprej razmišljati, mislite, da bi to bilo po performancu nekje kot tisto zgoraj?

Celo dom drevo (ali več njih) bi ob začetku prebral v en 2d array, enkapsuliral v objekt in potem klical z globalno funkcijo (kot imam sedaj) v stilu <?=lang('product_stock);?> v view-u.


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
Vini 2. jun 2010 13:08:01 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

Oglej si gettext.


všeč(2) ni všeč(0) spam(0)
 
perro 4. jun 2010 11:22:49 Pridružen od:
4. jun 2010
32 objav
47 6 3
#3

Tukaj pa najdeš tutorial za gettext.


všeč(1) ni všeč(0) spam(0)
..::.. times.si ..::.. joore.si ..::.. perro.si ..::..
 
Vini 4. jun 2010 11:28:36 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#4

Lahko pa počakaš do PHP konference in greš tam na delavnico Gašperja Kozaka :)


všeč(0) ni všeč(0) spam(0)
 
bostjan 4. jun 2010 11:45:51 Pridružen od:
31. jul 2008
643 objav
689 30 9
#5

Zend ima cel kup adapterjev (na njihovi strani je tudi na kratko napisano za kaj se kateri priporoča)



Na voljo maš ini datoteko, gettext, php array, ....



Sam sem nazadnje uporabil kar php array ker ni bilo nekaj veliko teksta (cca. 30 vrstic) in se je super odneslo


všeč(0) ni všeč(0) spam(0)
 
b00mbar 7. jun 2010 15:00:21 Pridružen od:
18. jun 2008
350 objav
554 127 18
#6

Ena varjanta je, da narediš eno simple funkcijo _($text), ki vrne tekst glede na pripadajoči jezik. Se pravi, če pokličeš _('Hello') poišče po nekem arrayu, če imaš jezikovno različico za Hello in v kolikor obstaja, jo echoja, sicer pa echoja 'Hello', kar je tudi default jezik potem. Tako prideš do zelo kratke sintakse, za narest je pa zelo izi...


všeč(1) ni všeč(0) spam(0)
Garantirano najhitrejše pure SSD Reseller gostovanje ( PHP7.1, Opcache, Nginx, MariaDB, Let's encrypt) | Brezplačna selitev strani in pošte | 400+ domen po izjemnih cenah
www.neoserv.si
 
DiTi 8. jun 2010 20:06:07 Pridružen od:
3. apr 2010
324 objav
218 7 1
#7

eno kratko vprašanje glede na večjezičnost. je pametno shranjevati izbrani jezik v piškot in potem glede na piškot prikazati jezik ali je bolje s urlji, recimo domen.com/si/ in potem rešiš pač da če si na slo in klikneš eng, da te da na isto stran kjer si kliknil in ne na index (tega problema recimo pri piškotih nimaš).


všeč(0) ni všeč(0) spam(0)
 
blackmamba 8. jun 2010 21:09:46 Pridružen od:
4. mar 2008
559 objav
392 25 11
#8

Kratek odgovor:

url da, cookie ne



Daljši odgovor:

language imej v urlju, po potrebi pa ga shrani še v cookie. S cookijem lahko uporabnika, ko se vrne, redirectaš direktno na njegov jezik.


všeč(0) ni všeč(0) spam(0)
 
bostjan 9. jun 2010 08:32:53 Pridružen od:
31. jul 2008
643 objav
689 30 9
#9

jaz imam vedno "domena.com/en (sl, ....)"

prav tako pa shranim še v cookie, da v kolikor uporabnik pride nazaj in vtipka samo domeno veš kaj prikazat


všeč(0) ni všeč(0) spam(0)
 
Jure Damjan 9. jun 2010 08:35:39 Pridružen od:
4. okt 2007
4162 objav
4222 446 55
#10

blackmamba:

Kratek odgovor:

url da, cookie ne



Daljši odgovor:

language imej v urlju, po potrebi pa ga shrani še v cookie. S cookijem lahko uporabnika, ko se vrne, redirectaš direktno na njegov jezik.




TO bi bila najboljsa resitev. Vedno pa morajo biti URLji na voljo, da človek lahko zamenja v drug jezik.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se