| 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: 17 let
|
|||
0