|
07. 04. 2007. | #1 |
Miloš Vučić
Grand Master
|
Dva razlicita lang fajla - merge
Imam sledeci problem.
Imam dva language fajla za jednu skriptu (oko 2500 redova). Problem je u tome sto je srpska verzija fajla za stariju verziju skripte pa ima manje linija nego aktuelna verzija na engleskom. Da li postoji neki problem koji bi mi mogao pomoci u otkrivanju toga koje linije iz eng fajla nedostaju u sr verziji? Ukoliko ne postoji program (mad ami se mota po glavi da ljudi koji se bave lokalizovanjem softvera sigurno imaju neke cake za ovakve stvari) moze li mi neko pomoci da uradim sledece: fajl 1: srpska verzija fajla fajl 2: engleska verzija fajla falj 3: novokreidani prazni fajl odvotimo fajl 2 a zatim od cele linije uzmemo text koji je do prvog ' znaci od: var $_PHPSHOP_MENU = 'Menu'; pravi var $_PHPSHOP_MENU = ' - nazovimo promenjiva A celu liniju smestamo u promenjivu B koja ce nam trebati nakon uslova. Zatiom pretrazujemo fajl 1 za promenjivom A, ukoliko se nadje u fajlu 1, ne desava se nista, ukoliko se ne nadje u fajlu 1, iz fajla 2 se cela linija (promenjiva B) kopira u fajl 3. Na taj nacin bi u fajlu 3 dobio linije kojih nema u fajlu 1. No, moze li neko pomoci da resim ovo bilo imenom programa/alata, bilo pomoci oko izrade ovoga u phpu, ili bilo kom drugom programskom jeziku...?
__________________
Kotler je bio u pravu. Ko radi srcem nema konkurenciju. |
07. 04. 2007. | #2 |
Vladan Zirojević
Grand Master
|
Ne znam ni za jedan alat koji bi radio na fajlovima takve strukture, ali relativno lako mozes napisati program koji ce to parsirati i dati ti sta nedostaje.
Pogledaj i diskusiju na http://www.devprotalk.com/showthread.php?t=1168 |
07. 04. 2007. | #3 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Ja sam to radio tako sto tekucu verziju (engleski fajl) ucitam u niz, ucitam srpski u niz, odradim array_diff() i zapisem engleske izraze koji fale na srpskom u srpski fajl.
Ali, ja sam imao nizove sa jezicima, a ti imas varijable. Mozes da ga ishakujes ako ti sve jezicke varijable pocinju sa $_PHPSHOP. Onda prvo protrcis kroz globalne varijable i potrpas ih u niz. Dakle, Kôd:
<?php // povuci engleski include('english.php'); $en = array(); $strings = array(); foreach ( $GLOBALS as $k => $v ) { if ( substr($k, 0, 8) == '_PHPSHOP' ) { $en[] = $k; unset($GLOBALS[$k]); // da se ne bi kasnije pojavila u sr $strings[$k] = $v; // stavljamo orig (en) u tmp array } } // povuci srpski include('srpski.php'); $sr = array(); foreach ( $GLOBALS as $k => $v ) { if ( substr($k, 0, 8) == '_PHPSHOP' ) { $sr[] = $k; unset($GLOBALS[$k]); // da se ne bi kasnije pojavila u trecem jeziku? } } // ovo fali u srpskom, a dobijamo array sa engleskim varijablama (da nista ne bude '') $diff = array_diff($en, $sr); // dodaj u srpski $fp = fopen('srpski.php', 'a'); foreach ( $diff as $var ) { $str = '$' . $var . " = '" . $strings[$var] . "';\n"; fwrite($fp, $str); } fclose($fp); ?> |
08. 04. 2007. | #4 | |
Miloš Vučić
Grand Master
|
Nesto je zaskripalo, zamalo da explodira, ali je medjutis samo ovo ostalo:
Citat:
__________________
Kotler je bio u pravu. Ko radi srcem nema konkurenciju. |
|
08. 04. 2007. | #5 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Naravno da je zaskripalo kad ti u stvari imas propertije objekta, a ne globalne varijable.
Nista, onda samo moras na pocetku da inicijalizujes objekat, pa: $x = get_object_vars($obj); i onda koristi $x umesto $GLOBALS. ;-) |
08. 04. 2007. | #6 |
Miloš Vučić
Grand Master
|
Nisam se snasao
__________________
Kotler je bio u pravu. Ko radi srcem nema konkurenciju. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
php f-ja za merge 2 niza | ivanhoe | PHP | 5 | 02. 11. 2009. 22:06 |
Parsiranje po lang atributu | Pedja | PHP | 7 | 18. 08. 2007. 01:52 |
Sinhronizacija (merge?) tabela | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 3 | 26. 02. 2007. 08:29 |
Ruby-Lang.org | crews_adder | Linkovi | 0 | 19. 09. 2006. 18:23 |