Trakais-Nex Posted January 15, 2008 Report Share Posted January 15, 2008 (edited) Sveiki ! Ir neliela problēma konkrētāk sakot nesaprašana esmu iegājis strupceļā :( Esmu uztaisijis mājas lapu uz php bāzes ,vis jau būtu forši bet ir viena aizķeršanās ar valodas maiņu. Mans webs ir sasists pa blokiem ( menu, izskats,un raksti ) Būtu ļoti pateicīgs ja kurš varētu palīdzēt ! Ar kādām funkcijām izsauc doto darbību lai uzspiežot uz valodas maiņas karodziņa piemēram (RU) viss menū un visi raksti no latviešu valodas tiktu aizvietoti ar krievu valodas menu , raksti no foldera languages/ru un protams atpakāļ,nospiežot uz karodziņa LV vīs pārtop latviski ! Ceru ka sapratāt ko es gribu :) Jau iepriekš paldies ! Edited January 15, 2008 by Trakais-Nex Link to comment Share on other sites More sharing options...
Darkangel Posted January 16, 2008 Report Share Posted January 16, 2008 (edited) Seit teu busss $languages = array('en' => 'English', 'lv' => 'Latvian', 'ru' => 'Russian'); if (isset($_GET['lang'])) { $lang = $_GET['lang']; setcookie('lang', $lang, time()+(3600*24*365)); header("Location: index.php"); }else if (isset($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } if (!(in_array($lang, array_keys($languages)))) { die("ERROR: Bad Language String Provided!"); } include "language/{$lang}.php"; language folderi teu ira jabut 3 failiem lv.php, ru.php un en.php. Edited January 16, 2008 by Darkangel Link to comment Share on other sites More sharing options...
marcis Posted January 16, 2008 Report Share Posted January 16, 2008 Nu man jau gan šķiet, ka nevis jādod kods, bet jāuzzin šobrīdējā tehnika un jāatrod labākais risinājums, turklāt tā, lai arī pats veidotājs saprastu. Nu tad mans jautājums -> tu tos tekstus, menu un visu pārējo, kas tev tur ir, no kurienes velc ārā? Datubāze, faili? Piem es daru apm tā - ar rewrite visi mani linki ir šādi "/lv/..." ( pirmā lieta linkā norāda valodu ). Ar rewrite padodu attiecīgu linku uz attiecīgu failu ( RewriteRule ^/lv/(.*) /lv.php/$1 ). Valodas failā ( piem "lv.php" ) norādu valodas indeksu ( $l=1; ). Datubāzē ir tabula, kur glabājas lietas, kas visās valodās ir vienādas, un otra tabula, kura tiek piesaistīta pirmajai tabulai un valodai ( t2.tid=t1.id AND t2.lang_id='$l' ). Tādejādi nav vajadzīgi nekādi cepumi, sesijas vai vēl hz kas. Link to comment Share on other sites More sharing options...
Trakais-Nex Posted January 16, 2008 Author Report Share Posted January 16, 2008 (edited) Nu tad mans jautājums -> tu tos tekstus, menu un visu pārējo, kas tev tur ir, no kurienes velc ārā? Datubāze, faili? Pagaidām man viss ir daudz vienkāršām. Jo savu vebu es taisu no 0 nevis gatavs šablons Uz doto momentu es velku visu ārā no block foldera . Tas izskatās šādi : piemēram: par mani : my.php <tr> <!--Apraksta vieta--> <? include("block/lv/my_lat.php"); ?> </tr> Un šitas ir pats apraksts kas atrodas block folderī my_lat.php <!--Pats Apraksts--> <td> Apraksts un trali vali :) </td> Man uz weba nav registracija ,vēl līdz db nēsmu ticis bet nu visus rakstu domāju likt uz db lai rakstus varētu pārvaldīt no weba Un protams pašlaik meklēju vieglākos variantus jo nekāds asais nēsmu,un gribās kautko pašam uztaisīt no 0 nevis ņemt tos pusfabrikātus. Paldies :Darkangel un marcis par atsauksmi mēģināšu uzčinīt un redzēs kas sanāks ! Velreiz paldies :) Edited January 16, 2008 by Trakais-Nex Link to comment Share on other sites More sharing options...
NiTrino Posted January 16, 2008 Report Share Posted January 16, 2008 otra tabula, kura tiek piesaistīta pirmajai tabulai un valodai ( t2.tid=t1.id AND t2.lang_id='$l' ). Tādejādi nav vajadzīgi nekādi cepumi, sesijas vai vēl hz kas. ļoti neoptimāls risinājums, manuprāt. Un tu online to selektē? Man ir gatavs risinājums, ar tabulām+sessijām+failiem. Tabula ir tikai datu glabāšanai, faili tiek ģenerēti no tabulām. Nekādu online selektu, pilnīga automatizācija. Adminā tulkotājs kur vienkārši ieraksta tulkojumu. Šeit nepeistošu, ja detalizēti, daudz jāskaidro :) Link to comment Share on other sites More sharing options...
marcis Posted January 16, 2008 Report Share Posted January 16, 2008 Nē, nu, protams, pamatvārdi, ja tā var teikt, glabājas valodu failos, kurus caur administrāciju var tulkot/mainīt. Taču, pieņemsim cilvēks izveido jaunu sadaļu, tā tiek saglabāta datubāzē ( tiek iedots id, url utt ), no otras tabulas tiek izvilkts sadaļas nosaukums, attiecīgajai valodai. Kāds tad ir tavs variants? Izveidojot jaunu sadaļu, to pieglabāt failā? Man šķiet stulbi, pareizi saliekot indeksus, nebremzēs un arī pēc tam novērst kļūdas ir daudz vieglāk, ja lietotājam pieejamo inforāciju ( informāciju, kuru var labot, dzēst utt ) glabā datubāzē. Un sesijas multivalodu www sistēmās 90% gadījumos man šķiet pilnīgi liekas. Vai varbūt tu nesaprati mani un es tevi? Link to comment Share on other sites More sharing options...
NiTrino Posted January 16, 2008 Report Share Posted January 16, 2008 (edited) ā, nu ja runa iet par sadaļu nosaukumiem un lietām, kuras juzeris jebkurā brīdī var pamainīt, tad jā, šis ir labs risinājums. Es piemēram taisu tajā pašā title_lv, title_ru, bet nu tas kā kuram ērtak. Edited January 16, 2008 by NiTrino Link to comment Share on other sites More sharing options...
marcis Posted January 17, 2008 Report Share Posted January 17, 2008 Nu man ērtāk šķiet mans variants, protams, domājot par nākotni. Jo manā variantā, tabulā, kur tiek glabāts nosaukums multivalodām, valodu skaits var būt neierobežots. Link to comment Share on other sites More sharing options...
Trakais-Nex Posted January 17, 2008 Author Report Share Posted January 17, 2008 (edited) Nu man ērtāk šķiet mans variants, protams, domājot par nākotni.Jo manā variantā, tabulā, kur tiek glabāts nosaukums multivalodām, valodu skaits var būt neierobežots. Seit teu busss $languages = array('en' => 'English', 'lv' => 'Latvian', 'ru' => 'Russian'); if (isset($_GET['lang'])) { $lang = $_GET['lang']; setcookie('lang', $lang, time()+(3600*24*365)); header("Location: index.php"); }else if (isset($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } if (!(in_array($lang, array_keys($languages)))) { die("ERROR: Bad Language String Provided!"); } include "language/{$lang}.php"; language folderi teu ira jabut 3 failiem lv.php, ru.php un en.php. Jā vakar no abiem variantiem smeistaroju un viss oki strādā ! Paldies . Paldies visiem par atsauksmi ! :) Edited January 17, 2008 by Trakais-Nex Link to comment Share on other sites More sharing options...
Earl Posted May 23, 2008 Report Share Posted May 23, 2008 Man arī ir līdzīga problēma.. tikai.. ne viss, šķiet, ir tik vienkārši.. Biju naivi iedomājies, ka izveidojot mājas lapas struktūru latviešu valodā (izvēlnei izmantoju include get.php), valodu izvēli varēs realizēt vienkārši pārtulkojot failus, pārsaucos index_ru.php, foto_ru.php utt... (tas pats ar get_ru.php), BET.... Nekas neštimmē! Atveru index_ru.php, bet, nospiežot, uz jebkura linka, man ielādējas latviešu valodas saturs.... Kas notiek? Kāds zina ieteikt? Link to comment Share on other sites More sharing options...
duplets Posted May 24, 2008 Report Share Posted May 24, 2008 Nu protams, ka viņš ielādēs tā, tev pie visiem linkiem vajag norādīt kko šādu: echo '<a href="index_'.$cepums_vai_sesija.'.php">test</a>'; Kur zem mainīgā $cepums_vai_sesija, tev ir padots, piemēram cepums ar nosaukumu lv... Link to comment Share on other sites More sharing options...
Earl Posted May 24, 2008 Report Share Posted May 24, 2008 ā.. un kas tad man tajos cookijos vai sesijā jādefinē? Tās citu valodu linku adreses??? Link to comment Share on other sites More sharing options...
duplets Posted May 24, 2008 Report Share Posted May 24, 2008 Kkvai paņem šo te, ko tev te augstāk dēva: if (isset($_GET['lang'])) { $lang = $_GET['lang']; setcookie('lang', $lang, time()+(3600*24*365)); header("Location: index.php"); }else if (isset($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } Tālāk kkur padod savā lapā <a href="?lang=lv">Latviešu valoda</a> <a href="?lang=en">Angļu valoda</a> Link to comment Share on other sites More sharing options...
Recommended Posts