Autor | Zpráva | ||
---|---|---|---|
I am Profil * |
#1 · Zasláno: 28. 5. 2009, 05:13:49
Ahoj, mám dvě složky, které obsahují soubory se stejnýmy názvy. Jsou to soubory překladu. Můj problém je v tom, že český překlad je starý - chybí tam některé řetězce. Např. soubor footer.php v české verzi obsahuje:
<?php // Text $_['text_powered_by'] = 'Jedeme na <a href="http://www.opencart.com">OpenCart</a><br /> %s © %s'; ?> ale v anglické <?php // Text $_['text_powered_by'] = 'Powered By <a href="http://www.opencart.com">OpenCart</a><br /> %s © %s'; $_['text_powered_by_new'] = "Neco co ve starsi verzi nebylo"; ?> Jde mi o to, napsat script, který projede všechny tyhle soubory a například z těchhle dvou (viz výše) udělá výsledný footer.php s obsahem: <?php // Text $_['text_powered_by'] = 'Jedeme na <a href="http://www.opencart.com">OpenCart</a><br /> %s © %s'; $_['text_powered_by_new'] = "Neco co ve starsi verzi nebylo"; ?> Tušíte někdo jak na to? Předem díky! |
||
tiso Profil |
#2 · Zasláno: 28. 5. 2009, 10:12:08
Načítaš si oba súbory do poľa funkciou file a v jednom cykle skontroluješ či sa rovnajú začiatky riadkov ($_['text_powered_by'] ), ak nie, tak riadok pridáš do výsledného súboru z eng verzie, ak hej, tak z cz verzie ideš na ďalší.
|
||
I am Profil * |
#3 · Zasláno: 28. 5. 2009, 10:49:17
Zkusil jsem napsat tohle, ještě sem se to netroufnul zkusit, ale mohlo by to fugovat, ne? :)
$soubor = fopen("contact.php", "r"); $l = filesize("contact.php"); $en = fread($soubor, $l); fclose($soubor); $soubor = fopen("contact_cs.php", "r"); $l = filesize("contact_cs.php"); $cs = fread($soubor, $l); fclose($soubor); //echo $old; //preg_match_all('#<a href=\"temp\/([^\"]*)\">#', $string, $matches, PREG_SET_ORDER); preg_match_all("#_\['([a-zA-Z0-9_]*)'\](.*)'(.*)'#", $en, $matches, PREG_SET_ORDER); foreach($matches as $match) { echo $match[1]." ".$match[3]."<br>"; preg_match_all("#_\['$match1'\](.*)'(.*)'#", $cs, $mm, PREG_SET_ORDER); str_replace($match[3], $mm[3], $en); } $soubor = fopen("contact.php", "w+"); fwrite($soubor, $en); fclose($soubor); |
||
tiso Profil |
#4 · Zasláno: 28. 5. 2009, 10:55:27
I am - je pekné, že sa snažíš vyriešiť problém sám, ale v tom prípade nabudúce ani nežiadaj o radu, keď sa jej nedržíš.
|
||
I am Profil * |
#5 · Zasláno: 28. 5. 2009, 16:18:11
tiso
proč ne? lámu si s tím hlavu. Třeba si jí bude za týden lámat někdo jiný.. a najde tenhle post :) |
||
bohyn Profil |
#6 · Zasláno: 28. 5. 2009, 19:54:54
I am
Co prepsat anglicky text ceskym: include "en/preklad.php"; include "cs/predklad.php"; Tak jsem to resil u vycejazycnych projektu |
||
tiso Profil |
#7 · Zasláno: 28. 5. 2009, 23:55:12
bohyn - záleží od toho, čo s tam chce robiť. Keď si chce vytvoriť novší cz súbor, v ktorom doprekladá novo pridané hlášky, tak mu to nepomôže.
I am - dobrý argument... |
||
Časová prodleva: 16 let
|
0