added input-validation:

- needed (= not to be empty) fields are enforced now
- min and max values and format of int and float fields
- validator for text-fields (perl regular expression)
The input-validation is handled completly withing eTemplate, the application dont need to implement any code, just set the right attributes in the template. Validation-errors are displayed in red behind the concerning field, try the template 'etemplate.validation-test' in the editor.
This commit is contained in:
Ralf Becker 2004-04-05 01:33:23 +00:00
parent 219c1db81e
commit ec1cf301b2
8 changed files with 433 additions and 305 deletions

View File

@ -278,7 +278,7 @@ with the content the user put into the fields of the dialog.</p>
even submit the form back to the user if for a address-selection a search for a pattern has to be performed and the matches
are shown to the user. In this case the callback is NOT called. The same is true if an int field contains letters or is not
within the minimum or maximum set. <i>Not all of the is allready working, it will follow in the next days/weeks.</i><br>
For the specialist process_exec uses $GLOBALS['HTTP_POST_VARS'] and ignores HTTP_GET_VARS set as query in the url.
For the specialist process_exec uses $_POST and ignores $_GET set as query in the url.
<li>the so_sql function data_merge, copies all values from $content, which are columns in the db-table, in our internal data array.
Values which are not real data, like buttons pressed are not copied (!).
<li>if $content['save'] is set, the [Save] button has been pressed ('save' is the name NOT the label of the save button), in that

View File

@ -235,7 +235,6 @@ implement only a subset of XUL. Here are the main differences:</p>
<td>
If checked (xml-attr: needed="1") the etemplates will reprompt the user if he left
the widget / field empty.<br>
<i>This is not yet implemented, but should be filled if applicable.</i>
</td>
</tr>
<tr>
@ -392,9 +391,10 @@ implement only a subset of XUL. Here are the main differences:</p>
<td>
<b>a single-line input field for text</b><br>
In the html-UI this is rendered as &lt;input ...><p>
<b>Options</b> has 2 comma-separated fields:<br>
<b>Options</b> has 3 comma-separated fields:<br>
xml: <b>size</b>: the length in chars of the input-field<br>
xml: <b>maxlength</b>: the maximum length of the input
xml: <b>maxlength</b>: the maximum length of the input<br>
xml: <b>validator</b>: perl regular expression to validate the input (kommas are allowed in the expression)
</td>
</tr>
<tr>
@ -404,11 +404,11 @@ implement only a subset of XUL. Here are the main differences:</p>
<td>int</td>
<td>
<b>a input-field to enter an integer</b><br>
In the html-UI this is rendered as &lt;input ...>. <i>There are no checks implemented at the moment,
but the will come in the near future.</i><p>
In the html-UI this is rendered as &lt;input ...>. <i>The input-validation is done at the moment only on server-side,
clientside validation and input-restriction to only numbers is planed.</i><p>
<b>Options</b> has 3 comma-separated fields:<br>
xml: <b>min</b>: minimum value, default none<br>
xml: <b>max</b>: maximum value, default none<br>
xml: <b>min</b>: minimum value, default none, empty values are Ok, as long as <b>needed</b> is not set<br>
xml: <b>max</b>: maximum value, default none, empty values are Ok, as long as <b>needed</b> is not set<br>
xml: <b>size</b>: the length in chars of the input-field, default 5
</td>
</tr>
@ -419,11 +419,11 @@ implement only a subset of XUL. Here are the main differences:</p>
<td>float</td>
<td>
<b>a input-field to enter a float</b><br>
In the html-UI this is rendered as &lt;input ...>. <i>There are no checks implemented at the moment,
but the will come in the near future.</i><p>
In the html-UI this is rendered as &lt;input ...>. <i>The input-validation is done at the moment only on server-side,
clientside validation and input-restriction to only numbers is planed.</i><p>
<b>Options</b> has 3 comma-separated fields:<br>
xml: <b>min</b>: minimum value, default none<br>
xml: <b>max</b>: maximum value, default none<br>
xml: <b>min</b>: minimum value, default none, empty values are Ok, as long as <b>needed</b> is not set<br>
xml: <b>max</b>: maximum value, default none, empty values are Ok, as long as <b>needed</b> is not set<br>
xml: <b>size</b>: the length in chars of the input-field, default 5
</td>
</tr>

View File

@ -228,6 +228,9 @@
//echo "process_exec($this->name) content ="; _debug_array($content);
$this->process_show($content,$session_data['to_process'],'exec');
$GLOBALS['phpgw_info']['etemplate']['loop'] |= !$this->canceled &&
count($GLOBALS['phpgw_info']['etemplate']['validation_errors']) > 0; // set by process_show
//echo "process_exec($this->name) process_show(content) ="; _debug_array($content);
//echo "process_exec($this->name) session_data[changes] ="; _debug_array($session_data['changes']);
$content = $this->complete_array_merge($session_data['changes'],$content);
@ -606,8 +609,9 @@
{
$cell_options = $cell['type'] == 'int' ? 5 : 8;
}
$cell_options .= ',,'.($cell['type'] == 'int' ? '/^-?[0-9]*$/' : '/^-?[0-9]*[,.]?[0-9]*$/');
// fall-through
case 'text': // size: [length][,maxLength]
case 'text': // size: [length][,maxLength[,preg]]
if ($readonly)
{
$html .= $this->html->bold(htmlspecialchars($value));
@ -616,20 +620,36 @@
{
$html .= $this->html->input($form_name,$value,'',
$options.$this->html->formatOptions($cell_options,'SIZE,MAXLENGTH'));
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
$cell_options = explode(',',$cell_options,3);
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = array(
'type' => $cell['type'],
'maxlength' => $cell_options[1],
'needed' => $cell['needed'],
'preg' => $cell_options[2],
'min' => $min, // int and float only
'max' => $max,
);
}
break;
case 'textarea': // Multiline Text Input, size: [rows][,cols]
$html .= $this->html->textarea($form_name,$value,
$options.$this->html->formatOptions($cell_options,'ROWS,COLS'));
if (!$readonly)
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
{
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = array(
'type' => $cell['type'],
'needed' => $cell['needed'],
);
}
break;
case 'htmlarea': // Multiline formatted Text Input, size: [inline styles for the widget]
if (!$readonly)
{
$html .= $this->html->htmlarea($form_name,$value,$cell_options);
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = array(
'type' => $cell['type'],
'needed' => $cell['needed'],
);
}
else
{
@ -682,6 +702,7 @@
}
break;
case 'button':
case 'cancel': // cancel button
list($app) = explode('.',$this->name);
list($img,$ro_img) = explode(',',$cell_options);
$title = strlen($label) <= 1 || $cell['no_lang'] ? $label : lang($label);
@ -710,7 +731,13 @@
}
$extra_label = False;
if (!$readonly)
{
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = $cell['type'];
if (strtolower($name) == 'cancel')
{
$GLOBALS['phpgw_info']['etemplate']['to_process'][$form_name] = 'cancel';
}
}
break;
case 'hrule':
$html .= $this->html->hr($cell_options);
@ -972,6 +999,11 @@
return $this->html->a_href($html,$extra_link,'',$help != '' ? $options : '');
}
}
// if necessary show validation-error behind field
if (isset($GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name]))
{
$html .= ' <font color="red">'.$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name].'</font>';
}
return $html;
}
@ -999,6 +1031,8 @@
}
$content_in = $cname ? array($cname => $content) : $content;
$content = array();
$GLOBALS['phpgw_info']['etemplate']['validation_errors'] = array();
$this->canceled = False;
foreach($to_process as $form_name => $type)
{
@ -1034,14 +1068,62 @@
}
$this->set_array($content,$form_name,$value);
break;
case 'int':
case 'float':
case 'text':
case 'textarea':
if (isset($value))
{
$value = stripslashes($value);
}
if ($value === '' && $attr['needed'])
{
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang('Field must not be empty !!!',$value);
}
if ((int) $attr['maxlength'] > 0 && strlen($value) > (int) $attr['maxlength'])
{
$value = substr($value,0,(int) $attr['maxlength']);
}
if ($attr['preg'] && !preg_match($attr['preg'],$value))
{
switch($type)
{
case 'int':
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang("'%1' is not a valid integer !!!",$value);
break;
case 'float':
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang("'%1' is not a valid floatingpoint number !!!",$value);
break;
default:
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang("'%1' has an invalid format !!!",$value);
break;
}
}
elseif ($type == 'int' || $type == 'float') // cast int and float and check range
{
if ($value !== '' || $attr['needed']) // empty values are Ok if needed is not set
{
$value = $type == 'int' ? (int) $value : (float) str_replace(',','.',$value); // allow for german (and maybe other) format
if (!empty($attr['min']) && $value < $attr['min'])
{
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang("Value has to be at least '%1' !!!",$attr['min']);
$value = $type == 'int' ? (int) $attr['min'] : (float) $attr['min'];
}
if (!empty($attr['max']) && $value > $attr['max'])
{
$GLOBALS['phpgw_info']['etemplate']['validation_errors'][$form_name] = lang("Value has to be at maximum '%1' !!!",$attr['max']);
$value = $type == 'int' ? (int) $attr['max'] : (float) $attr['max'];
}
}
}
$this->set_array($content,$form_name,$value);
break;
case 'cancel': // cancel button ==> dont care for validation errors
if ($value)
{
$this->canceled = True;
}
case 'button':
if ($value)
{
@ -1068,8 +1150,7 @@
$name = array_shift($parts);
$index = count($parts) ? '['.implode('][',$parts).']' : '';
$value = array();
$parts = array('tmp_name','type','size','name');
while (list(,$part) = each($parts))
foreach(array('tmp_name','type','size','name') as $part)
{
$value[$part] = is_array($_FILES[$name]) ? $this->get_array($_FILES[$name],$part.$index) : False;
}
@ -1093,8 +1174,13 @@
if (is_int($this->debug) && $this->debug >= 2 || $this->debug == $this->name && $this->name)
{
echo "<p>process_show($this->name) end: content ="; _debug_array($content);
if (count($GLOBALS['phpgw_info']['etemplate']['validation_errors']))
{
echo "<p>validation_errors = "; _debug_array($GLOBALS['phpgw_info']['etemplate']['validation_errors']);
}
}
return count($GLOBALS['phpgw_info']['etemplate']['validation_errors']);
}
/*!
@function java_script

View File

@ -49,7 +49,7 @@
),
'text' => array(
'.name' => 'textbox',
'size' => 'size,maxlength'
'size' => 'size,maxlength,validator'
),
'textarea' => array(
'.name' => 'textbox',

View File

@ -1,11 +1,15 @@
<?php
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2004-02-06 01:57
// eTemplates for Application 'etemplate', generated by etemplate.dump() 2004-04-05 03:44
/* $Id$ */
$templ_data[] = array('name' => 'etemplate.editor.values','template' => '','lang' => '','group' => '0','version' => '0.9.13.002','data' => 'a:3:{i:0;a:2:{s:2:\"c1\";s:3:\"nmh\";s:2:\"c2\";s:3:\"nmr\";}i:1;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:3:\"Key\";}s:1:\"B\";a:2:{s:4:\"type\";s:5:\"label\";s:5:\"label\";s:5:\"Value\";}}i:2;a:2:{s:1:\"A\";a:3:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:8:\"$col$row\";s:8:\"readonly\";s:1:\"1\";}s:1:\"B\";a:2:{s:4:\"type\";s:4:\"text\";s:4:\"name\";s:8:\"$col$row\";}}}','size' => '','style' => '','modified' => '1081094454',);
$templ_data[] = array('name' => 'etemplate.nextmatch_widget.header_only','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:3:{i:0;a:2:{s:1:\"A\";s:3:\"50%\";s:1:\"B\";s:3:\"50%\";}i:1;a:2:{s:1:\"A\";a:2:{s:4:\"type\";s:8:\"template\";s:4:\"name\";s:12:\"@header_left\";}s:1:\"B\";a:3:{s:4:\"type\";s:8:\"template\";s:5:\"align\";s:5:\"right\";s:4:\"name\";s:13:\"@header_right\";}}i:2;a:2:{s:1:\"A\";a:5:{s:4:\"type\";s:8:\"template\";s:4:\"size\";s:4:\"rows\";s:4:\"span\";s:3:\"all\";s:5:\"align\";s:6:\"center\";s:4:\"name\";s:9:\"@template\";}s:1:\"B\";a:1:{s:4:\"type\";s:5:\"label\";}}}','size' => '100%','style' => '.activ_sortcolumn { color: red; font-weight: bold; }
.inactiv_sortcolumn { color: green; font-weight: normal; }','modified' => '1075985789',);
$templ_data[] = array('name' => 'etemplate.validation-test','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:5:{i:0;a:0:{}i:1;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:4:\"text\";s:4:\"size\";s:15:\"10,10,/^[A-Z]+/\";s:5:\"label\";s:52:\"Text (<= 10 chars, has to start with capital letter)\";s:4:\"name\";s:4:\"text\";}}i:2;a:1:{s:1:\"A\";a:5:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:5:\"-15,5\";s:5:\"label\";s:23:\"Integer (-15 <= x <= 5)\";s:4:\"name\";s:7:\"integer\";s:6:\"needed\";s:1:\"1\";}}i:3;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:5:\"float\";s:4:\"size\";s:8:\"-1.5,3.5\";s:5:\"label\";s:32:\"Floatingpoint (-1.5 <= x <= 3.5)\";s:4:\"name\";s:5:\"float\";}}i:4;a:1:{s:1:\"A\";a:4:{s:4:\"type\";s:4:\"hbox\";s:4:\"size\";s:1:\"2\";i:1;a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:4:\"Save\";s:4:\"name\";s:4:\"save\";}i:2;a:3:{s:4:\"type\";s:6:\"button\";s:5:\"label\";s:6:\"Cancel\";s:4:\"name\";s:6:\"cancel\";}}}}','size' => ',,0,,0,0','style' => '','modified' => '1081128620',);
$templ_data[] = array('name' => 'etemplate.datefield','template' => '','lang' => '','group' => '0','version' => '0.9.15.001','data' => 'a:2:{i:0;a:0:{}i:1;a:3:{s:1:\"A\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,31\";s:4:\"name\";s:1:\"d\";s:4:\"help\";s:3:\"Day\";}s:1:\"B\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,12\";s:4:\"name\";s:1:\"m\";s:4:\"help\";s:5:\"Month\";}s:1:\"C\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1900\";s:4:\"name\";s:1:\"Y\";s:4:\"help\";s:4:\"Year\";}}}','size' => '','style' => '','modified' => '1032907904',);
$templ_data[] = array('name' => 'etemplate.datefield','template' => '','lang' => '','group' => '0','version' => '0.9.15.002','data' => 'a:2:{i:0;a:0:{}i:1;a:5:{s:1:\"A\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f1\";s:4:\"help\";s:5:\"@help\";}s:1:\"B\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:3:\"sep\";}s:1:\"C\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f2\";s:4:\"help\";s:5:\"@help\";}s:1:\"D\";a:3:{s:4:\"type\";s:5:\"label\";s:4:\"size\";s:1:\"b\";s:4:\"name\";s:3:\"sep\";}s:1:\"E\";a:4:{s:4:\"type\";s:3:\"int\";s:4:\"size\";s:4:\"1,,6\";s:4:\"name\";s:2:\"f3\";s:4:\"help\";s:5:\"@help\";}}}','size' => ',,,,0','style' => '','modified' => '1032907904',);

View File

@ -1,285 +1,291 @@
%1 (%2 new) messages writen for application '%3' and languages '%4' etemplate de %1 (%2 neue) Texte für die Anwendung '%3' und die Sprache '%4' geschrieben
%1 etemplates deleted etemplate de %1 eTemplates gelöscht
%1 etemplates for application '%2' dumped to '%3' etemplate de %1 eTemplates für die Anwendung '%2' nach '%3' geschrieben
%1 etemplates found etemplate de %1 eTemplates gefunden
%1 matches on search criteria etemplate de %1 Treffer bei der Suche
%1 new etemplates imported for application '%2' etemplate de %1 neue eTemplates importiert für die Anwendung '%2'
%s disabled etemplate de %s deaktiviert
%s needed etemplate de %s benötigt
%s notranslation etemplate de %s nicht übersetzen
%s onchange etemplate de %s onChange
%s readonly etemplate de %s Schreibschutz
a pattern to be searched for etemplate de ein Muster nach dem gesucht werden soll
add a new column (after the existing ones) etemplate de Neue Spalte hinzufügen (hinter den bestehenden)
add a new multi-column index etemplate de Fügt einen mehrspaltigen Index hinzu
add column etemplate de Spalte zufügen
add index etemplate de Index zufügen
add table etemplate de Tabelle zufügen
align etemplate de Ausrichtung
alignment of label and input-field in table-cell etemplate de Ausrichtung der Beschriftung und des Eingabefeldes in der Tabellenzelle
alignment of the v/hbox containing table-cell etemplate de Ausrichtung der die V/HBox enthaltenden Tabellenzelle
am etemplate de Vormittag
an indexed column speeds up querys using that column (cost space on the disk !!!) etemplate de eine indizierte Spalte beschleunigt Anfragen die diese benutzen (kostet Plattenplatz !!!)
application etemplate de Anwendung
application name needed to write a langfile or dump the etemplates !!! etemplate de Name der Anwendung benötigt um eine Sprachdatei oder eTemplate-Distibutionsdate zu schreiben !!!
attach etemplate de Anhängen
attach file etemplate de Datei anhängen
blurtext etemplate de blurText
border etemplate de Rand
border-line-thickness for the table-tag etemplate de Randbreite (border) für die Tabelle
can not have special sql-value null etemplate de darf nicht den speziellen SQL Wert NULL annehmen
cancel etemplate de Abbruch
category etemplate de Kategorie
cellpadding for the table-tag etemplate de Innenabstand (cellpadding) der Tabelle
cells etemplate de Zellen
cellspacing for the table-tag etemplate de Zellenabstand (cellspacing) der Tabelle
center etemplate de Zentriert
check if content should only be displayed but not altered (the content is not send back then!) etemplate de abhaken wenn der Inhalt nur angezeigt aber nicht geändert werden soll (der Inhalt wird dann nicht zurückgesendet!)
check if field has to be filled by user etemplate de abhaken wenn das Eingabefeld vom Benutzer zwingend ausgefüllt werden muss
checkbox etemplate de Checkbox
class etemplate de Class
class, valign etemplate de Class, Valign
click here to attach the file etemplate de hier clicken um die Datei anzuhängen
click here to create the link etemplate de hier clicken um die Verknüpfung anzulegen
click here to start the search etemplate de hier clicken um die Suche zu starten
click here to upload the file etemplate de hier clicken um die Datei hochzuladen
click to order after that criteria etemplate de anclicken um nach diesem Kriterium zu sortieren
columnname etemplate de Spaltenname
comment etemplate de Kommentar
create a new table for the application etemplate de Neue Tabelle für die Anwendung anlegen
creates an english ('en') langfile from label and helptexts (for application in name) etemplate de erzeugt eine englische ('en') Sprachdatei aus den Beschriftungen und Hilfetexten (für die Anwendung in Name)
css class for the table-tag etemplate de CSS class der Tabelle
css-class name for this row, preset: 'nmh' = nextmatch header, 'nmr' = alternating nm row, 'nmr0'+'nmr1' nm rows etemplate de Name der CSS class dieser Zeile, vorbelegt sind: 'th' = Kopfzeile, 'row' = zeilenweise wechselnde Farbe bzw. 'row_on', 'row_off'
css-styles etemplate de CSS Stile
date+time etemplate de Datum+Uhrzeit
datum etemplate de Datum
day etemplate de Tag
db ensures that every row has a unique value in that column etemplate de die Datenbank stelt sicher das alle Zeilen einen einmaligen Wert in dieser Spalte haben
db-specific index options (comma-sep.), eg. mysql(fulltext) or mysql(100) for the indexed length of a col etemplate de DB-spezifische Index-Optionen (Komma-getrennt), zB. mysql(FULLTEXT) oder mysql(100) für die indizierte Länge der Spalte
db-tools etemplate de DB-Tools
deck etemplate de Deck (intern)
default etemplate de Vorgabe
delete etemplate de Löschen
delete a single entry by passing the id. etemplate de Löscht einen einzelnen Eintrag über seine Id.
delete all selected etemplates, without further inquiry etemplate de löscht ALLE ausgewählten eTemplates OHNE weitere Rückfrage
delete column etemplate de Spalte löschen
delete index etemplate de Index löschen
delete this etemplate etemplate de dieses eTemplate löschen
delete whole column (can not be undone!!!) etemplate de ganze Zeile löschen (kann NICHT rückgängig gemacht werden)
deletes the above spez. etemplate from the database, can not be undone etemplate de löscht das oben spezifiziert eTemplate aus der Datenbank, kann NICHT rückgängig gemacht werden
deletes the etemplate spez. above etemplate de löscht das oben spezifizierte eTemplate
deletes this column etemplate de Löscht diese Spalte
deletes this index etemplate de Löscht diesen Index
discard changes etemplate de verwirft Änderungen
displayed in front of input or input is inserted for a '%s' in the label (label of the submitbutton or image-filename) etemplate de wird vor dem Eingabefeld angezeigt oder das Feld wird für ein '%s' eingefügt (Beschriftung einer Schaltfläche oder Dateiname eine Grafik)
displayed in statusline of browser if input-field gets focus etemplate de wird in der Statuszeile des Browsers angezeit, wenn das Eingabefeld angesprochen wird
do you want to save the changes you made in table %s? etemplate de Wollen Sie die Änderungen in der Tabelle '%s' speichern?
documentation etemplate de Dokumentation
drop a table - this can not be undone etemplate de Tabelle löschen (drop) - NICHT rückgänig zu machen
drop table etemplate de Tabelle löschen
dump4setup etemplate de Dump4Setup
edit etemplate de Bearbeiten
edit the etemplate spez. above etemplate de das oben spezifizierte eTemplate bearbeiten
editable templates - db-tools etemplate de eTemplates - DB-Tools
editable templates - delete template etemplate de eTemplates - Löschen
editable templates - editor etemplate de eTemplates - Bearbeiten
editable templates - search etemplate de eTemplates - Suchen
editable templates - show template etemplate de eTemplates - Anzeigen
embeded css styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!) etemplate de eingebette CSS Stile, zb. '.red { background: red; }' (man beachte den '.' vor der CSS class) or '@import url(...)' (Angaben gelten für die gesamte Seite!)
enable javascript onchange submit etemplate de JavaScript absenden bei Änderung (onChange) aktivieren
enter '' for an empty default, nothing mean no default etemplate de '' für einen leeren Vorgabewert eingeben, nichts bedeutet keine Vorgabe
enter a search pattern etemplate de Suchmuster eingeben
enter filename to upload and attach, use [browse...] to search for it etemplate de Dateinamen zum Hochland oder Anhängen eingeben, [Browse ...] zum Suchen verwenden
enter the new version number here (> old_version), empty for no update-file etemplate de Neue Versionsnummer eingeben (größer als alte), leer wenn keine Update-Datei erzeugt werden soll
enter the new version number here (has to be > old_version) etemplate de Neue Versionsnummer eingeben (muss größer als die alte sein)
entry saved etemplate de Eintrag gespeichert
error: template not found !!! etemplate de Fehler: eTemplate nicht gefunden !!!
error: webserver is not allowed to write into '%1' !!! etemplate de Fehler: der Webserver hat keine Schreibberechtigung in '%1' !!!
error: while saveing !!! etemplate de Fehler: beim Speichern !!!
error: writeing !!! etemplate de Fehler: schreiben !!!
error: writing file (no write-permission for the webserver) !!! etemplate de Fehler: Datei schreiben (keine Schreibberechtigung für den Webserver) !!!
etemplate common de eTemplate
etemplate '%1' imported, use save to put it in the database etemplate de eTemplate '%1' importiert, benutze Speichern um es in der Datenbank abzulegen
etemplate '%1' written to '%2' etemplate de eTemplate '%1' wurde nach '%2' geschrieben
etemplate editor etemplate de eTemplate Editor
etemplate referenz etemplate de eTemplate Handbuch
etemplate tutorial etemplate de eTemplate Einführung
exchange this row with the one above etemplate de diese Zeile mit der darüber austauschen
exchange this two columns etemplate de diese beiden Spalten austauschen
export the loaded etemplate into a xml-file etemplate de das geladene eTemplate als XML Datei (.xet) exportieren
export xml etemplate de XML Export
extensions loaded: etemplate de Erweiterungen geladen:
file etemplate de Datei
file contains more than one etemplate, last one is shown !!! etemplate de Datei enthält mehr als ein eTemplate, das letzte wird angezeigt !!!
file writen etemplate de Datei geschrieben
fileupload etemplate de DateiUpload
first etemplate de Zuerst
floating point etemplate de Gleitkommawert
foreign key etemplate de Foreign Key
formatted text (html) etemplate de Formatierter Text (HTML)
go to the first entry etemplate de gehe zum ersten Eintrag
go to the last entry etemplate de gege zum letzten Eintrag
go to the next page of entries etemplate de gehe zur nächsten Seite
go to the previous page of entries etemplate de gehe zur vorherigen Seite
hbox etemplate de HBox
height etemplate de Höhe
height of row (in % or pixel), disable row: [! = not]<value>[=<check>] eg: '!@data' disable row if content of data is empty etemplate de Höhe der Zeile (in % oder Pixel), Zeile ausschalten: [! = nicht]<wert>=[<prüfung>]: eg. '!@data' schaltet Zeile aus, wenn Inhalt von data leer ist
height of the table in % or pixels for the table-tag and (optional) div etemplate de Höhe der Tabelle in % oder Punkten
height, disabled etemplate de Höhe, Deaktiviert
help etemplate de Hilfe
horizontal rule etemplate de Waagrechte Linie
hour etemplate de Stunde
html etemplate de HTML
if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell etemplate de wenn eine Feld deaktiviert ist, wird eine leere Tabellenzelle angezeigt, zum (zeitweisen) Entfernen eines Feldes
image etemplate de Grafik
import etemplate de Import
import an etemplate from a xml-file etemplate de Importiert ein eTemplate aus einer XML Datei
import table-definitions from existing db-table etemplate de Importiert die Tabellen-Definition aus einer bestehenden Datenbank-Tabelle
import xml etemplate de XML Import
index/name of returned content (name of the template, link / method for image) etemplate de Index / Name des zurückgelieferten Inhalts (Name des eTemplates oder Link/Methode für Grafik)
indexed etemplate de Indiziert
indexoptions etemplate de Indexoptionen
insert new column behind this one etemplate de Neue Spalte hinter dieser einfügen
insert new column in front of all etemplate de Neue Spalte vor dieser einfüben
insert new row after this one etemplate de Neue Zeile nach dieser einfügen
insert new row in front of first line etemplate de Neue Zeile vor dieser einfügen
integer etemplate de Ganzzahl
key etemplate de Schlüssel
label etemplate de Beschriftung
label:[bold][italic] text:[len][,max] numbers:[min][,[max][,len]] t.area:[rows][,cols] radiob.:value h.rule:[width] templ.:[indexincontent] select:[multiselect] date:[values: eg. 'y-m-d'] etemplate de Beschriftung:[bold][italic] Text:[len][,max] Zahlen:[min][,[max][,len]] mehrz.Text:[Zeilen][,Spalten] Radiok.:Wert Templ.:[IndexInContent] Auswahl:[mehrzeilig] Datum:[Format: zB. 'Y-m-d']
lang etemplate de Sprache
language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default' to read the default template '') etemplate de Kürzel der Sprache (zb. 'en' für Englisch) für sprachabhänige Template ('' ließt die bevorzugte Sprache, benutze 'default' für das standard Template '')
last etemplate de Letzte
left etemplate de Links
length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8 etemplate de Länge für char+varchar, Genauigkeit für int: 2, 4, 8 und float: 4, 8
link etemplate de Verknüpfung
linklist etemplate de VerknüpfungListe
linkstring etemplate de VerküpfungZeichenkette
linkto etemplate de VerküpfungZu
load this template into the editor etemplate de lädt diese Template zum Bearbeiten
minute etemplate de Minute
month etemplate de Monat
multicolumn indices etemplate de Mehrspaltige Indices
name etemplate de Name
name of other table where column is a key from etemplate de Name der anderen Tabelle von der diese Spalte ein Schlüssel ist
name of phpgw-template set (e.g. verdilak): '' = default (will read pref. template, us 'default' to read default template '') etemplate de Name des phpGW layouts (zb. verdilak): '' = Standard (ließt das bevorzugte Layout, benutze 'default' um das standard Layout '' zu lesen)
name of table to add etemplate de Name der zuzufügenden Tabelle
name of the etemplate, should be in form application.function[.subtemplate] etemplate de Name des eTemplate, in der Form anwendung.funktion[.subTemplate]
need to be unique in the table and no reseved word from sql, best prefix all with a common 2-digit short for the app, eg. 'et_' etemplate de muss für die Tabelle einmalig sein und darf ein reserviertes Wort von SQL sein, am besten alle mit einem gemeinsammen Kürzel der Anwendung beginnen: zb. 'et_'
new search etemplate de Neue Suche
new table created etemplate de Neue Tabelle erzeugt
newer version '%1' exists !!! etemplate de Neuere Version '%1' existiert !!!
nextmatch etemplate de Nextmatch
nextmatch filterheader etemplate de Nextmatch Filterkopf
nextmatch sortheader etemplate de Nextmatch Sortierkopf
no file etemplate de keine Datei
no filename given or selected via browse... etemplate de kein Dateiname angegeben oder mit [Browse...] ausgewählt
not null etemplate de NOT NULL
nothing found - try again !!! etemplate de Nichts gefunden - nochmal versuchen !!!
nothing matched search criteria !!! etemplate de Nicht gefunden bei diesem Suchkriterium !!!
number of colums the field/cell should span or 'all' for the remaining columns, css-class name (for the td tag) etemplate de Anzahl der Spalten die ein Feld überspannt oder 'all' für die übrigen Spalten, CSS class Name (für das TD-tag)
number of rows/cols in a v/hbox, cellpadding, cellspacing etemplate de Anzahl Zeilen/Spalten der V/HBox, Innenabstand (Cellpadding), Zellenabstand (Cellspacing)
of etemplate de von
only an other version found !!! etemplate de nur eine andere Version gefunden !!!
optional note about the link etemplate de optionale Notiz zur Verknüpfung
options etemplate de Optionen
overflow etemplate de Überbreite
padding etemplate de Innenabstand
please enter table-name first !!! etemplate de Bitte geben Sie zuerst einen Tabellennamen an !!!
pm etemplate de Nachmittag
precision etemplate de Genauigkeit
primary key etemplate de Primary Key
primary key for the table, gets automaticaly indexed etemplate de Hauptindex (Primary Key) der Tabelle, wird automatisch indiziert
radiobutton etemplate de Radioknopf
read etemplate de Lesen
read a list of entries. etemplate de Liest eine Liste von Einträgen.
read a single entry by passing the id and fieldlist. etemplate de Liste einen einzelnen Eintrag durch übergabe seiner Id und Feldliste.
read etemplate from database (for the keys above) etemplate de ließt ein eTemplate aus der Datenbank (für die Schlüssel darüber)
remove row (can not be undone!!!) etemplate de löscht eine Zeile (NICHT rückgängig zu machen)
remove this link (not the entry itself) etemplate de entfernt diese Verknüpfung (nicht den Eintrag selbst)
returns savely, without deleting etemplate de Abbruch, OHNE zu löschen
right etemplate de Rechts
save etemplate de Speichern
save the etemplate under the above keys (name, ...), change them for a saveas etemplate de Speichert das eTemplate unter den obigen Schlüsseln (name, ...), ändern für ein Speichern unter
saves changes to tables_current.inc.php etemplate de Speichert Änderungen in tables_current.inc.php
scale etemplate de Scale
scale for float etemplate de Nachkommastellen für Gleitkommawerte
search etemplate de Suchen
select a category etemplate de eine Kategorie auswählen
select a primary contact, to show in the list etemplate de einen Hauptkontakt auswählen, der in der Auflistung mit angezeigt wird
select access etemplate de Zugriff auswählen
select account etemplate de Benutzer auswählen
select an app first !!! etemplate de Bitte wählen Sie zuerst ein Anwendung aus !!!
select an app to search in etemplate de Anwendung zum Durchsuchen auswählen
select an application etemplate de Anwendung auswählen
select an application, (*) = uninstalled etemplate de Anwendung auswählen, (*) = nicht installiert
select an entry to link with etemplate de Eintrag zum Verküpfen auswählen
select an table of the application etemplate de Tabelle der Anwendung auswählen
select application etemplate de Anwendung auswählen
select category etemplate de Kategorie auswählen
select country etemplate de Land auswählen
select day etemplate de Tag auswählen
select if content of field should not be translated (label gets always translated) etemplate de abhaken wenn Inhalt des Feldes nicht übersetzt werden soll (Beschriftung wird immer übersetzt)
select month etemplate de Monat auswählen
select number etemplate de Zahl auswählen
select one ... etemplate de Eine auswählen ...
select percentage etemplate de Prozente auswählen
select priority etemplate de Priorität auswählen
select state etemplate de US-State auswählen
select the indexed columns in their desired order etemplate de Zu indizierende Spalten in der gewünchten Reihenfolge auswählen
select this etemplate to delete it etemplate de dieses eTemplate zum Löschen auswählen
select which values to show etemplate de auswählen welche Werte angezeigt werden
select year etemplate de Jahr auswählen
selectbox etemplate de Auswahlbox
sets today as date etemplate de setzt heutiges Datum
show etemplate de Anzeigen
show (no save) etemplate de Anzeigen (nicht speichern)
show values etemplate de Werte anzeigen
showing etemplate de zeigt
shows / allows you to enter values into the etemplate for testing etemplate de zeigt den Inhalt / Werte an und erlaubt welche zum Testen des eTemplates einzugeben
shows/displays etemplate for testing, does not save it before etemplate de zeigt eTemplate zum Testen an, speichert es NICHT davor
spacing etemplate de Zellenabstand
span, class etemplate de Span, Class
stack etemplate de Stapel
start a new search, cancel this link etemplate de neue Suche Starten, diese Verknüpfung abbrechen
start new search for the above pattern etemplate de neue Suche für das obige Muster starten
submitbutton etemplate de Schaltfläche
table unchanged, no write necessary !!! etemplate de Tabelle nicht geändert, kein schreiben notwendig !!!
tablename etemplate de Tabellenname
tabs etemplate de Karteikarten
template etemplate de Template
template deleted etemplate de Template gelöscht
template saved etemplate de Template gespeichert
text etemplate de Textfeld
textarea etemplate de mehrzeiliges Textfeld
this text gets displayed if the input-field is empty and has no focus (blur) etemplate de dieser Text wird im Eingabefeld angezeigt, wenn es leer ist und nicht im Fokus ist (engl. blur)
time etemplate de Uhrzeit
to start the db-tools etemplate de startet die DB-Tools
to start the etemplate editor etemplate de startet den eTemplate Editor
to start the search etemplate de startet die Suche
today etemplate de Heute
type etemplate de Typ
type of the column etemplate de Typ der Spalte
type of the field (select label if field should be empty) etemplate de Type des Feldes (Beschriftung auswählen wenn Feld leer sein soll)
unique etemplate de Unique
unlink etemplate de Lösen
update a single entry by passing the fields. etemplate de Aktualisert einen einzelnen Eintrag über seine Felder.
update from version '%s' to etemplate de Update von Version '%s' auf
upload etemplate de Hochladen
value etemplate de Wert
vbox etemplate de VBox
version etemplate de Version
version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros) etemplate de Versionsnummer, in der Form major.minor.revision.number (zB. 0.9.15.001 alle Zahlen mit Nullen aufgefüllt)
view this linked entry in its application etemplate de Zeige diesen Eintrag in seiner Anwendung an
what happens with overflowing content: visible (default), hidden, scroll, auto (browser decides) etemplate de was passiert mit überbreitem Inhalt: sichtbar (standard), versteckt, rollend, automatich (der Browser entscheidet)
width etemplate de Breite
width of col (in % or pixel), disable col: [! = not]<value>[=<check>] eg: '!@data' disable col if content of data is empty etemplate de Breite der Spalte (in % oder Punkten), deaktiviert Spalten: [! = nicht]<wert>[=<test>] zB.: '!@data' deaktiviert Spalte wenn data leer ist
width of the table in % or pixels for the table-tag and (optional) div etemplate de Breite der Tabelle in % oder Punkten
width, disabled etemplate de Breite, Deaktiviert
write <app>/setup/tables_current.inc.php etemplate de schreibt <app>/setup/tables_current.inc.php
write langfile etemplate de Sprachdatei
write tables etemplate de Tabelle Schreiben
writes a 'etemplates.inc.php' file (for application in name) in the setup-dir of the app etemplate de schreibt ein Distributionsfile 'etemplates.inc.php' (für die Anwendung in Name) in das setup Verzeichnis der Anwendung
xml-file to import etemplate de XML Datei zum Importieren
xslt template etemplate de XSLT Template
year etemplate de Jahr
%1 (%2 new) messages writen for application '%3' and languages '%4' de %1 (%2 neue) Texte für die Anwendung '%3' und die Sprache '%4' geschrieben
%1 etemplates deleted de %1 eTemplates gelöscht
%1 etemplates for application '%2' dumped to '%3' de %1 eTemplates für die Anwendung '%2' nach '%3' geschrieben
%1 etemplates found de %1 eTemplates gefunden
%1 matches on search criteria de %1 Treffer bei der Suche
%1 new etemplates imported for application '%2' de %1 neue eTemplates importiert für die Anwendung '%2'
%s disabled de %s deaktiviert
%s needed de %s benötigt
%s notranslation de %s nicht übersetzen
%s onchange de %s onChange
%s readonly de %s Schreibschutz
'%1' has an invalid format !!! etemplate de '%1' hat ein ungültiges Format !!!
'%1' is not a valid floatingpoint number !!! etemplate de '%1' ist keine gültige Kommazahl !!!
'%1' is not a valid integer !!! etemplate de '%1' ist keine gültige Ganzzahl !!!
a pattern to be searched for de ein Muster nach dem gesucht werden soll
add a new column (after the existing ones) de Neue Spalte hinzufügen (hinter den bestehenden)
add a new multi-column index de Fügt einen mehrspaltigen Index hinzu
add column de Spalte zufügen
add index de Index zufügen
add table de Tabelle zufügen
align de Ausrichtung
alignment of label and input-field in table-cell de Ausrichtung der Beschriftung und des Eingabefeldes in der Tabellenzelle
alignment of the v/hbox containing table-cell de Ausrichtung der die V/HBox enthaltenden Tabellenzelle
am de Vormittag
an indexed column speeds up querys using that column (cost space on the disk !!!) de eine indizierte Spalte beschleunigt Anfragen die diese benutzen (kostet Plattenplatz !!!)
application de Anwendung
application name needed to write a langfile or dump the etemplates !!! de Name der Anwendung benötigt um eine Sprachdatei oder eTemplate-Distibutionsdate zu schreiben !!!
attach de Anhängen
attach file de Datei anhängen
blurtext de blurText
border de Rand
border-line-thickness for the table-tag de Randbreite (border) für die Tabelle
can not have special sql-value null de darf nicht den speziellen SQL Wert NULL annehmen
cancel de Abbruch
category de Kategorie
cellpadding for the table-tag de Innenabstand (cellpadding) der Tabelle
cells de Zellen
cellspacing for the table-tag de Zellenabstand (cellspacing) der Tabelle
center de Zentriert
check if content should only be displayed but not altered (the content is not send back then!) de abhaken wenn der Inhalt nur angezeigt aber nicht geändert werden soll (der Inhalt wird dann nicht zurückgesendet!)
check if field has to be filled by user de abhaken wenn das Eingabefeld vom Benutzer zwingend ausgefüllt werden muss
checkbox de Checkbox
class de Class
class, valign de Class, Valign
click here to attach the file de hier clicken um die Datei anzuhängen
click here to create the link de hier clicken um die Verknüpfung anzulegen
click here to start the search de hier clicken um die Suche zu starten
click here to upload the file de hier clicken um die Datei hochzuladen
click to order after that criteria de anclicken um nach diesem Kriterium zu sortieren
columnname de Spaltenname
comment de Kommentar
create a new table for the application de Neue Tabelle für die Anwendung anlegen
creates an english ('en') langfile from label and helptexts (for application in name) de erzeugt eine englische ('en') Sprachdatei aus den Beschriftungen und Hilfetexten (für die Anwendung in Name)
css class for the table-tag de CSS class der Tabelle
css-class name for this row, preset: 'nmh' = nextmatch header, 'nmr' = alternating nm row, 'nmr0'+'nmr1' nm rows de Name der CSS class dieser Zeile, vorbelegt sind: 'th' = Kopfzeile, 'row' = zeilenweise wechselnde Farbe bzw. 'row_on', 'row_off'
css-styles de CSS Stile
date+time de Datum+Uhrzeit
datum de Datum
day de Tag
db ensures that every row has a unique value in that column de die Datenbank stelt sicher das alle Zeilen einen einmaligen Wert in dieser Spalte haben
db-specific index options (comma-sep.), eg. mysql(fulltext) or mysql(100) for the indexed length of a col de DB-spezifische Index-Optionen (Komma-getrennt), zB. mysql(FULLTEXT) oder mysql(100) für die indizierte Länge der Spalte
db-tools de DB-Tools
deck de Deck (intern)
default de Vorgabe
delete de Löschen
delete a single entry by passing the id. de Löscht einen einzelnen Eintrag über seine Id.
delete all selected etemplates, without further inquiry de löscht ALLE ausgewählten eTemplates OHNE weitere Rückfrage
delete column de Spalte löschen
delete index de Index löschen
delete this etemplate de dieses eTemplate löschen
delete whole column (can not be undone!!!) de ganze Zeile löschen (kann NICHT rückgängig gemacht werden)
deletes the above spez. etemplate from the database, can not be undone de löscht das oben spezifiziert eTemplate aus der Datenbank, kann NICHT rückgängig gemacht werden
deletes the etemplate spez. above de löscht das oben spezifizierte eTemplate
deletes this column de Löscht diese Spalte
deletes this index de Löscht diesen Index
discard changes de verwirft Änderungen
displayed in front of input or input is inserted for a '%s' in the label (label of the submitbutton or image-filename) de wird vor dem Eingabefeld angezeigt oder das Feld wird für ein '%s' eingefügt (Beschriftung einer Schaltfläche oder Dateiname eine Grafik)
displayed in statusline of browser if input-field gets focus de wird in der Statuszeile des Browsers angezeit, wenn das Eingabefeld angesprochen wird
do you want to save the changes you made in table %s? de Wollen Sie die Änderungen in der Tabelle '%s' speichern?
documentation de Dokumentation
drop a table - this can not be undone de Tabelle löschen (drop) - NICHT rückgänig zu machen
drop table de Tabelle löschen
dump4setup de Dump4Setup
edit de Bearbeiten
edit the etemplate spez. above de das oben spezifizierte eTemplate bearbeiten
editable templates - db-tools de eTemplates - DB-Tools
editable templates - delete template de eTemplates - Löschen
editable templates - editor de eTemplates - Bearbeiten
editable templates - search de eTemplates - Suchen
editable templates - show template de eTemplates - Anzeigen
embeded css styles, eg. '.red { background: red; }' (note the '.' before the class-name) or '@import url(...)' (class names are global for the whole page!) de eingebette CSS Stile, zb. '.red { background: red; }' (man beachte den '.' vor der CSS class) or '@import url(...)' (Angaben gelten für die gesamte Seite!)
enable javascript onchange submit de JavaScript absenden bei Änderung (onChange) aktivieren
enter '' for an empty default, nothing mean no default de '' für einen leeren Vorgabewert eingeben, nichts bedeutet keine Vorgabe
enter a search pattern de Suchmuster eingeben
enter filename to upload and attach, use [browse...] to search for it de Dateinamen zum Hochland oder Anhängen eingeben, [Browse ...] zum Suchen verwenden
enter the new version number here (> old_version), empty for no update-file de Neue Versionsnummer eingeben (größer als alte), leer wenn keine Update-Datei erzeugt werden soll
enter the new version number here (has to be > old_version) de Neue Versionsnummer eingeben (muss größer als die alte sein)
entry saved de Eintrag gespeichert
error: template not found !!! de Fehler: eTemplate nicht gefunden !!!
error: webserver is not allowed to write into '%1' !!! de Fehler: der Webserver hat keine Schreibberechtigung in '%1' !!!
error: while saveing !!! de Fehler: beim Speichern !!!
error: writeing !!! de Fehler: schreiben !!!
error: writing file (no write-permission for the webserver) !!! de Fehler: Datei schreiben (keine Schreibberechtigung für den Webserver) !!!
etemplate de eTemplate
etemplate '%1' imported, use save to put it in the database de eTemplate '%1' importiert, benutze Speichern um es in der Datenbank abzulegen
etemplate '%1' written to '%2' de eTemplate '%1' wurde nach '%2' geschrieben
etemplate editor de eTemplate Editor
etemplate referenz de eTemplate Handbuch
etemplate tutorial de eTemplate Einführung
exchange this row with the one above de diese Zeile mit der darüber austauschen
exchange this two columns de diese beiden Spalten austauschen
export the loaded etemplate into a xml-file de das geladene eTemplate als XML Datei (.xet) exportieren
export xml de XML Export
extensions loaded: de Erweiterungen geladen:
field must not be empty !!! etemplate de Das Feld darf nicht leer sein !!!
file de Datei
file contains more than one etemplate, last one is shown !!! de Datei enthält mehr als ein eTemplate, das letzte wird angezeigt !!!
file writen de Datei geschrieben
fileupload de DateiUpload
first de Zuerst
floating point de Gleitkommawert
foreign key de Foreign Key
formatted text (html) de Formatierter Text (HTML)
go to the first entry de gehe zum ersten Eintrag
go to the last entry de gege zum letzten Eintrag
go to the next page of entries de gehe zur nächsten Seite
go to the previous page of entries de gehe zur vorherigen Seite
hbox de HBox
height de Höhe
height of row (in % or pixel), disable row: [! = not]<value>[=<check>] eg: '!@data' disable row if content of data is empty de Höhe der Zeile (in % oder Pixel), Zeile ausschalten: [! = nicht]<wert>=[<prüfung>]: eg. '!@data' schaltet Zeile aus, wenn Inhalt von data leer ist
height of the table in % or pixels for the table-tag and (optional) div de Höhe der Tabelle in % oder Punkten
height, disabled de Höhe, Deaktiviert
help de Hilfe
horizontal rule de Waagrechte Linie
hour de Stunde
html de HTML
if field is disabled an empty table-cell is displayed, for (temporal) removement of a field/cell de wenn eine Feld deaktiviert ist, wird eine leere Tabellenzelle angezeigt, zum (zeitweisen) Entfernen eines Feldes
image de Grafik
import de Import
import an etemplate from a xml-file de Importiert ein eTemplate aus einer XML Datei
import table-definitions from existing db-table de Importiert die Tabellen-Definition aus einer bestehenden Datenbank-Tabelle
import xml de XML Import
index/name of returned content (name of the template, link / method for image) de Index / Name des zurückgelieferten Inhalts (Name des eTemplates oder Link/Methode für Grafik)
indexed de Indiziert
indexoptions de Indexoptionen
insert new column behind this one de Neue Spalte hinter dieser einfügen
insert new column in front of all de Neue Spalte vor dieser einfüben
insert new row after this one de Neue Zeile nach dieser einfügen
insert new row in front of first line de Neue Zeile vor dieser einfügen
integer de Ganzzahl
key de Schlüssel
label de Beschriftung
label:[bold][italic] text:[len][,max] numbers:[min][,[max][,len]] t.area:[rows][,cols] radiob.:value h.rule:[width] templ.:[indexincontent] select:[multiselect] date:[values: eg. 'y-m-d'] de Beschriftung:[bold][italic] Text:[len][,max] Zahlen:[min][,[max][,len]] mehrz.Text:[Zeilen][,Spalten] Radiok.:Wert Templ.:[IndexInContent] Auswahl:[mehrzeilig] Datum:[Format: zB. 'Y-m-d']
lang de Sprache
language-short (eg. 'en' for english) for language-dependent template ('' reads your pref. languages or the default, us 'default' to read the default template '') de Kürzel der Sprache (zb. 'en' für Englisch) für sprachabhänige Template ('' ließt die bevorzugte Sprache, benutze 'default' für das standard Template '')
last de Letzte
left de Links
length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8 de Länge für char+varchar, Genauigkeit für int: 2, 4, 8 und float: 4, 8
link de Verknüpfung
linklist de VerknüpfungListe
linkstring de VerküpfungZeichenkette
linkto de VerküpfungZu
load this template into the editor de lädt diese Template zum Bearbeiten
minute de Minute
month de Monat
multicolumn indices de Mehrspaltige Indices
name de Name
name of other table where column is a key from de Name der anderen Tabelle von der diese Spalte ein Schlüssel ist
name of phpgw-template set (e.g. verdilak): '' = default (will read pref. template, us 'default' to read default template '') de Name des phpGW layouts (zb. verdilak): '' = Standard (ließt das bevorzugte Layout, benutze 'default' um das standard Layout '' zu lesen)
name of table to add de Name der zuzufügenden Tabelle
name of the etemplate, should be in form application.function[.subtemplate] de Name des eTemplate, in der Form anwendung.funktion[.subTemplate]
need to be unique in the table and no reseved word from sql, best prefix all with a common 2-digit short for the app, eg. 'et_' de muss für die Tabelle einmalig sein und darf ein reserviertes Wort von SQL sein, am besten alle mit einem gemeinsammen Kürzel der Anwendung beginnen: zb. 'et_'
new search de Neue Suche
new table created de Neue Tabelle erzeugt
newer version '%1' exists !!! de Neuere Version '%1' existiert !!!
nextmatch de Nextmatch
nextmatch filterheader de Nextmatch Filterkopf
nextmatch sortheader de Nextmatch Sortierkopf
no file de keine Datei
no filename given or selected via browse... de kein Dateiname angegeben oder mit [Browse...] ausgewählt
not null de NOT NULL
nothing found - try again !!! de Nichts gefunden - nochmal versuchen !!!
nothing matched search criteria !!! de Nicht gefunden bei diesem Suchkriterium !!!
number of colums the field/cell should span or 'all' for the remaining columns, css-class name (for the td tag) de Anzahl der Spalten die ein Feld überspannt oder 'all' für die übrigen Spalten, CSS class Name (für das TD-tag)
number of rows/cols in a v/hbox, cellpadding, cellspacing de Anzahl Zeilen/Spalten der V/HBox, Innenabstand (Cellpadding), Zellenabstand (Cellspacing)
of de von
only an other version found !!! de nur eine andere Version gefunden !!!
optional note about the link de optionale Notiz zur Verknüpfung
options de Optionen
overflow de Überbreite
padding de Innenabstand
please enter table-name first !!! de Bitte geben Sie zuerst einen Tabellennamen an !!!
pm de Nachmittag
precision de Genauigkeit
primary key de Primary Key
primary key for the table, gets automaticaly indexed de Hauptindex (Primary Key) der Tabelle, wird automatisch indiziert
radiobutton de Radioknopf
read de Lesen
read a list of entries. de Liest eine Liste von Einträgen.
read a single entry by passing the id and fieldlist. de Liste einen einzelnen Eintrag durch übergabe seiner Id und Feldliste.
read etemplate from database (for the keys above) de ließt ein eTemplate aus der Datenbank (für die Schlüssel darüber)
remove row (can not be undone!!!) de löscht eine Zeile (NICHT rückgängig zu machen)
remove this link (not the entry itself) de entfernt diese Verknüpfung (nicht den Eintrag selbst)
returns savely, without deleting de Abbruch, OHNE zu löschen
right de Rechts
save de Speichern
save the etemplate under the above keys (name, ...), change them for a saveas de Speichert das eTemplate unter den obigen Schlüsseln (name, ...), ändern für ein Speichern unter
saves changes to tables_current.inc.php de Speichert Änderungen in tables_current.inc.php
scale de Scale
scale for float de Nachkommastellen für Gleitkommawerte
search de Suchen
select a category de eine Kategorie auswählen
select a primary contact, to show in the list de einen Hauptkontakt auswählen, der in der Auflistung mit angezeigt wird
select access de Zugriff auswählen
select account de Benutzer auswählen
select an app first !!! de Bitte wählen Sie zuerst ein Anwendung aus !!!
select an app to search in de Anwendung zum Durchsuchen auswählen
select an application de Anwendung auswählen
select an application, (*) = uninstalled de Anwendung auswählen, (*) = nicht installiert
select an entry to link with de Eintrag zum Verküpfen auswählen
select an table of the application de Tabelle der Anwendung auswählen
select application de Anwendung auswählen
select category de Kategorie auswählen
select country de Land auswählen
select day de Tag auswählen
select if content of field should not be translated (label gets always translated) de abhaken wenn Inhalt des Feldes nicht übersetzt werden soll (Beschriftung wird immer übersetzt)
select month de Monat auswählen
select number de Zahl auswählen
select one ... de Eine auswählen ...
select percentage de Prozente auswählen
select priority de Priorität auswählen
select state de US-State auswählen
select the indexed columns in their desired order de Zu indizierende Spalten in der gewünchten Reihenfolge auswählen
select this etemplate to delete it de dieses eTemplate zum Löschen auswählen
select which values to show de auswählen welche Werte angezeigt werden
select year de Jahr auswählen
selectbox de Auswahlbox
sets today as date de setzt heutiges Datum
show de Anzeigen
show (no save) de Anzeigen (nicht speichern)
show values de Werte anzeigen
showing de zeigt
shows / allows you to enter values into the etemplate for testing de zeigt den Inhalt / Werte an und erlaubt welche zum Testen des eTemplates einzugeben
shows/displays etemplate for testing, does not save it before de zeigt eTemplate zum Testen an, speichert es NICHT davor
spacing de Zellenabstand
span, class de Span, Class
stack de Stapel
start a new search, cancel this link de neue Suche Starten, diese Verknüpfung abbrechen
start new search for the above pattern de neue Suche für das obige Muster starten
submitbutton de Schaltfläche
table unchanged, no write necessary !!! de Tabelle nicht geändert, kein schreiben notwendig !!!
tablename de Tabellenname
tabs de Karteikarten
template de Template
template deleted de Template gelöscht
template saved de Template gespeichert
text de Textfeld
textarea de mehrzeiliges Textfeld
this text gets displayed if the input-field is empty and has no focus (blur) de dieser Text wird im Eingabefeld angezeigt, wenn es leer ist und nicht im Fokus ist (engl. blur)
time de Uhrzeit
to start the db-tools de startet die DB-Tools
to start the etemplate editor de startet den eTemplate Editor
to start the search de startet die Suche
today de Heute
type de Typ
type of the column de Typ der Spalte
type of the field (select label if field should be empty) de Type des Feldes (Beschriftung auswählen wenn Feld leer sein soll)
unique de Unique
unlink de Lösen
update a single entry by passing the fields. de Aktualisert einen einzelnen Eintrag über seine Felder.
update from version '%s' to de Update von Version '%s' auf
upload de Hochladen
value de Wert
value has to be at least '%1' !!! etemplate de Der Wert muss mindestens '%1' betragen !!!
value has to be at maximum '%1' !!! etemplate de Der Wert darf höchstens '%1' betragen !!!
vbox de VBox
version de Version
version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros) de Versionsnummer, in der Form major.minor.revision.number (zB. 0.9.15.001 alle Zahlen mit Nullen aufgefüllt)
view this linked entry in its application de Zeige diesen Eintrag in seiner Anwendung an
what happens with overflowing content: visible (default), hidden, scroll, auto (browser decides) de was passiert mit überbreitem Inhalt: sichtbar (standard), versteckt, rollend, automatich (der Browser entscheidet)
width de Breite
width of col (in % or pixel), disable col: [! = not]<value>[=<check>] eg: '!@data' disable col if content of data is empty de Breite der Spalte (in % oder Punkten), deaktiviert Spalten: [! = nicht]<wert>[=<test>] zB.: '!@data' deaktiviert Spalte wenn data leer ist
width of the table in % or pixels for the table-tag and (optional) div de Breite der Tabelle in % oder Punkten
width, disabled de Breite, Deaktiviert
write <app>/setup/tables_current.inc.php de schreibt <app>/setup/tables_current.inc.php
write langfile de Sprachdatei
write tables de Tabelle Schreiben
writes a 'etemplates.inc.php' file (for application in name) in the setup-dir of the app de schreibt ein Distributionsfile 'etemplates.inc.php' (für die Anwendung in Name) in das setup Verzeichnis der Anwendung
xml-file to import de XML Datei zum Importieren
xslt template de XSLT Template
year de Jahr

View File

@ -9,6 +9,9 @@
%s notranslation en %s NoTranslation
%s onchange en %s onChange
%s readonly en %s readonly
'%1' has an invalid format !!! etemplate en '%1' has an invalid format !!!
'%1' is not a valid floatingpoint number !!! etemplate en '%1' is not a valid floatingpoint number !!!
'%1' is not a valid integer !!! etemplate en '%1' is not a valid integer !!!
a pattern to be searched for en a pattern to be searched for
add a new column (after the existing ones) en Add a new column (after the existing ones)
add a new multi-column index en Add a new multi-column index
@ -109,6 +112,7 @@ exchange this two columns en exchange this two columns
export the loaded etemplate into a xml-file en export the loaded eTemplate into a xml-file
export xml en Export XML
extensions loaded: en Extensions loaded:
field must not be empty !!! etemplate en Field must not be empty !!!
file en File
file contains more than one etemplate, last one is shown !!! en File contains more than one eTemplate, last one is shown !!!
file writen en File writen
@ -267,6 +271,8 @@ update a single entry by passing the fields. en Update a single entry by passin
update from version '%s' to en Update from Version '%s' to
upload en Upload
value en Value
value has to be at least '%1' !!! etemplate en Value has to be at least '%1' !!!
value has to be at maximum '%1' !!! etemplate en Value has to be at maximum '%1' !!!
vbox en VBox
version en Version
version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros) en version-number, should be in the form: major.minor.revision.number (eg. 0.9.13.001 all numbers filled up with zeros)

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<grid id="etemplate.validation-test" template="" lang="" group="" version="" border="0" spacing="0" padding="0">
<columns>
<column/>
</columns>
<rows>
<row>
<textbox size="10" maxlength="10" validator="/^[A-Z]+/" label="Text (&lt;= 10 chars, has to start with capital letter)" id="text"/>
</row>
<row>
<int options="-15,5" label="Integer (-15 &lt;= x &lt;= 5)" id="integer" needed="1"/>
</row>
<row>
<textbox type="float" min="-1.5" max="3.5" label="Floatingpoint (-1.5 &lt;= x &lt;= 3.5)" id="float"/>
</row>
<row>
<hbox>
<button label="Save" id="save"/>
<button label="Cancel" id="cancel"/>
</hbox>
</row>
</rows>
</grid>
</overlay>