117 lines
2.7 KiB
PHP
Executable File
117 lines
2.7 KiB
PHP
Executable File
<?php
|
|
// translator ready
|
|
// addnews ready
|
|
// mail ready
|
|
function substitute($string, $extra=false, $extrarep=false) {
|
|
global $badguy, $session;
|
|
|
|
$search = array("%s",
|
|
"%o",
|
|
"%p",
|
|
"%x",
|
|
"%X",
|
|
"%a",
|
|
"%W",
|
|
"%w",
|
|
"{badguy}",
|
|
"{goodguy}",
|
|
"{weapon}",
|
|
"{armor}",
|
|
"{creatureweapon}",
|
|
);
|
|
|
|
$replace = array(($session['user']['sex']?"her":"him"),
|
|
($session['user']['sex']?"she":"he"),
|
|
($session['user']['sex']?"her":"his"),
|
|
$session['user']['weapon'],
|
|
$badguy['creatureweapon'],
|
|
$session['user']['armor'],
|
|
$badguy['creaturename'],
|
|
"`^".$session['user']['name']."`^",
|
|
$badguy['creaturename'],
|
|
"`^".$session['user']['name']."`^",
|
|
$session['user']['weapon'],
|
|
$session['user']['armor'],
|
|
$badguy['creatureweapon'],
|
|
);
|
|
|
|
if ($extra !== false && $extrarep !== false) {
|
|
$search = array_merge($search, $extra);
|
|
$replace = array_merge($replace, $extrarep);
|
|
}
|
|
|
|
$string = str_replace($search, $replace, $string);
|
|
return $string;
|
|
}
|
|
|
|
function substitute_array($string, $extra=false, $extrarep=false){
|
|
global $badguy, $session;
|
|
// separate substitutions for gender items (makes 2 translations per
|
|
// substition that uses these)
|
|
$search = array(
|
|
"%s",
|
|
"%o",
|
|
"%p",
|
|
);
|
|
|
|
$replace = array(
|
|
($session['user']['sex']?"her":"him"),
|
|
($session['user']['sex']?"she":"he"),
|
|
($session['user']['sex']?"her":"his"),
|
|
);
|
|
$string = str_replace($search, $replace, $string);
|
|
|
|
$search = array(
|
|
"%x",
|
|
"%X",
|
|
"%a",
|
|
"%W",
|
|
"%w",
|
|
"{badguy}",
|
|
"{goodguy}",
|
|
"{weapon}",
|
|
"{armor}",
|
|
"{creatureweapon}",
|
|
);
|
|
$replace = array(
|
|
$session['user']['weapon'],
|
|
$badguy['creatureweapon'],
|
|
$session['user']['armor'],
|
|
$badguy['creaturename'],
|
|
"`^".$session['user']['name']."`^",
|
|
$badguy['creaturename'],
|
|
"`^".$session['user']['name']."`^",
|
|
$session['user']['weapon'],
|
|
$session['user']['armor'],
|
|
$badguy['creatureweapon'],
|
|
);
|
|
|
|
if ($extra !== false && $extrarep !== false) {
|
|
$search = array_merge($search, $extra);
|
|
$replace = array_merge($replace, $extrarep);
|
|
}
|
|
$replacement_array=array($string);
|
|
|
|
// Do this the right way.
|
|
// Iterate the string and find the replacements in order
|
|
for ($x=0; $x<strlen($replacement_array[0]); $x++){
|
|
reset($search);
|
|
while (list($skey,$sval)=each($search)){
|
|
// Get the replacement for this value.
|
|
$rval = $replace[$skey];
|
|
if (substr($replacement_array[0],$x,strlen($sval))==$sval){
|
|
array_push($replacement_array,$rval);
|
|
$replacement_array[0] =
|
|
substr($replacement_array[0],0,$x) . "%s" .
|
|
substr($replacement_array[0],$x+strlen($sval));
|
|
// Making a replacement changes the length, so we need to
|
|
// restart at the beginning of the string.
|
|
$x = -1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return $replacement_array;
|
|
}
|
|
?>
|