function creadir($f) { crd($f); }; forceLangSession($lg); mmSetLang(mmIniStr("es"),"en"); $nf=($inf=$_GET["info"]) ? $_SERVER["SCRIPT_FILENAME"] : $argv[0]; if ($inf) echo ""; $cml=true; $brk="\n"; switch ($opt=substr(($inf) ? $inf : $argv[2],0,1)) { case "r": if ($simu) salir(st("Sosi")); $reco=true; if ($inf) list($dum,$ndi)=preg_split("/ +/",$inf); else $ndi=$argv[3]; if (!$ndi or !@mkdr($ndi)) salir(sprintf(__("No puedo crear el directorio %s"),$ndi)); case "J": $dbnwl=true; case "I": $full=true; case "i": case "": break; default: salir(sprintf(__("Opción desconocida '%s'"),$opt)); } function muestra($li,$n,$bu,$lo) { printf("%${li}s => %s ... %d bytes\n", substr($n,-$l), substr(preg_replace('/[^\x20-\x3C\x3E-\x7E\x09]/e', 'sprintf( "=%02x", ord ( "$0" ) ) ;', substr($bu,0,50)),0,50),$lo); } function nobin($s) { return preg_replace('/[^\x20-\x7E\x09\x0A\x0D]/e', 'sprintf( "=%02x", ord ( "$0" ) ) ;',$s); } if ($datafile) if (file_exists(dirname($nf)."/".$datafile)) dataOpen(dirname($nf)."/".$datafile); else dataOpen($datafile); else if (function_exists(dataOpen)) dataOpen($nf); else error(sprintf(__('El fichero %s no existe o no es un instalador'),$nf)); if ($flic=$dopt['lic']) { echo "-----".__('Inicio de ').__('licencia')."-----\n"; if ($reco) { preg_match("+(^|.*/)..(-[^/]*)$+",$dopt['lic'],$ma); $dpnom=$ma[1]; $pnom=$ma[2]; } foreach($lics as $lg => $po) { $f=tkInBuff($po); $ln=strlen($f); if ($reco) { creadir("$ndi/$dpnom$lg$pnom"); fwrite(fopen("$ndi/$dpnom$lg$pnom","w"),$f); } else if ($full) echo " -----$lg ($ln bytes) -----\n".nobin($f); else muestra(2,$lg,$f,$ln); } echo "\n-----".__('Fin de ').__('licencia')."-----\n"; } echo "-----".__('Inicio de ').__('ficheros')."-----\n"; $l=0; $nms=array(); foreach($files as $if => $b) { $n=$b['n']; if (!$n) {// antiguas versiones $n=$if; $files[$if]['n']=$n; } $l=min(50,max($l,strlen($n))); $nn=$n; if ($nms[$n]) { $idx=0; while ($nms[$nn]) { $nn="$n-$idx"; $idx++; } $files[$if]['n']=$nn; $files[$if]['t']=$n; } $nms[$nn]=true; } foreach(array('l','f','r','j') as $ty) $ejec[$ty]=array(); foreach($files as $if => $b) { $n=$b['n']; if ($l=$b['l']) { if ($reco) symlink($l,"$ndi/$n"); } else if ($b['d']) { if ($reco) creadir("$ndi/$n/."); } else { if ($reco) creadir("$ndi/$n"); if ($b['p']) { if ($b['x']) { if ($b['x'] == 'r' or $b['x'] == 'f') { if ($b['x'] == 'r') $f=tkBuff(); else $f=tkInBuff($b['po']); foreach($dvars as $va) $f=str_replace("$uniq.$".$va["va"].".$uniq","''",$f); $ejec[$b['x']][]=array('n'=>$n,'f'=>$f); } $f=false; } else { $f=tkBuff(); foreach($dvars as $va) $f=str_replace("$uniq.$".$va["va"].".$uniq","''",$f); if ($reco) { fwrite(fopen($nf="$ndi/$n","w"),$f); @chmod($nf,$b["a"][0]); @touch($nf,$b["a"][1]); } } $ln=strlen($f); } else if ($b['x']) $f=false; else { $f=''; $ta=$b['ta']; $ln=$ta; if ($reco) $h=fopen($nf="$ndi/$n","w"); while (true) { $bu=tkBuff(); if ($reco) fwrite($h,$bu); else $f.=$bu; $ta-=strlen($bu); if (!$ta) break; } if ($reco) { @chmod($nf,$b["a"][0]); @touch($nf,$b["a"][1]); } } if (!$reco and ($f !== false)) if ($full) { $nb=nobin($f); if (strlen($f)*1.5 < strlen($nb)) $nb=__(' *** Binario ***'); echo " -----".__('Inicio de ').$n." ($ln bytes)-----\n". "$nb\n -----".__('Fin de ').$n."-----\n"; } else muestra($l,$n,$f,$ln); } } echo "-----".__('Fin de ').__('ficheros')."-----\n"; echo "-----".__('Inicio de ').__('auto-ejecutables')."-----\n"; foreach($files as $if => $b) if ($b['x'] == 'l' or $b['j']) $ejec[$b['x']][]=array('n'=>$b['n'],'f'=>tkInBuff($b['po'])); foreach(array('l'=>__('carga'),'f'=>__('filtros'),'r'=>__('finales'),'j'=>'jmp') as $ty => $la) { echo " -----".__('Inicio de ')."$la-----\n"; foreach($ejec[$ty] as $f) if ($reco) fwrite(fopen("$ndi/".$f['n'],"w"),$f['f']); else if ($full) echo " -----".__('Inicio de ')."?-----\n".nobin($f['f'])."\n -----".__('Fin de ')."?-----\n"; else muestra(0,'?',$f['f'],strlen($f['f'])); echo " -----".__('Fin de ')."$la-----\n"; } echo "-----".__('Fin de ').__('auto-ejecutables')."-----\n"; echo "-----".__('Inicio de ').__('plantillas y CSS')."-----\n"; if ($reco) if ($dopt['tpl']) { preg_match("+(^|.*/)..(-[^/]*)$+",$dopt['tpl'],$ma); $dpnom=$ma[1]; $pnom=$ma[2]; } else { $pnom="-tpl-$uniq.html"; $dpnom=""; } foreach($plans as $lg => $po) { $f=tkInBuff($po); $ln=strlen($f); if ($reco) { creadir("$ndi/$dpnom$lg$pnom"); $f=preg_replace('/(<img[^>]*src=")\?img=([0-9a-f]*")/','\1img-\2',$f); // inst viejo $f=preg_replace('/(<img[^>]*src=")\?img=([0-9a-f]*")/e','"\1img-\2.".$imgs[\2]["t"]',$f); // inst nuevo fwrite(fopen("$ndi/$dpnom$lg$pnom","w"),$f); } else if ($full) echo " -----$lg ($ln bytes) -----\n".nobin($f); else muestra(2,$lg,$f,$ln); } $f=tkInBuff($css); $ln=strlen($f); if ($reco) { if (!$cnom=$dopt['css']) $cnom="CSS-$uniq.css"; creadir("$ndi/$cnom"); fwrite(fopen("$ndi/$cnom","w"),$f); if ($imgs) { foreach($imgs as $im =>$img) { creadir("$ndi/{$dpnom}img-$im"); if (is_array($img)) // inst nuevo fwrite(fopen("$ndi/{$dpnom}img-$im.{$img['t']}","w"),tkInBuff($img['i'])); else fwrite(fopen("$ndi/{$dpnom}img-$im","w"),tkInBuff($img)); } } } else if ($full) echo " -----CSS ($ln)-----\n".nobin($f); else muestra(0,'css',$f,$ln); echo "-----".__('Fin de ').__('plantillas y CSS')."-----\n"; echo "-----".__('Inicio de ').__('bases de datos')."-----\n"; foreach($dsdb as $idbs => $dbs) foreach($dbs as $idb => $db) if (is_array($db)) { echo "-----".__('Base de datos ').(($db['vdb']) ? __('var ').$db['vdb'] : $db['db'])."-----\n"; if ($reco) { $dsdb[$idbs][$idb]['dm']=true; if (!$fnom=$db['fi']) $dsdb[$idbs][$idb]['fi']=($fnom="dump-$uniq.sql"); creadir("$ndi/$fnom"); $h=fopen("$ndi/$fnom","w"); for ($i=0; $i<$db['no']; $i++) { $bu=tkBuff(); if (!preg_match('/;[\s\n]*$/',$bu)) $bu.=';'; fwrite($h,"\n$bu\n"); } fclose($h); } else if ($full) for ($i=0; $i<$db['no']; $i++) { $bu=tkBuff(); printf("%8d bytes => ",strlen($bu)); if ($dbnwl) echo "\n".str_replace(",",",\n",$bu)."\n"; else echo "\n$bu\n"; } else { $pdbs=array(); for ($i=0; $i<$db['no']; $i++) { $bu=tkBuff(); $pdbs[preg_replace('/\(.*/s','',$bu)]+=strlen($bu); } foreach($pdbs as $mg => $ln) printf("%s ... %d bytes\n",$mg,$ln); } unset($dsdb[$idbs][$idb]['no']); } echo "-----".__('Fin de ').__('bases de datos')."-----\n"; echo "-----".__('Inicio de ').__('variables')."-----\n"; if ($reco) { // meto todas las vars en un fichero 'n' $h=fopen("$ndi/vars-$uniq.php","w"); fwrite($h,"<?php\n"); foreach($dvars as $v) fwrite($h,"//!\n\$$v[va]='';\n"); fwrite($h,"?>\n"); fclose($h); $files[]=array('n'=>"vars-$uniq.php",'p'=>true,'x'=>'n'); } $vars="<?php //!!\n". '$defvars='.var_export($dvars,true).";\n". '$svbufs='.var_export($files,true).";\n". '$defbdds='.var_export($dsdb,true).";\n"; echo "-----".__('Fin de ').__('variables')."-----\n"; if ($reco) { fwrite(fopen("$ndi/_mkInstaller.php","w"),$vars.'$myopt='.var_export($dopt,true).";\n?>"); } else echo $vars; // function mmIniStr($my) { global $lang_lang; $lang_lang=array( ' *** Binario ***' => array( 'ca' => ' *** Binari ***', 'en' => ' *** Binary ***', ), '%d comentarios eliminadas por mkInstaller' => array( 'ca' => '%d comentaris eliminats per mkInstaller', 'en' => '%d comments removed by mkInstaller', ), '%d lineas de codigo de depuracion eliminadas por mkInstaller' => array( 'ca' => '%d llinies de codi de depuracio eliminades per mkInstaller', 'en' => '%d lines of debug code removed by mkInstaller', ), '%s ya existe' => array( 'ca' => '%s ja existeix', 'en' => '%s already exists', ), '** Considera la opción de usar -o big en lugar de -o out' => array( 'ca' => 'Considera la opció de fer servir -o big en lloc de -o out', 'en' => 'Consider the option of using -o big instead of -o out', ), '** Debería especificar una licencia con -o lic' => array( 'ca' => '** Deurie de especificar una llicencia de us amb -o lic', 'en' => '** You should especify a license with -o lic', ), '** Definición de base de datos %s ignorada, ya existe una igual' => array( 'ca' => '** Definició de base de dades %s ignorada, ja existeix una igual', 'en' => '** Data base definition %s ignored, already exists', ), '** El fichero %s es muy grande (%1.1fM), puede que no pueda cargarse' => array( 'ca' => '** El arxiu es molt gran (%1.1fM), pot ser que no puga carregarse', 'en' => '** The file is very big (%1.1fM), perhaps it cannot be loaded', ), '** El patrón \'%s\' no corresponde con ninguna tabla' => array( 'ca' => '** El patró \'%s\' no es correspon amb cap taula', 'en' => '** The pattern \'%s\' does not match any table', ), '** Estableciendo como lista de tablas la lista actual' => array( 'ca' => '** Estableint com a llista de taules la llista actual', 'en' => '** Settin as list of tables the current list', ), '** Idioma %s no totalmente soportado' => array( 'ca' => '** Idioma %s no totalment soportat', 'en' => '** Language %s not fully supported', ), '** Intenta reducir las plantillas/imagenes usadas' => array( 'ca' => '** Intenta reduir les plantilles/imatges emprades', 'en' => '** Try to reduce the used templates/images', ), '** La inclusión de nombres de fichero no-relativos puede s-3032891603' => array( 'ca' => '** La inclusió de noms de arxiu no-relatius pot ser perillosa: %s', 'en' => '** The inclussion of non relative filenames can be dangerous: %s', ), '** La variable %s ya no está en las fuentes' => array( 'ca' => '** La variable %s ya no está en les fonts', 'en' => '** The variable %s is not yet in the sources', ), '** Licencia del instalador por defecto, debería usar -o ili' => array( 'ca' => '** Llicencia del instal.lador per defecte, deuríe emprar -o ili', 'en' => '** Default installer license, you should use -o ili', ), '** No existe el fichero %s para %s, cojo el de %s' => array( 'ca' => '** No existeix el arxiu %s per a %s, agafe el de %s', 'en' => '** The %s file for %s does not exists, taking %s', ), '** No puedo conectar con el servidor mysql actual, puede s-854983643' => array( 'ca' => '** No puc conectar amb el servidor mysql actual, pot ser normal si es fa servir un arxiu de dades,'."\n". ' conexió actual: \'%s\' , \'%s\' , \'%s\'', 'en' => '** Cannot connect with current mysql server, may be normal is a data file is employed,'."\n". ' current connection: \'%s\' , \'%s\' , \'%s\'', ), '** Ponga un nombre a su aplicación' => array( 'ca' => '** Done-li un nom a la seva aplicació', 'en' => '** Give a name to your application', ), '** Revise la definicin de la varible autodefinida %s' => array( 'ca' => '** Revise la definici de la variable autodefinida %s', 'en' => '** Rewiev the definition of the autodefined variable %s', ), '** Usando la opción peligrosa \'drp\' => drop tables' => array( 'ca' => '** Fent servir la opcio perillosa \'drp\' => drop tables', 'en' => '** Using dangerous option \'drp\' => drop tables', ), '** Valor por defecto para %s : %s' => array( 'ca' => '** Valor per defecte per a %s : %s', 'en' => '** Default value for %s : %s', ), '*** El procesamiento de %s ha producido un error sintáctico' => array( 'ca' => '*** El processament de %s ha produit una errada sintàctica', 'en' => '*** Processing %s has produced syntax error', ), '*** Falló la carga de la llave privada con la contraseña t-1607244275' => array( 'ca' => 'Ha fallat la càrrega de la clau privada fent servir la contraseña de la variable %s, la firma no se ha generat'."\n". 'Escriga la paraula de pas (AMB ECO): ', 'en' => 'The loading of the private key has failed using the password stored in variable %s, signature not generated'."\n". 'Type in the password (WITH ECHO): ', ), '*** Firma no generada en stdout' => array( 'ca' => '*** Signatura no generada en stdout', 'en' => '*** Signature not generated in stdout', ), '*** La carga de %s ha producido un error sintáctico' => array( 'ca' => '*** La carrega de %s ha produit una errada sintàctica', 'en' => '*** loading of %s has produced a syntactic error', ), '*** La ejecución de %s ha producido un error, %s no filtra-2114977031' => array( 'ca' => '*** La ejecució de %s ha produit una errada, %s no ha segut filtrat, sense canvis', 'en' => '*** The execution of %d has produced an error, %s not filtered, unchanged', ), '*** No puedo comprobar la firma, no hay soporte OpenSSL' => array( 'ca' => '*** No puc verificar la signatura, no hi ha suport OpenSSL', 'en' => '*** Cannot verify the signature, OpenSSL support missing', ), '-d host==user==passw==database[==type[:port][==[+]file]]'."\n". 'C-1796139491' => array( 'ca' => '-d host==user==passw==database[==type[:port][==[+]file]]'."\n". 'Cada camp: host, port, database, usuari y pass es, o be : valor, o be variable'."\n". 'Si especifica tipus (i fitxer), el tipus deu de ser mysql o pgsql', 'en' => '-d host==user==passw==database[==type[:port][==[+]file]]'."\n". 'Every field: host, port, database, user and pass is, or : value, or variable'."\n". 'If type (and file) are specified, type must be mysql or pgsql', ), 'Actualizando %s' => array( 'ca' => 'Actualizant %s', 'en' => 'Updating %s', ), 'Añado variable %s al fichero de definiciones' => array( 'ca' => 'Afegix variable %s al arxiu de definicions', 'en' => 'Adding variable %s to definitions file', ), 'Base de datos ' => array( 'ca' => 'Base de dades', 'en' => 'Data base', ), 'Base de datos %s' => array( 'ca' => 'Base de dades %s', 'en' => 'Data base %s', ), 'Cambios' => array( 'ca' => 'Canvis', 'en' => 'Changes', ), 'Construido con' => array( 'ca' => 'Construit amb', 'en' => 'Built with', ), 'Contraseña' => array( 'ca' => 'Paraula de pas', 'en' => 'Password', ), 'Crea tabla %s' => array( 'ca' => 'Crea taula %s', 'en' => 'Create table %s', ), 'Debe especificarse un directorio de salida con -u' => array( 'ca' => 'Deu de especificarse un directori de eixida amb -u', 'en' => 'With -u, an output directory must be specified', ), 'Descargado %s'."\n" => array( 'ca' => 'Descarregat %s', 'en' => '%s downloaded', ), 'Descargando ...' => array( 'ca' => 'Descarregant ...', 'en' => 'Downloading ...', ), 'Detecto etiqueta \'%s\' para %s, idioma %s' => array( 'ca' => 'Detecte eitqueta \'%s\' per a %s, idioma %s', 'en' => 'Detected label \'%s\' for %s, language %s', ), 'Detecto variable %s de valor %s' => array( 'ca' => 'Detecte variable %s de valor %s', 'en' => 'Dectect variable %s with value %s', ), 'Disponible una nueva versión de mkInstaller' => array( 'ca' => 'Es disposa d\'una nova versió de mkInstaller', 'en' => 'A new version of mkInstaller is available', ), 'Disponible una nueva versión de mkInstaller, puede usar -D-1093888853' => array( 'ca' => 'Es disposa d\'una nova versió de mkInstaller, pot emprar -D per a instal.larla', 'en' => 'A new version of mkInstaller is available, you can use -D to install it', ), 'El fichero %s %s no corresponde con ningún idioma definido' => array( 'ca' => 'El arxiu de %s %s no es correspon amb cap idioma definit', 'en' => 'The %s file %s do not correspond to any defined language', ), 'El fichero %s no existe' => array( 'ca' => 'El arxiu %s no existeix', 'en' => 'The file %s does not exists', ), 'El fichero %s no existe o no es un instalador' => array( 'ca' => 'El arxiu %s no existeix o no es un instal.lador', 'en' => 'The file %s does not exist or is not an installer', ), 'El fichero \'%s\' no es válido' => array( 'ca' => 'El arxiu \'%s\' no vàlid', 'en' => 'The file \'%s\' is not valid', ), 'Error en %s' => array( 'ca' => 'Error en %s', 'en' => 'Error in %s', ), 'Escrito el fichero de datos %s' => array( 'ca' => 'Escrit el arxiu de dades %s', 'en' => 'Data file %s written', ), 'Escrito el fichero de firma %s' => array( 'ca' => 'Escrit el arxiu de signatura %s', 'en' => 'Signature file %s written', ), 'Escrito el instalador %s' => array( 'ca' => 'Escrit el instalador %s', 'en' => 'Installer %s written', ), 'Esta versión de mkInstaller tiene problemas graves, debe s-3989198745' => array( 'ca' => 'Esta versió de mkInstaller te problemes greus, deu de ser actualitzada', 'en' => 'This version of mkInstaller has problems, must be updated', ), 'Este tipo de fichero no es parseable: %s' => array( 'ca' => 'Este tipus de arxiu no es parsejable: %s', 'en' => 'This type of file is not parseable: %s', ), 'Fallo en contenido' => array( 'ca' => 'Falla en el contingut', 'en' => 'Content failure', ), 'Fallo en firma ' => array( 'ca' => 'Falla en la signatura', 'en' => 'Signature failure', ), 'Fallo en la descarga' => array( 'ca' => 'Falla en la descarrega', 'en' => 'Download failure', ), 'Fallo en la descarga de %s' => array( 'ca' => 'Falla en la descarrega de %s', 'en' => 'Failure downloading %s', ), 'Fichero %s regenerado' => array( 'ca' => 'Arxiu %s regenerat', 'en' => 'Regenerated file %s', ), 'Ficheros disponibles' => array( 'ca' => 'Arxius disponibles', 'en' => 'Avaiable files', ), 'Fin' => array( 'ca' => 'Fi', 'en' => 'End', ), 'Fin de ' => array( 'ca' => 'Fi de ', 'en' => 'End of ', ), 'Idioma principal: %s' => array( 'ca' => 'Idioma principal', 'en' => 'Main language: %s', ), 'Inicio de ' => array( 'ca' => 'Inici de ', 'en' => 'Start of ', ), 'Instalada' => array( 'ca' => 'Instal.lada', 'en' => 'Installed', ), 'Instalador no generado en stdout' => array( 'ca' => 'Instal.lador no generat en stdout', 'en' => 'Installer not generated in stdout', ), 'Instalador para %s' => array( 'ca' => 'Instal.lador per a %s', 'en' => 'Installer for %s', ), 'Instalador para %s - Construido con mkInstaller' => array( 'ca' => 'Instal.lador per a %s - Construit amb mkInstaller', 'en' => 'Installer for %s - Built with mkInstaller', ), 'Interface web de %s' => array( 'ca' => 'Interficie web de %s', 'en' => '%s web interface', ), 'Introduzca el valor de la variable <i>%s</i>' => array( 'ca' => 'Introdueixca el valor de la variable <i>%s</i>', 'en' => 'Type the value of variable <i>%s</i>', ), 'La definición de bdd %s contiene %s y v%s ambos definidos' => array( 'ca' => 'La definició de bdd %s conté %s i v%s els dues definits', 'en' => 'The definition of db %s contains %s and v%s both defined', ), 'La definición de bdd %s de %s contiene db y vdb ambos definidos' => array( 'ca' => 'La definició de bdd %s de %s conté db i vdb els dues definits', 'en' => 'The definition of db %s of %s contains db and vdb both defined', ), 'La firma ha fallado: ' => array( 'ca' => 'La signatura ha fallat: ', 'en' => 'Signature has failed: ', ), 'La función %s no está disponible, revisa el modulo php %s'."\n". '-692263411' => array( 'ca' => 'La funció %s no esta disponible, revisa el mòdul php %s'."\n". 'Es posible que mkInstaller no funcione correctament', 'en' => 'The php function %s is not available, review the php modul %s'."\n". 'Is possible than mkInstaller do not work properly', ), 'La opción \'drp\' ha quedado desactivada' => array( 'ca' => 'La opció \'drp\' ha quedat desactivada', 'en' => 'The \'drp\' option has bee disabled', ), 'La variable %s usada en la def de bdd %s no está definida -3835832309' => array( 'ca' => 'La variable %s usada en la def de la bdd %s de %s no està definida o no te valor actual', 'en' => 'The variable %s used in the def of db of %s is not defined or has not actual value', ), 'La variable %s usada para el nombre de la bdd %s de %s no -4292040829' => array( 'ca' => 'La variable %s usada per al nom de la bdd %s de %s no està definida o no te valor actual', 'en' => 'The variable %s used for the name of db %s of %s is not defined or has not actual value', ), 'Las opciones válidas son: ' => array( 'ca' => 'Les opcions vàlides son: ', 'en' => 'The valid options are: ', ), 'Leo el fichero %s' => array( 'ca' => 'Llig el arxiu %s', 'en' => 'Reading file %s', ), 'Línea de comandos:' => array( 'ca' => 'Llinea de comandaments', 'en' => 'Command line', ), 'No puedo abrir el fichero %s' => array( 'ca' => 'No puc obrir el arxiu %s', 'en' => 'Cannot open file %s', ), 'No puedo cargar el fichero %s' => array( 'ca' => 'No puc carregar el archiu %s', 'en' => 'Cannot load file %s', ), 'No puedo cargar la imagen %s' => array( 'ca' => 'No puc carregar l\'imatge %s', 'en' => 'Cannot load image %s', ), 'No puedo conectar con el servidor postgres actual \'%s\' , \'-2617923037' => array( 'ca' => 'No puc conectar amb el servidor postgresql actual \'%s\' , \'%s\' , \'%s\' , \'%s\' , \'%s\'', 'en' => 'Cannot connect with current postgresql server \'%s\' , \'%s\' , \'%s\' , \'%s\' , \'%s\'', ), 'No puedo crear el directorio %s' => array( 'ca' => 'No puc crear el directori %s', 'en' => 'Canot create directory %s', ), 'No puedo crear el fichero %s' => array( 'ca' => 'No puc crear el arxiu %s', 'en' => 'Canot create file %s', ), 'No puedo crear ficheros' => array( 'ca' => 'No puc crear arxius', 'en' => 'Canot create files', ), 'No puedo generar el fichero %s correctamente, causas posib-1606610545' => array( 'ca' => 'No puc generar el fitxer %s correctament, causes posibles:'."\n". ' - cap variable definida'."\n". ' - problema intern', 'en' => 'Cannot generate a correct %s, possible causes:'."\n". ' - any defined variable'."\n". ' - internal error', ), 'No puedo obtener la versión actual a partir de %s' => array( 'ca' => 'No puc obtenir la versio actual a partir de %s', 'en' => 'Cannot obtain the current version form %s', ), 'No se especificó ni conexión ni archivo para la bdd %s' => array( 'ca' => 'No es va especificar ni conexió ni arxiu per a la bdd %s', 'en' => 'Neither connection nor file was especified fot bdd %s', ), 'Nueva contraseña' => array( 'ca' => 'Nova paraula de pass', 'en' => 'New password', ), 'Opción ambigua' => array( 'ca' => 'Opció ambigua', 'en' => 'Ambiguous option', ), 'Opción desconocida \'%s\'' => array( 'ca' => 'Opció desconeguda \'%s\'', 'en' => 'Unknown option \'%s\'', ), 'Para usar con \'%s\', \'%s\' debe ser un directorio' => array( 'ca' => 'Per a fer servir amb \'%s\', \'%s\' deu de ser un directori', 'en' => 'To use with \'%s\', \'%s\' mush be a directory', ), 'Para usar con \'%s\', \'%s\' debe ser un fichero ordinario' => array( 'ca' => 'Per a fer servir amb \'%s\', \'%s\' deu de ser un fitxer ordinari', 'en' => 'To use with \'%s\', \'%s\' mush be an ordinary file', ), 'Parseado %s con %s' => array( 'ca' => 'Parsejant %s amb %s', 'en' => 'Parsing %s with %s', ), 'Paso 1' => array( 'ca' => 'Pas 1', 'en' => 'Step 1', ), 'Paso 2' => array( 'ca' => 'Pas 2', 'en' => 'Step 2', ), 'Problemas en el código fuente de %s, edítalo a mano' => array( 'ca' => 'Problemes amb el codi font de %s, edítal a ma', 'en' => 'Troubles with %s source code, edit it by hand', ), 'Proceder' => array( 'ca' => 'Precedir', 'en' => 'Proceed', ), 'Rellena tabla %s' => array( 'ca' => 'Ompli taula %s', 'en' => 'Fill table %s', ), 'Sólo un fichero de instalación' => array( 'ca' => 'Sols un fitcher d\'instalació', 'en' => 'Only a instalation file', ), 'Sólo un nombre de plantilla, deben existir: en-fichero , e-2469566208' => array( 'ca' => 'Nomes un nom de plantilla, deuen existir: ca-fitxer, es-fitxer ...', 'en' => 'Only a template name, must exist: en-file , de-file ...', ), 'Tabla %s' => array( 'ca' => 'Taula %s', 'en' => 'Table %s', ), 'Tipo de base de datos \'%s\' desconocido' => array( 'ca' => 'Tipus de base de dades \'%s\' desconeguda', 'en' => 'Database type \'%s\' unknown', ), 'Tomo imagen %s de tipo %s, id %s' => array( 'ca' => 'Agafe imatge %s de tipus %s, id %s', 'en' => 'Taking image %s of type %s, id %s', ), 'Un comentario eliminado por mkInstaller' => array( 'ca' => 'Un comentari eliminat per mkInstaller', 'en' => 'One comment removed by mkInstaller', ), 'Versión aceptada: %s' => array( 'ca' => 'Versió aceptada: %s', 'en' => 'Accepted version: %s', ), 'Versión actual obtenida: %s' => array( 'ca' => 'Versió actual obtinguda: %s', 'en' => 'Obtained current version: %s', ), 'auto-ejecutables' => array( 'ca' => 'auto-ejecutables', 'en' => 'auto-run', ), 'bases de datos' => array( 'ca' => 'bases de dades', 'en' => 'databases', ), 'carga' => array( 'ca' => 'càrrega', 'en' => 'load', ), 'ficheros' => array( 'ca' => 'arxius', 'en' => 'files', ), 'filtros' => array( 'ca' => 'filtres', 'en' => 'filters', ), 'finales' => array( 'ca' => 'finals', 'en' => 'enders', ), 'licencia' => array( 'ca' => 'llicencia', 'en' => 'license', ), 'plantilla' => array( 'ca' => 'plantilla', 'en' => 'template', ), 'plantillas y CSS' => array( 'ca' => 'plantilles y CSS', 'en' => 'templates & CSS', ), 's' => array( 'ca' => 's', 'en' => 'y', ), 'var ' => array( 'ca' => 'var', 'en' => 'var', ), 'variables' => array( 'ca' => 'variables', 'en' => 'variables', ), 'ver %s' => array( 'ca' => '0', 'en' => '0', ), '¿Desea actualizarla ahora?' => array( 'ca' => 'Desitja actualitzarla ara?', 'en' => 'Do you want to upgrade now?', ), ); $idios[$my]=1; foreach($lang_lang as $st =>$tra) foreach($tra as $la => $kk) $idios[$la]=2; return $idios; } function mmSetLang($langs,$def) { global $whichLang, $altLang; $altLang=$def; if (!$langs[$altLang]) $altLang=""; if (!$whichLang) { //force? foreach(preg_split('/,/', preg_replace('/;.*/','', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']))) as $lang) { $lang=substr($lang,0,2); if ($langs[$lang]) { $whichLang=$lang; break; } } } if (!$whichLang) { $whichLang=substr(setlocale(LC_ALL,""),0,2); } // si nada coincide asume $altLang if (strlen($whichLang) != 2) $whichLang=$altLang; if ($langs[$whichLang] == 1) $altLang=""; } function forceLangSession($lang) { global $whichLang; if ($lang) $_SESSION["whichLang"]=$lang; if ($lang=$_SESSION["whichLang"]) $whichLang=$lang; } function __($mes,$lang="") { global $lang_lang, $whichLang, $altLang; $idi=$lang or $idi=$whichLang; if (strlen($mes) > 70) $imes=substr($mes,0,58)."-".sprintf("%u",crc32($mes)); else $imes=$mes; $mm=$lang_lang[$imes][$idi]; if ($mm) return $mm; else { $mm=$lang_lang[$imes][$altLang]; if ($mm) return $mm; else return $mes; } } /* mmGetText end */ // }}} /* * vim600: cms=//%s foldmethod=marker */ ?>