Kako da napravim ovakav prevod na sajtu?

Nedavno sam vidjela na jednom sajtu koji koristi WHMCS kako dobro radi translate sajta i to mi se svidjelo te bi htjela to isto uraditi i ja uz pomoć PHP na mojoj stranici koju radim custom.

Translate web stranice radi na sljedeći način:

Kada korisnik klikne na padajući meni i odabere željeni jezik na domenu se dodaje samo ovaj nastavak ?language=german i stranica bude prevedena.

Postoji folder lang u kome se nalazi ovaj dio koda: $_LANG['title_homepage'] = "Welcome";

Koji se poziva na ovo: {$LANG.title_homepage}

To sam uspjela da istražim i da skontam i dalje ne kontam kako radi i kako se povezuje pa mi je potrebna pomoć ako netko zna.

P.S: Ne želim da pravim folder i da dodajem www.domena.com/hr itd poštedite me takvih solucija želim samo ovo odraditi što sam napisala ne zanima me druge solucije sada trenutno. Hvala.

A sto je u pitanju?
Raw php, framework?

Ovako sam ja odradio za jedan sajt:


Ako nije to što želiš neka pomogne nekome ko ima slično pitanje. Pozdrav!
1 Like

Emptju je naš? :smile:

Na ovom YT linku imaš primjer rada sa sesijom i GET varijablom.
Moraš otud da kreneš.

1 Like

Da, upravo sam na to mislila, hvala ti puno :heart:

Hvala vam ljudi na pomoći upravo ću ovo da riješim preko array i session u PHP-u kao što je prikazano gore u videu.

Nego imam još nešto što bi htjela, želim da napravim automatski prijevod u zavisnosti od zemlje iz koje ljudi posjećuju moj sajt, pa ako neko udje iz njemačke da mu odma stranicu prevede na njemački a da po defaultu bude hr jezik na sajtu, pogledajte na ovom linku screenshot slika ovog plugina https://marketplace.whmcs.com/product/3150 treba mi nešto ovako, to sam koristila dok sam koristila i sami WHMCS sada imam samo PHP CMS gdje sve ručno programiram ne koristim nikakav php framework nego nadogradujem neku staru skriptu.

Samo mi trebaju sada upute kako to da uradim uz ovaj način gore iz ovog videa.

Iz osobnog iskustva bih ti rekao da koristiš (u kompletu):

  • get (i da je u url-u prisutna cijelo vrijeme varijabla ili key jezika)
  • array (za prijevode)
    Naime stvar je vezana i uz SEO stranice. Ako koristiš samo session, desit će se da će search engini indexirati samo verziju na defaultnom jeziku, jer ne mogu koristiti sessione, ili u gorem slučaju, moglo bi ti označiti duplicate content na stranicama.
  1. get client (browser/visitor) IP
  2. get data by IP over some geoIP API
  3. set lang session regarding data

Ovo su ti servisi koji ti mogu pomoći da dodješ do tih podataka (tačke 2):

maxmind.com (njihov paket PHP koda na Github-u)
ipstack.com (10.000 besplatnih request-ova mjesečno)
ipinfo.io (nema besplatnu varijantu)

Ne mora preko IP-a (može, i biti će točnije zbog lokacije)
Ja sam koristio nešto slično ovome:
<?php
$lang = substr($SERVER[‘HTTP_ACCEPT_LANGUAGE’], 0, 2);
$acceptLang = [‘fr’, ‘it’, ‘en’];
$lang = in_array($lang, $acceptLang) ? $lang : ‘en’;
require_once "index
{$lang}.php";

?>
(Izvor: https://stackoverflow.com/a/3770616)

2 Likeova

Za seo je preporuka ili nesto.hr/hr ili hr.nesto i sl.

Google ne preporuca language=nesto

1 Like

Odlično, hvala puno momci. Tako ću i da odradim.

Imala bi samo još jedno pitanja jer me baš zanima vaše mišljenje, da li da ovo odradim kroz db kao što je ovaj gore u ovom video snimku to i govorio, mislim da bi mi tako bilo laše posle održavati samu aplikaciju?

1 Like

Mozes i u bazu, ali onda translacije drzis u cache-u, a cache update-as, samo kad imas izmjene ili kad se resetira server.

Ako nemaš puno teksta, može i fajl. A i ako imaš pa uradiš keširanje to će opet u fajl tako da je skoro svejedno. Uradi jednu verziju kako ti ispadne lakše (da l’ prateći video da l’ na način kako si prvenstveno zamislila) pa onda uradi na drugi način.

Ovo što ti je @dmitrecic ponudio je dobro.
Imaš i u PHP dokumentaciji još i ovu funkciju možda još kraće.

Edit: @jorgovan brži

1 Like

Puno vam hvala, ovo je stvarno bilo korisno za mene, sada se bacam na posao a ako gdje zapne eto mene opet :slight_smile:

Kakav je prijevod kad se koristi translate za stranicu, dali je poput google prijevoda?

Onakav kakav je zapisan u bazi.

Ne!

Dali je to free verzija ili se plaća?

Pa sam sve unosiš u bazu, onako kako se napravi.
Sam prevodiš i sam unosiš.

Ok, mislio sam da sam prevodi.