Autor | Zpráva | ||
---|---|---|---|
anonymní Profil * |
#1 · Zasláno: 10. 2. 2010, 17:30:47
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 |
#2 · Zasláno: 10. 2. 2010, 17:35:54 · Upravil/a: mattyZEM
3 bych použil já :)
|
||
anonymní Profil * |
#3 · Zasláno: 10. 2. 2010, 17:45:41
mattyZEM:
Asi tak, ale jak to mám nejvhodněji pořešit z hlediska té databáze? |
||
mattyZEM Profil |
#4 · Zasláno: 10. 2. 2010, 17:54:42
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 * |
#5 · Zasláno: 10. 2. 2010, 17:58:45
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 |
#6 · Zasláno: 10. 2. 2010, 17:59:20 · Upravil/a: Mastodont
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 |
#7 · Zasláno: 10. 2. 2010, 18:00:42
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 |
#8 · Zasláno: 10. 2. 2010, 18:02:52
mattyZEM:
A jak budeš sestavovat dotazy pro tahání dat? Zkus si ten SELECT napsat. |
||
mattyZEM Profil |
#9 · Zasláno: 10. 2. 2010, 18:04:59 · Upravil/a: mattyZEM
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 |
#10 · Zasláno: 10. 2. 2010, 18:06:33
A pro 10 jazyků?
|
||
mattyZEM Profil |
#11 · Zasláno: 10. 2. 2010, 18:07:44
elseif?
|
||
Mastodont Profil |
#12 · Zasláno: 10. 2. 2010, 18:07:51 · Upravil/a: Mastodont
SELECT popis, nazev ... FROM nazvy WHERE id = X AND jazyk = Y
je IMHO jednodušší :) |
||
mattyZEM Profil |
#13 · Zasláno: 10. 2. 2010, 18:09:35
Mastodont:
„je IMHO jednodušší :)“ To je. Ale pak + $pocet_jazyku příkazů do sql při vkládání, nebo mazání. |
||
anonymní Profil * |
#14 · Zasláno: 10. 2. 2010, 18:19:25
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 |
#15 · Zasláno: 10. 2. 2010, 18:24:12
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 * |
#16 · Zasláno: 10. 2. 2010, 18:25:38
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 * |
#17 · Zasláno: 10. 2. 2010, 18:27:44
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 |
#18 · Zasláno: 10. 2. 2010, 18:29:08 · Upravil/a: mattyZEM
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 * |
#19 · Zasláno: 10. 2. 2010, 18:36:06
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 |
#20 · Zasláno: 10. 2. 2010, 18:43:38
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 * |
#21 · Zasláno: 10. 2. 2010, 18:47:17
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 |
#22 · Zasláno: 10. 2. 2010, 18:49:15 · Upravil/a: mattyZEM
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 * |
#23 · Zasláno: 10. 2. 2010, 18:59:36
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 :-) |
||
Časová prodleva: 14 let
|
0