Autor Zpráva
I am
Profil *
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 &copy; %s';
?>

ale v anglické

<?php
// Text
$_['text_powered_by'] = 'Powered By <a href="http://www.opencart.com">OpenCart</a><br /> %s &copy; %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 &copy; %s';
$_['text_powered_by_new'] = "Neco co ve starsi verzi nebylo";
?>

Tušíte někdo jak na to? Předem díky!
tiso
Profil
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 *
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
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 *
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
I am
Co prepsat anglicky text ceskym:
include "en/preklad.php";
include "cs/predklad.php";

Tak jsem to resil u vycejazycnych projektu
tiso
Profil
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...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: