Autor Zpráva
anonymní
Profil *
Ahoj,
rozšiřuju e-shop o jazykové mutace, napadlo mě několik řešení:

1/ použít Překladač Google, který přeloží celou stránku
nakonec jsem zamítnul - vadí mi ten rámec nahoře, bubliny s původním textem po najetí na text,..

2/ použít Google translate API kdy mi php třída pomocí googlu řetězec při výstupu z db přeloží do požadovaného jazyka
tohle řešení mi přšlo ukrutně pomalý, na výpis 20 položek obchodu jsem čekal o poznání déle než bez překladu, nevíte čím to? případně jestli by to nešlo nějak uspíšit?

3/ vytvořit v tabulce produkty sloupce jako nazev_en, nazev_de, popis_en, popis_de atd., a tam ukládat překlad (vytvořenej automaticky pomocí Google translate API) hned při přidávání/úpravě produktu
asi nejlepší řešení, že? :-)

Těch překladů bude nejspíš 6, jenom v tabulce produkty budu potřebovat přeložit 7 sloupců (název, popis, varianty,..), tj 6 * 7 = 42 sloupců navíc, přijde mi trochu neohrabaný, nenapadá vás nějaký jiný řešení?

Díky za veškeré rady a tipy!
mattyZEM
Profil
3 bych použil já :)
anonymní
Profil *
mattyZEM:
Asi tak, ale jak to mám nejvhodněji pořešit z hlediska té databáze?
mattyZEM
Profil
Tak jak jsi napsal ;-) popis_en, popis_de atd. Pak budeš vypisovat tabulky podle toho jakou jazykovou mutaci daný návštěvník používá.
anonymní
Profil *
No já jsem právě myslel, že bych to všechno nacpal do jedný tabulky, tedy bylo celkem 6 sloupců popis_x. Dělat víckrát tu tabulku se myslím že je hloupost, neb v tabulce se nesou další věci ohledně produktu, který by byly tím pádem duplicitní...
Mastodont
Profil
vytvořit v tabulce produkty sloupce jako nazev_en, nazev_de, popis_en, popis_de
A až budeš chtít doplnit dalších 5 jazyků, bude to 10 sloupců .. to není moc dobré.
jenom v tabulce produkty budu potřebovat přeložit 7 sloupců
Aha, tak to jsem poprvé přehlédl, tak to by bylo ještě horší :-))) Já bych dal všechny přeložitelný stringy do zvláštní tabulky, vazba přes ID produktu.
mattyZEM
Profil
Mastodont:
to není moc dobré.
Odkdy musí vytahovat z DB všechny? Vkládání nebude jistě tak časté, takže nevidím důvod proč ne.
Mastodont
Profil
mattyZEM:
A jak budeš sestavovat dotazy pro tahání dat? Zkus si ten SELECT napsat.
mattyZEM
Profil
Mastodont:
Zkus si ten SELECT napsat.
<?php
if($jazyk=="en"){
$sql="SELECT popis_en, nazev_en, ja_nevim_en, blbost_en WHERE id.....";
} ?>


Co je na tom tak složitého, símtě?
Mastodont
Profil
A pro 10 jazyků?
mattyZEM
Profil
elseif?
Mastodont
Profil
SELECT popis, nazev ... FROM nazvy WHERE id = X AND jazyk = Y
je IMHO jednodušší :)
mattyZEM
Profil
Mastodont:
je IMHO jednodušší :)
To je. Ale pak + $pocet_jazyku příkazů do sql při vkládání, nebo mazání.
anonymní
Profil *
Jde mi taky o to, že shop už je nějak napsaný, nechtěl bych nikterak složitě přepisovat všechny selecty...
mattyZEM
Profil
Ptal jsem se i člověka, který vážně ví co dělá, a ten mi řekl to samé. Použij nazev_en...
anonymní
Profil *
nejjednodušší by bylo mysql_query("select * from produkty$_SESSION[jazyk]"); :-D ale jak jsem říkal, dělat extra tabulku pro jazyk je zbytečný..
anonymní
Profil *
mattyZEM:
takže normálně nacpat šest sloupců popis? fakt to nebude vadit?

a když tam mám třeba select
mysql_query("select id, nazev, cena, popis from produkty");

tak jen změním na
mysql_query("select id, nazev$jazyk, cena, popis$jazyk from produkty");


říkám to dobře? :-)
mattyZEM
Profil
anonymní:
$_SESSION[jazyk]
Pro takovéto věci bych spíše použil cookies. Přecijen SESSIONS za nějakou dobu vyprší a zákazník, či návštěvník pak Vaši stránku za čas navštíví a bude chtít jazyk stejný.

anonymní:
fakt to nebude vadit?
pokud nebudeš používat "*" tedy výběr všeho tak ne.

říkám to dobře? :-)
Ano
anonymní
Profil *
ušetří mi to totiž spousty práce a to že bude tabulka široká jako *** mi zas až tak nevadí, teda jestli jestli se to nijak extra nezpomalí, setinky šetřit nepotřebuju...

mattyZEM:
to jsem jen vytáhnul z paty :-) asi bude i víc domén, .de, .com atp. a podle toho se automaticky přednastaví i jazyk...

Dál mám ještě jeden dotaz, budu mít nějakej konf. soubor/tabulku, ze který se mi budou tahat položky menu, texty buttonků, info hlášky atp., prostě aby to bylo kompletně lokalizovaný. Ptám se - má smysl překládat i cesty k produktům kvůli SEO?

http://www.domena.cz/obchod/pecivo/tmave-pecivo/rohliky/rohlik-celozrny-100g.html
mattyZEM
Profil
Pokud používáš PRETTY URL tak snad odkazuješ na něco stylu $id-$nazev; takže název vybereš z sloupec_en.

Kvůli SEO bych to asi přeložil :)
anonymní
Profil *
Vím jak to myslíš, ale idčka tam nepoužívám :-| mám kategorie 3. úrovní, teda např. tabulku
kategorie3: id, nazev, nazev_nazev, kategorie1, kategorie2


přičemž nazev_nazev je skutečný název a nazev = nazev_nazev bez diakritiky, mezer,...

kategorie3: id, nazev, nazev_en, nazev_de, nazev_nazev, nazev_nazev_en, nazev_nazev_de, kategorie1, kategorie2


jestli mě chápeš, vlastně ten nazev funguje jako idkčo, vím, trochu nešikovný...
mattyZEM
Profil
anonymní:
nazev = nazev_nazev bez diakritiky, mezer,...
ušetřil by ses jedním sloupcem kdyby jsi to předělával až přímo u výpisu produktů.

trochu nešikovný
Teď možná ne, ale jednou se stane že budeš mít v tabulce 2 řádky se stejným názvem, a pak to bude sranda :)
anonymní
Profil *
ušetřil by ses jedním sloupcem kdyby jsi to předělával až přímo u výpisu produktů.
máš pravdu, ale radši udělám o šest sloupců víc než překopávat system :-)

Teď možná ne, ale jednou se stane že budeš mít v tabulce 2 řádky se stejným názvem, a pak to bude sranda :)
není možno, ono to při přidávání produktu kontroluje jestli tam něco takovýho v daný kategorii už neexistuje :-) ten systém jsem psal už dřív a podle sebe, použít id v url mě nenapadlo no...

Tedy ti mnohokrát díky, vyřešeno, nečekal jsem tu až takovou pomoc :-)

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: