logo

INTERNETNE STORITVE

- IZDELAVA SPLETNIH STRANI - OBLIKOVANJE - PROGRAMIRANJE DODATKOV

PHP - ZenCart - utf8 - slovenski jezik - slovenski prevod - pretvorba jezikov

Pisal sem že, kako PHP Zen Cart aplikaciji dodati UTF-8 podporo. Spremenili smo MySQL (podatkovno) strukturo, pretvorili podatke iz ISO-8559-1 v UTF-8 kodno tabelo in nastavili PHP in HTML header na UTF-8. Vendar, ko odprete spletno stran oz. trgovino se pojavijo ? (vprašaji) oz. čudni znaki. Zakaj?

Problem nastane, ker je bil slovenski prevod (Zen Cart 1.3.6 SLO by Silentek) shranjen oz. preveden v ISO-8859-2 (ISO-8859-1) kodni tabeli. Zato sem spisal PHP skripto, ki oprave sledeče operacije nad datotekami, ki vsebujejo prevode s sledečo strukturo:

PHP:
  1. define('KEYWORD', 'PREVOD');
  2. define('KEYWORD', klic_php_funkcije('ARGUMENTI'));

Operacije, ki jih izvede PHP skripta:

  • #1 Dobi vse prevode, ki ustrezajo zgoraj omenjeni strukturi
  • #2 Preveri ali je slovenski prevod celoten (primerja angleški jezik - primarni jezik)
  • #3 Manjkajoče prevode doda na koncu slovenskega - sekundarnega jezika oz. manjkajoče datoteke kopira iz primarnega (angleškega) k slovenskemu jeziku (sekundarni)
  • #4 Po potrebi opravi konverzijo med določeno kodno tabelo (ISO-8895-2 -> UTF-8)

Delovanje skripte:
Skripta je sestavljena tako, da jo lahko uporabite tudi na drugih portalih, ki uporabljajo tako strukturo (zgoraj omenjena) datotek za prevode. Najprej definirate kje lahko skripta najde datoteke primarnega jezika (največkrat angleški jezik) in kje lahko najde datoteke sekundarnega jezika. Določimo še predpono za novo kreirane jezične datoteke, saj ne želimo prepisati starih datotek. Skripta samodejna kreira isto strukturo, ki jo uporabljate za primarni in sekundarni jezik, tako da po končanem delovanju lahko preverite rezultat in nato le opravite copy/paste.

Na grobo lahko skripto razdelimo v tri sklope delovanja:

  • #1 Dobi vse datoteke iz primarnega in sekundarnega jezika. Iz vseh datotek dobi prevode (define)
  • #2 Vse prevode iz primarnega primerja pri sekundarnem jeziku in preveri ali kateri prevod manjka pri sekundarnem jeziku. Preveri tudi ali kakšna datoteka iz primarnega jezika manjka v sekundarnem jeziku (najpogosteje ko dodate dodaten modul, ki imajo privzeto le angleški jezik - primarni)
  • #3 Vse na novo kreirane datoteke pretvori v določeno kodno tabelo, v našem primeru v UTF-8

Nastavitve skripte:

PHP:
  1. // Basic settings
  2. $phpEnd = '?>'; // določite kako se konča vaša php skripta v jezikovnih datotekah
  3. $translateToEncoding = 'UTF-8'; // v katero kodno tabelo naj skripta pretvori vaše datoteke
  4. $previousEncodings = 'ISO-8859-2,ISO-8859-1'; // v katerih kodnih tabelah so zapisane vaše primarne datoteke za jezik (angleški) - najverjetneje v ISO-8559-1 oz. ISO-8559-2
  5. $languageFileExtension = '.php'; // kakšno končnico imajo vaše datoteke z prevodi (.inc mogoče?)
  6.  
  7. // File path settings
  8. $newFolderPathPrefix = 'jeziki'; // v katero pod-mapo naj shranjujemo nove datoteke - preprečimo prepis starih datotek
  9. $primaryLanguagePath = 'includes/languages/english'; // vaš primarni jezik (ponavadi angleščina)
  10. $secondaryLanguagePath = 'includes/languages/slovensko'; // vaš sekundarni jezik. Jezik katerega dopolnjujete (ponavadi slovenščina)
  11.  
  12. // Primarni - sekundarni jezik
  13. $primaryLanguage = 'english'; // kje je razlika pot med slovenskih in angleškim jezikom
  14. $secondaryLanguage = 'slovensko'// naprimer includes/languages/english, includes/languages/slovensko

Primer pretvorbe jezikov (bodite pozorni na šumnike in vrstice dodane s strani PHP skripte):

Datoteka, ki vsebuje določene angleške prevode v ISO-8859-1 formatuPrevod, ki ima dodane manjkajoče prevode iz angleškega prevoda, zapisan v UTF-8 formatu

Datoteke:

Datoteko shranite v document root, spremenite nastavitve in poženite zadevo. Če opazite kakšno napako, imate kritiko ali pohvalo, mogoče izboljšavo? Prosim, dodajte pod komentarje.

65x komentirano na “PHP - ZenCart - utf8 - slovenski jezik - slovenski prevod - pretvorba jezikov”

  1. Patrik je napisal:

    Zanima me kako inštalirat Zen Cart 1.3.8, ali morem prej Zen Cart 1.3.6?
    Ali moram prej v utf8?

    Ker nevem niti kje začeti.

    Se opravičujem ampak sem nov na tem področju.

    Najlepša hvala!

    Lp.

  2. Roky je napisal:

    Patrik, najprej inštalirej ZenCart 1.3.8a, potem spremeni ZenCart v UTF-8 (kako je opisano tukaj), potem pa dodaj še slovenski jezik, ki ga najdeš zgoraj (Zen Cart 1.3.8 - slovenski jezik - slovenian language - slovenski prevod - UTF-8 - dodani manjkajoči prevodi iz angleščine).

  3. Janko je napisal:

    Ampak v novem prevodu manjka slovensko.php, tudi skripta za pretvorbo ga ne zajame...

  4. Roky je napisal:

    Janko, bom pogledal in bom dopolnil prevod. Tnx za opozorilo.

    P.S: Sem dodal novi prevod, ki vključuje tudi slovensko.php (prevedeno).

  5. Janko je napisal:

    Hvala za zelo hiter odziv, bom sprobal zadevo in javim če se pojavi še kak problem.

  6. Janko je napisal:

    admin / slovensko.php vsebuje narobe pretvorjene šumnike. Morda je bila pretvorba 2x opravljena in zato dobimo ven namesto UTF8 šumnikov, neke čudne kvake. Drugače pa je OK.

  7. Roky je napisal:

    Sem popravil še to datoteko, prej sem preveril le includues/slovensko.php, na admin sem pa pozabil. Hvala za napako!

  8. matej je napisal:

    Zakaj mi tole prevede samo admin del, med tem ko trgovina ostane angleška? :S:(

  9. Roky je napisal:

    V trgovini - adminu nastavi, da je slovenski default language oz. v svojem profili nastavi na slovensko.

  10. Patrik je napisal:

    Se vam bi rad zahvalil. Odlično ste opravili delo!
    Hvala!!!

  11. Roky je napisal:

    Ni problema, veseli smo, da vam je prevod koristil.

  12. ars je napisal:

    Kaj naredim s skripto ko jo skopiram v root directory? Do sedaj mi je vspelo prekopirati prevod v public in admin directory in preden sem instaliral zen cart sem zamenjal mysql_zencart.db datoteko z vašo. Povsod so šumniki v redu samo ko dodam nov izdelek in ko izberem datum kdaj je stvar dodana/razpoložljiva je recimo npr. četrtek . hvala

  13. ars je napisal:

    dopolnjujem komentar: četrtek ima namesto č-ja vprašaj v črnem kvadratku

  14. ars je napisal:

    se oproščam sedaj sem opazil da piše -Datoteko shranite v document root- ki pa ne vem kateri je. prosim za pomoč hvala.

  15. Roky je napisal:

    Zakaj ne uporabite že pred-pakiranega jezika zgoraj?

  16. Janez je napisal:

    Zdravo!

    Tudi sam imam težave z šumniki oz samo z šumniki = Š ostalo dela ok prosim strokovnjaka za pomoč ker sm bolj na začetku raziskovanja oz samogradnje trgovine.

    Iskrena hvala!

  17. Janez je napisal:

    še mail avanturist@msn.co tudi massinger je aktiven tu samo ponoči...

  18. Miha25 je napisal:

    Prosu bi za pomoč

    namreč na strani me nie piše samo šumnika Š pa še to sqamo v tekstu med tem ko linki oz kategorije its je vse ok!??

    Prekopirov sm v word pad pa v wp++ pa shranu pa spreminjov podporo za utf 8 v programu pa sita pesem... kaj je še za postorit (na serverju mam utf 8 itak-preverjeno)

    Njlepša hvala!

  19. Roky je napisal:

    Link do spletne strani najprej ...

  20. Antony je napisal:

    @Miha25: pošlji na mail potrebne podatke, začenši z linkom, kot je napisal Roky. Potem ti bomo znali svetovati.

  21. Bustek je napisal:

    Iščem Zen Cart slovenski prevod ampak je stran http://www.silentek.net ne dela več... prosim, če mi lahko kdo pošlje prevod na bustya (at) gmail.com.
    hvala lepa!

  22. iges je napisal:

    Imam en problem, ko sem spremenil jezik iz angleškega v slovenskega, se mi pojavilja prazna stran ko si hočem ogledati trgovino, če pa grem v admin sekcijo pa deluje.
    Sem pa najprej spremenil jezik v adminu in je delovalo, ob ogledu trgovine se pa pojavlja samo blank page..
    Sem že probal zbrisati slovenski jezik iz admin panela, in še vedno ista fora...
    Mi lahko kdo pomaga, je kdo že imel podoben problem, kako ga rešim??
    Je pa zencart verzija 1.3.8a

    Najlepša hvala!

  23. Roky je napisal:

    Khm .... potem nisi najbolje dodal slovenski jezik. Probaj počistit jezik in ponovno dodati, kaj več na pamet ti težko povem.

    Bustek, bom pogledal pri sebi in ti sporočim.

  24. Bustek je napisal:

    Roky hvala v naprej. v pričakovanju maila :)

  25. VALTER je napisal:

    Pozdravljeni !

    Kako naj dodam v admina in da bo to vidno in možno plačevanje po predračunu,je kakšna skripta oziroma modul ?
    Ter kje se lahko spremeni pozdravno sporočilo v slovenskem jeziku in ostalih.
    Namreč v natavitvah ne morem nikakor spremenilti besedila povrhu mi pri slovenskem jezku piše
    <header<na vrhu ..

    Hvala za odgovore.

  26. Roky je napisal:

    @Valter:
    Modul zato kakor jaz vem ne obstaja, ker to ni popularen način plačevanje in ga zato tudi zen cart ne vključuje, se ga pa lahko ustvari.

    Spreminja se v templatu, če ne vidiš tega v language fajlih, kje točno boš pa moral malce pobrskati.

    @Bustek, email poslan.

  27. VALTER je napisal:

    Modul sem vstaril(vsaj mislm) v adminu -nastavitvah je viden pod način plačevaja.

    Tudi ,kot "predračun je viden na uradni strani,ko se kupec želi odločit zanj ,ga lahko označi.
    Ko se pošlje mail kupcu ,pa se izpiše način plačila namesto kot predračun izpiše kot račun po povzetju ..

  28. Roky je napisal:

    Valter, to pa je na pamet žal težko odgovoriti brez da bi pogledal kaj je s modulom, kakšna je koda itd, poskusi google/zen cart forum.

  29. valter je napisal:

    hvala za odgovore..
    Pa še to kje se nastavi trgovino na "nič" da bodo računi se začeli šteti ospet d nič ?

  30. Roky je napisal:

    Izbriši vsa naročila in orderje v mysql tabeli z truncate s čimer bo tudi index šel na 1.

  31. Bustek je napisal:

    Glede te skripte... najprej sem naložil slovenski jezik, potem dodal folder jeziki z dodatnimi prevodi. nato sem skripto preimenoval v .php , nato jo hočem zagnati. napiše mi:

    Warning: Cannot modify header information - headers already sent by (output started at /home/starodob/aaanjaaa/trgovina/zen_cart_language_translation.php:1) in /home/starodob/aaanjaaa/trgovina/zen_cart_language_translation.php on line 69

    Fatal error: Call to undefined function: strripos() in /home/starodob/aaanjaaa/trgovina/zen_cart_language_translation.php on line 14

    kaj naj naredim ?

  32. Bustek je napisal:

    Ok sem pogruntal. strripos () funkcijo sem zamenjal z eno drugo, ker ni delala.

    sedaj pa druga težava :)

    šumniki delajo vse ok... ampak ko dodajam izdelke, in jim v opisu dam Č , mi ga pri predogledu objave še pokaže kot Č, nato ko ga pa gledam iz trgovine, pa je ?. kje mi sedaj to spreminja?

  33. Roky je napisal:

    Izdelek .... to je že v bazi, tko da mora biti neki narobe na nastavitvah do baze, UTF8/CP1250 problemi. Na pamet pa zelo težko kaj več povedat:(

  34. Bustek je napisal:

    a kdo ve v kateri tabeli v bazi so shranjeni opisi izdelkov? mogoče v bazi spremenim tisto tabelo na utf 8, ker sedaj so latin1_swedish_ci ...

  35. Roky je napisal:

    products_description ...

  36. Bustek je napisal:

    dobil, popravil, dela... hvala za pomoč :)

  37. Roky je napisal:

    ni problema:) bomo odprli donacije hihi, HEC HEC.

  38. valter je napisal:

    Kje se poveča(širina-dolžina )glavnega bannerja na prvi strani...?
    mislim tistega ki se prikaže na vrhu(ponavadi ime strani,trgovine..)
    HVALA

  39. valter je napisal:

    citiraj
    "Izbriši vsa naročila in orderje v mysql tabeli z truncate s čimer bo tudi index šel na 1. "

    katero datoteko kliknem ?
    v mysql-u :

    orders
    order_produkts
    order_status
    order_...
    ...
    ...
    ...

  40. valter je napisal:

    Nov problem...

    Spletna trgovina mi noče več poslat naročila kupcu potem ko naroči izdelek.
    Očitno sem nekje nekaj spremenil kar ne bi smel,pošlje le "meni" kopijo naročila..
    Kje je težava...

  41. Roky je napisal:

    Valter, težko je tukaj preko komentarjev vse rešiti zato vam na zgornje težave ne morem odgovoriti. Lahko pa vas usmerim na zen cart forum. Če želite, da vam mi pogledamo zadevo pa to sporočite na email (info@trsplet.com).

  42. ANGELIS je napisal:

    "Primer pretvorbe jezikov (bodite pozorni na šumnike in vrstice dodane s strani PHP skripte)".

    Zanima me točno kje se nahaja (in kako je ime) fajla v katerem lahko spremenim te čudne znake v šumnike?

    Najlepša hvala,

    -A

  43. ANGELIS je napisal:

    button_names.php . Ampak vseeno imam � pod šumniki?

    Hvala za pomoč!

    -A

  44. Roky je napisal:

    Živjo

    Najbrš imaš pod iso-8859-1, poslji me email na rok.meglic@gmail.com, pa ti bom poslal še ta prevod.

  45. ANGELIS je napisal:

    Roky v pričakovanju vašega prevoda ;)

    Najlepša hvala,

    -A

  46. Roky je napisal:

    Angelis, dons dobiš.

  47. ANGELIS je napisal:

    Hvala Rok za pomoč.

    STVAR DELA BREZHIBNO

  48. Tatyana je napisal:

    Živjo!

    Najprej hvala za trud s prevodom, imam pa en problem.
    Ko sem hotela zagnati obe skripti (lang. trnslation in latin_to_utf), mi vedno javi enako napako v vrstici, katera vsebuje tole: header('Content-Type: text/html; charset=utf-8' ); ?
    Napaka pa se glasi: Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/shopping/zen_cart_language_translation.php:1)

    Help,pls?

  49. Roky je napisal:

    Živjo

    Ne potrebuješ ti delat še enkrat te jezike, imaš spodaj pri postu link do že narejenega preveoda, ki ga samo razpakiraš in je to to.

  50. pepiw je napisal:

    Pozdravljeni,
    rad bi povedal, da sem snel zgornjo datoteko prevoda, jo odpakiral in prenesel na server. In dela vse od prve, nobenih "čudnih" znakov ni četudi je kodiranje v Zen Cart ISO-8559-1. Uporabljam sicer verzijo zen carta 1.3.7.1 zaradi brezhibne integracije z Drupalom.
    Imajo pa sedaj na zencart.com modul, ki se mu reče utf_support_for_zencart_1-0, ki pride do izraza ob novi namestitvi, vsaj tako piše, jaz ga nisem sprobal.
    Mi zna kdo povedat ali so morda narejene tudi slike in ikone s slo tekstom? Bi se jih dalo dobiti?

    LP

  51. Roky je napisal:

    Ikone ter slike, kje če so narejene? V tem modulu ki si ga omenil? To boš pa moral probati!

  52. Antony je napisal:

    @pepiw:
    Ikone se dajo dobit, vendar so prilagojene na dizajn trgovine in kot take niso univerzalne. Proti plačilu vam jih lahko izdelamo.

  53. pepiw je napisal:

    Sem kar sam naredil kpl gumbe in ikone in vse skupaj zapakiral v slo prevod. Če koga zanima, naj me kontaktira na retlav@mail386.com pa mu jih pošljem.
    LP

  54. pepiw je napisal:

    S temi gumbi nisem bil zadovoljen, ker je njihov izgled mora biti skladen s stilom teme, ki jo uporabimo za trgovino. Zato sem malo brskal po spletu in našel sila zanimivo stran za free izdelavo gumbov za kar nekaj spletnih trgovin, tudi za Zen cart. Link: http://www.advancewebsoft.com/downloads/free-scripts/free-oscommerce-cre-loaded-zen-cart-oscmax-button-generator-p.html

    Malo nerodno je le to, da potem, ko narediš gumbe v slo (potem, ko vpišeš slovenski tekst), jih tudi shrani z imeni v slovenščini in jih moramo potem preimenovati v angleščino, da nam bodo potem funkcionirali. Ni težko, je pa malce zamudno.

    Vsekakor pa zelo uporabna zadeva.

    LP

  55. pepek je napisal:

    Mene pa zanima kje se spremeni zadeva, ker sem malo testiral in pri dodanih artiklih spodaj vpiše dan in datum kdaj je bil artikel dodan. Kje se da to blokirat,da se ne izpisuje pod opisom artikla oz. ni vidno?

    Hvala za informacije.

  56. Roky je napisal:

    V adminu, product info oz. product listing settings lahko štimaš kaj se in kaj se ne prikazuje.

  57. MadMan je napisal:

    A mi lahko kdo pošlje slovenski lang. pack na madman ( a t ) skydancers.org

  58. Roky je napisal:

    Rabiš UTF8 ali CP1250?

  59. MadMan je napisal:

    UTF8

  60. Roky je napisal:

    Čist spodaj imaš link: Zen Cart 1.3.8 - slovenski jezik - slovenian language - slovenski prevod - UTF-8 - dodani manjkajoči prevodi iz angleščine. Klikni na to in ga boš imel:)

  61. criptus je napisal:

    Tudi jaz iščem zadnji slo lang pack. Roky: kje čist spodaj je link?

    Ima še kdo težavo, da se mu v urejevalniku strani za slovenski jezik odpre samo plain TXT editor html pa ne? Za ang html editor deluje.

  62. MadMan je napisal:

    Očitno sem blont ker ne najdem linka ne datoteke

  63. MadMan je napisal:

    Očitno sem prehitro rekel.
    Sem našu.

  64. Roky je napisal:

    Criptus, na vrhu teh komentarjev poišči besedilo: "Datoteke:". Prva datoteka pod tem je prava.

  65. criptus je napisal:

    Hvala. Sem iskal čist spodaj...

    Vse je relativno ;-)

    Hvala.

Dodaj komentar