Update doc/efun/ aus Driversourcen.

Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.

Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/replace_program b/doc/efun/replace_program
index 98cc305..39f8e88 100644
--- a/doc/efun/replace_program
+++ b/doc/efun/replace_program
@@ -2,40 +2,35 @@
         void replace_program()
         void replace_program(string program)
 
-BESCHREIBUNG
-        Ersetzt ein Programm mit dem geerbten Programm (inherit) <program>.
-        Das Argument <program> kann weggelassen werden, wenn nur ein Programm
-        geerbt wird. In diesem Fall waehlt der Treiber automatisch dieses eine
-        geerbte Programm.
+DESCRIPTION
+        Substitutes a program with the inherited program <program>. If
+        the object inherits only one program, the argument may be omitted
+        and the efun will automatically select the one inherited program.
 
-        Diese Efun ist nuetzlich, wenn es um Leistung und Speicherverbrauch
-        des Treibers geht. Ein Programm, welches keine zusaetzlichen Variablen
-        oder Funktionen braucht (ausser waehrend der Erstellung), kann
-        replace_program() aufrufen, um die Trefferquote des Treibers auf den
-        Funktionen-Caches zu erhoehen. Dies verringert die Anzahl Programme
-        im System.
+        This efun is useful if you consider the performance and memory
+        consumption of the driver. A program which doesn't need any additional
+        variables and functions (except during creation) can call
+        replace_program() to increase the function-cache hit-rate of the
+        driver which decreases with the number of programs in the system.
 
-        Raeume sind ein gutes Beispiel fuer die Anwendung dieser Funktion, da
-        viele Raeume nur aus einem Inherit und einer Konfigurationsfunktion
-        bestehen. Jedes Objekt kann replace_program() aufrufen, verliert dabei
-        jedoch alle Variablen und Funktionen, die nicht im geerbten Programm
-        definiert sind.
+        Rooms are a good example for the application of this function, as many
+        rooms just consist of an inherit statement and the configure function.
+        Any object can call replace_program() but looses all extra variables
+        and functions which are not defined by the inherited program.
 
-        Wenn replace_program() angewendet wird, werden Shadows vom Objekt
-        entfernt, in dem replace_program() stattfindet. Dies ist so seit
-        3.2@166.
+        When replace_program() takes effect, shadowing is stopped on
+        the object since 3.2@166.
 
-        Es ist nicht moeglich, replace_program() aufzurufen, wenn es an das
-        Objekt gebundene (Lambda-) Closures gibt. Hingegen ist es moeglich,
-        zuerst das Programm des Objekts zu ersetzen und dann Lambdaclosures
-        daran zu binden.
+        It is not possible to replace the program of an object after (lambda)
+        closures have been bound to it. It is of course possible to first
+        replace the program and then bind lambda closures to it.
 
-        Das Ersetzen des Programms findet erst statt, wenn das Objekt
-        vollstaendig abgearbeitet wurde, nicht schon beim Aufruf der Funktion
-        replace_program(). Das kann dazu fuehren, dass Closures auf inzwischen
-        verschwundene Lfuns des Objekts referenzieren. Das stellt allerdings
-        kein Problem dar, solange diese Referenzen nicht ausgefuehrt werden.
+        The program replacement does not take place with the call to the efun,
+        but is merely scheduled to be carried out at the end of the backend
+        cycle. This may cause closures to have references to then vanished
+        lfuns of the object. This poses no problem as long as these references
+        are never executed after they became invalid.
 
-GESCHICHTE
-        LDMud 3.2.9 liess zu, dass das Argument <program> weggelassen wird,
-        wenn nur ein Inherit existiert.
+HISTORY
+        LDMud 3.2.9 allowed to omit the argument if only one inherit
+        exists.