Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 296b4f44

Von Moritz Bunkus vor fast 18 Jahren hinzugefügt

  • ID 296b4f44a5ba0b3d3a172c8de4c884b34737a33d
  • Vorgänger a6199e53
  • Nachfolger 86f876b6

Einige Funktionen in admin.pl auf die Verwendung von HTML-Vorlagen umgestellt.

Unterschiede anzeigen:

bin/mozilla/admin.pl
$form->{title} =
qq|Lx-Office ERP $form->{version} | . $locale->text('Administration');
$form->header;
print qq|
<body class=admin>
$form->header();
print $form->parse_html_template('admin/adminlogin');
}
<div align=center>
sub login {
list_users();
}
<a href="http://www.lx-office.org"><img src="image/lx-office-erp.png" border=0></a>
<h1 class=login>|
. $locale->text('Version')
. qq| $form->{version}<p>|
. $locale->text('Administration')
. qq|</h1>
sub list_users {
<form method=post action="$form->{script}">
$form->error($locale->text('File locked!')) if (-f "${memberfile}.LCK");
<table>
<tr>
<th>| . $locale->text('Password') . qq|</th>
<td><input type=password name=rpw></td>
<td><input type=submit class=submit name=action value="|
. $locale->text('Login') . qq|"></td>
</tr>
<input type=hidden name=action value=login>
</table>
open(FH, "$memberfile") or $form->error("$memberfile : $!");
my %members;
</form>
while (<FH>) {
chomp;
<a href=http://www.lx-office.org>Lx-Office |
. $locale->text('website') . qq|</a>
if (/^\[.*\]/) {
$login = $_;
$login =~ s/(\[|\])//g;
</div>
$members{$login} = { "login" => $login };
}
</body>
</html>
|;
if (/^([a-z]+)=(.*)/) {
$members{$login}->{$1} = $2;
}
}
}
close(FH);
sub login {
delete $members{"root login"};
map { $_->{templates} =~ s|.*/||; } values %members;
&list_users;
$form->{title} = "Lx-Office ERP " . $locale->text('Administration');
$form->{LOCKED} = -e "$userspath/nologin";
$form->{MEMBERS} = [ @members{sort { lc $a cmp lc $b } keys %members} ];
$form->header();
print $form->parse_html_template("admin/list_users");
}
sub add_user {
......
if (-f "css/lx-office-erp.css") {
$myconfig->{stylesheet} = "lx-office-erp.css";
}
$myconfig->{vclimit} = 200;
$myconfig->{"countrycode"} = "de";
$myconfig->{"numberformat"} = "1000,00";
$myconfig->{"dateformat"} = "dd.mm.yy";
$myconfig->{vclimit} = 200;
$myconfig->{countrycode} = "de";
$myconfig->{numberformat} = "1000,00";
$myconfig->{dateformat} = "dd.mm.yy";
&form_header;
&form_footer;
......
}
sub list_users {
$form->error($locale->text('File locked!')) if (-f "${memberfile}.LCK");
open(FH, "$memberfile") or $form->error("$memberfile : $!");
$nologin = qq|
<input type=submit class=submit name=action value="|
. $locale->text('Lock System') . qq|">|;
if (-e "$userspath/nologin") {
$nologin = qq|
<input type=submit class=submit name=action value="|
. $locale->text('Unlock System') . qq|">|;
}
while (<FH>) {
chop;
if (/^\[.*\]/) {
$login = $_;
$login =~ s/(\[|\])//g;
}
if (/^(name=|company=|templates=|dbuser=|dbdriver=|dbname=|dbhost=)/) {
chop($var = $&);
($null, $member{$login}{$var}) = split(/=/, $_, 2);
}
}
close(FH);
# type=submit $locale->text('Pg Database Administration')
# type=submit $locale->text('Oracle Database Administration')
foreach $item (User->dbdrivers) {
$dbdrivers .=
qq|<input name=action type=submit class=submit value="|
. $locale->text("$item Database Administration") . qq|">|;
}
$column_header{login} = qq|<th>| . $locale->text('Login') . qq|</th>|;
$column_header{name} = qq|<th>| . $locale->text('Name') . qq|</th>|;
$column_header{company} = qq|<th>| . $locale->text('Company') . qq|</th>|;
$column_header{dbdriver} = qq|<th>| . $locale->text('Driver') . qq|</th>|;
$column_header{dbhost} = qq|<th>| . $locale->text('Host') . qq|</th>|;
$column_header{dataset} = qq|<th>| . $locale->text('Dataset') . qq|</th>|;
$column_header{templates} =
qq|<th>| . $locale->text('Templates') . qq|</th>|;
@column_index = qw(login name company dbdriver dbhost dataset templates);
$form->{title} = "Lx-Office ERP " . $locale->text('Administration');
$form->header;
print qq|
<body class=admin>
<form method=post action=$form->{script}>
<table width=100%>
<tr>
<tr class=listheading>
<th>$form->{title}</th>
</tr>
<tr size=5></tr>
<tr>
<td>
<table width=100%>
<tr class=listheading>|;
map { print "$column_header{$_}\n" } @column_index;
print qq|
</tr>
|;
foreach $key (sort keys %member) {
$href =
"$script?action=edit&login=$key&rpw=$form->{rpw}";
$href =~ s/ /%20/g;
$member{$key}{templates} =~ s/^$templates\///;
$member{$key}{dbhost} = $locale->text('localhost')
unless $member{$key}{dbhost};
$member{$key}{dbname} = $member{$key}{dbuser}
if ($member{$key}{dbdriver} eq 'Oracle');
$column_data{login} = qq|<td><a id="$key" href="$href">$key</a></td>|;
$column_data{name} = qq|<td>$member{$key}{name}</td>|;
$column_data{company} = qq|<td>$member{$key}{company}</td>|;
$column_data{dbdriver} = qq|<td>$member{$key}{dbdriver}</td>|;
$column_data{dbhost} = qq|<td>$member{$key}{dbhost}</td>|;
$column_data{dataset} = qq|<td>$member{$key}{dbname}</td>|;
$column_data{templates} = qq|<td>$member{$key}{templates}</td>|;
$i++;
$i %= 2;
print qq|
<tr class="listrow$i">|;
map { print "$column_data{$_}\n" } @column_index;
print qq|
</tr>|;
}
print qq|
</table>
</td>
</tr>
<tr>
<td><hr size=3 noshade></td>
</tr>
</table>
<input type=hidden name=rpw value=$form->{rpw}>
<br><input type=submit class=submit name=action value="|
. $locale->text('Add User') . qq|">
<input type=submit class=submit name=action value="|
. $locale->text('Change Admin Password') . qq|">
$dbdrivers
$nologin
</form>
| . $locale->text('Click on login name to edit!') . qq|
<br>
|
. $locale->text(
'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.'
)
. qq|
<p>
<form method=post action=login.pl>
<table border=0 width=100%>
<tr class=listheading>
<th>Lx-Office ERP | . $locale->text('Login') . qq|</th>
</tr>
<tr>
<td>
<table>
<tr>
<th align=right>| . $locale->text('Name') . qq|</th>
<td><input class=login name=login></td>
<td>&nbsp;</td>
</tr>
<tr>
<th align=right>| . $locale->text('Password') . qq|</th>
<td><input class=login type=password name=password></td>
<td><input type=submit name=action value="|
. $locale->text('Login') . qq|"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<hr size=3 noshade>
</body>
</html>
|;
}
sub form_header {
# if there is a login, get user
......
. $locale->text('Administration') . " / "
. $locale->text('Change Admin Password');
$form->header;
print qq|
<body class=admin>
<h2>| . $locale->text('Change Admin Password') . qq|</h2>
<form method=post action=$form->{script}>
<table>
<tr>
<td><b>| . $locale->text('Password') . qq|</b></td>
<td><input type=password name=password size=8></td>
</tr>
<tr>
<td><b>| . $locale->text('Repeat the password') . qq|</b></td>
<td><input type=password name=password_again size=8></b></td>
</tr>
</table>
<input type=hidden name=rpw value=$form->{rpw}>
<p>
<input type=submit class=submit name=action value="|
. $locale->text('Change Password') . qq|">
</form>
</body>
</html>
|;
$form->header();
print $form->parse_html_template("admin/change_admin_password");
}
sub change_password {
......
. $locale->text('Administration') . " / "
. $locale->text('Change Admin Password');
$form->header;
print qq|
<body class=admin>
<h2>| . $locale->text('Change Admin Password') . qq|</h2>
<p>| . $locale->text("The passwords do not match.") . qq|<br>
<input type="button" onclick="history.back()" value="| . $locale->text("Back") . qq|">|;
return;
$form->header();
$form->error($locale->text("The passwords do not match."));
}
$root->{password} = $form->{password};
......
"$form->{script}?action=list_users&rpw=$root->{password}";
$form->redirect($locale->text('Password changed!'));
}
sub check_password {
......
}
sub create_dataset {
$form->{dbsources} = join " ", map { "[${_}]" } sort User->dbsources(\%$form);
foreach $item (sort User->dbsources(\%$form)) {
$dbsources .= "[$item] ";
}
$form->{CHARTS} = [];
opendir SQLDIR, "sql/." or $form - error($!);
foreach $item (sort grep /-chart\.sql\z/, readdir SQLDIR) {
next if ($item eq 'Default-chart.sql');
$item =~ s/-chart\.sql//;
push @charts,
qq| <input name=chart class=radio type=radio value="$item">&nbsp;$item|;
push @{ $form->{CHARTS} }, { "name" => $item,
"selected" => $item eq "Germany-DATEV-SKR03EU" };
}
closedir SQLDIR;
my (@values, %labels);
my $default_charset = $dbcharset;
$default_charset ||= Common::DEFAULT_CHARSET;
my $default_encoding;
foreach my $encoding (@Common::db_encodings) {
push @values, $encoding->{dbencoding};
$labels{$encoding->{dbencoding}} = $encoding->{label};
$form->{DBENCODINGS} = [];
$default_encoding = $encoding->{dbencoding} if $encoding->{charset} eq $default_charset;
foreach my $encoding (@Common::db_encodings) {
push @{ $form->{DBENCODINGS} }, { "dbencoding" => $encoding->{dbencoding},
"label" => $encoding->{label},
"selected" => $encoding->{charset} eq $default_charset };
}
$selectencoding =
NTI($cgi->popup_menu('-name' => 'encoding',
'-values' => \@values,
'-labels' => \%labels,
'-default' => $default_encoding));
$form->{title} =
"Lx-Office ERP "
. $locale->text('Database Administration') . " / "
. $locale->text('Create Dataset');
$form->header;
print qq|
<body class=admin>
<center>
<h2>$form->{title}</h2>
<form method=post action=$form->{script}>
<table width=100%>
<tr class=listheading>
<th colspan=2>&nbsp;</th>
</tr>
<tr>
<th align=right nowrap>| . $locale->text('Existing Datasets') . qq|</th>
<td>$dbsources</td>
</tr>
<tr>
<th align=right nowrap>| . $locale->text('Create Dataset') . qq|</th>
<td><input name=db></td>
</tr>
<tr>
<th align=right nowrap>| . $locale->text('Multibyte Encoding') . qq|</th>
<td>$selectencoding</td>
</tr>
<tr>
<th align=right nowrap>|
. $locale->text('Create Chart of Accounts') . qq|</th>
<td>@charts</td>
</tr>
<tr><td colspan=2>
<p>
<input type=hidden name="dbdriver" value="$form->{dbdriver}">
<input type=hidden name="dbuser" value="$form->{dbuser}">
<input type=hidden name="dbhost" value="$form->{dbhost}">
<input type=hidden name="dbport" value="$form->{dbport}">
<input type=hidden name="dbpasswd" value="$form->{dbpasswd}">
<input type=hidden name="dbdefault" value="$form->{dbdefault}">
<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
<input type=hidden name=rpw value=$form->{rpw}>
<input type=hidden name=nextsub value=dbcreate>
<hr size=3 noshade>
<br>
<input type=submit class=submit name=action value="|
. $locale->text('Continue') . qq|">
</td></tr>
</table>
</form>
</body>
</html>
|;
$form->header();
print $form->parse_html_template("admin/create_dataset");
}
sub dbcreate {
$form->isblank("db", $locale->text('Dataset missing!'));
User->dbcreate(\%$form);
......
. $locale->text('Database Administration') . " / "
. $locale->text('Create Dataset');
$form->header;
print qq|
<body class=admin>
<center>
<h2>$form->{title}</h2>
<form method=post action=$form->{script}>|
. $locale->text('Dataset')
. " $form->{db} "
. $locale->text('successfully created!')
. qq|
<input type=hidden name=rpw value="$form->{rpw}">
<input type=hidden name=nextsub value=list_users>
<p><input type=submit class=submit name=action value="|
. $locale->text('Continue') . qq|">
</form>
</body>
</html>
|;
$form->header();
print $form->parse_html_template("admin/dbcreate");
}
sub delete_dataset {
if (@dbsources = User->dbsources_unused(\%$form, $memberfile)) {
foreach $item (sort @dbsources) {
$dbsources .=
qq|<input name=db class=radio type=radio value=$item>&nbsp;$item |;
}
} else {
$form->error($locale->text('Nothing to delete!'));
}
@dbsources = User->dbsources_unused(\%$form, $memberfile);
$form->error($locale->text('Nothing to delete!')) unless @dbsources;
$form->{title} =
"Lx-Office ERP "
. $locale->text('Database Administration') . " / "
. $locale->text('Delete Dataset');
$form->{DBSOURCES} = [ map { { "name", $_ } } sort @dbsources ];
$form->header;
print qq|
<body class=admin>
<h2>$form->{title}</h2>
<form method=post action=$form->{script}>
<table width=100%>
<tr class=listheading>
<th>|
. $locale->text('The following Datasets are not in use and can be deleted')
. qq|</th>
</tr>
<tr>
<td>
$dbsources
</td>
</tr>
<tr><td>
<p>
<input type=hidden name="dbdriver" value="$form->{dbdriver}">
<input type=hidden name="dbuser" value="$form->{dbuser}">
<input type=hidden name="dbhost" value="$form->{dbhost}">
<input type=hidden name="dbport" value="$form->{dbport}">
<input type=hidden name="dbpasswd" value="$form->{dbpasswd}">
<input type=hidden name="dbdefault" value="$form->{dbdefault}">
<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
<input type=hidden name=rpw value="$form->{rpw}">
<input type=hidden name=nextsub value=dbdelete>
<hr size=3 noshade>
<br>
<input type=submit class=submit name=action value="|
. $locale->text('Continue') . qq|">
</td></tr>
</table>
</form>
</body>
</html>
|;
$form->header();
print $form->parse_html_template("admin/delete_dataset");
}
sub dbdelete {
......
. $locale->text('Database Administration') . " / "
. $locale->text('Delete Dataset');
$form->header;
print qq|
<body class=admin>
<center>
<h2>$form->{title}</h2>
<form method=post action=$form->{script}>
$form->{db} | . $locale->text('successfully deleted!')
. qq|
<input type=hidden name=rpw value="$form->{rpw}">
<input type=hidden name=nextsub value=list_users>
<p><input type=submit class=submit name=action value="|
. $locale->text('Continue') . qq|">
</form>
</body>
</html>
|;
$form->header();
print $form->parse_html_template("admin/dbdelete");
}
sub unlock_system {
locale/de/admin
'Administrator' => 'Administrator',
'All Datasets up to date!' => 'Alle Datenbanken sind auf aktuellem Stand.',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Back' => 'Zur&uuml;ck',
'Bin List' => 'Lagerliste',
'CANCELED' => 'Storniert',
'Cannot create Lock!' => 'System kann nicht gesperrt werden!',
'Change Admin Password' => 'Administratorpasswort ?ndern',
'Change Password' => 'Passwort ?ndern',
'Click on login name to edit!' => 'Zum Bearbeiten den Zugriffsnamen anklicken!',
'Company' => 'Firma',
'Confirmation' => 'Auftragsbest?tigung',
'Connect to' => 'Als Vorlage verwenden',
'Continue' => 'Weiter',
'Create Chart of Accounts' => 'Kontenplan anlegen',
'Create Dataset' => 'Datenbank anlegen',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
......
'Edit User' => 'Benutzerdaten bearbeiten',
'Enter longdescription' => 'Langtext eingeben',
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
'Existing Datasets' => 'existierende Datenbanken',
'Fax' => 'Fax',
'File locked!' => 'Datei gesperrt!',
'History' => 'Historie',
......
'Invoice' => 'Rechnung',
'Language' => 'Sprache',
'Leave host and port field empty unless you want to make a remote connection.' => 'F?r lokale Verbindungen "Rechner" und "Port" freilassen.',
'Lock System' => 'System sperren',
'Lockfile created!' => 'System gesperrt!',
'Lockfile removed!' => 'System entsperrt!',
'Login' => 'Anmeldung',
......
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Multibyte Encoding' => 'Schriftsatz',
'Name' => 'Name',
'New Templates' => 'neue Vorlagen',
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
......
'Nothing to delete!' => 'Es konnte nichts gel?scht werden!',
'Number Format' => 'Zahlenformat',
'Old (on the side)' => 'Alt (seitlich)',
'Oracle Database Administration' => 'Oracle Datenbankadministration',
'PAYMENT POSTED' => 'Rechung gebucht',
'POSTED' => 'Gebucht',
'POSTED AS NEW' => 'Als neu gebucht',
......
'Part description' => 'Artikelbeschreibung',
'Password' => 'Passwort',
'Password changed!' => 'Passwort ge?ndert!',
'Pg Database Administration' => 'Datenbankadministration',
'Phone' => 'Telefon',
'Pick List' => 'Sammelliste',
'Please enter values' => 'Bitte Werte eingeben',
......
'Purchase Order' => 'Lieferantenauftrag',
'Quotation' => 'Angebot',
'RFQ' => 'Anfrage',
'Repeat the password' => 'Passwort wiederholen',
'SAVED' => 'Gespeichert',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
......
'Stylesheet' => 'Stilvorlage',
'Supervisor' => 'Supervisor',
'Tax number' => 'Steuernummer',
'Templates' => 'Vorlagen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und k?nnen gel?scht werden',
'The following Datasets need to be updated' => 'Folgende Datenbanken m?ssen aktualisiert werden',
'The passwords do not match.' => 'Die Passw&ouml;rter stimmen nicht &uuml;berein.',
'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine ?nderungen vorgenommen!',
'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzuf?gen, ?ndern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
'Top (CSS)' => 'Oben (mit CSS)',
'Top (Javascript)' => 'Oben (mit Javascript)',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Unknown dependency \'%s\'.' => 'Unbekannte Abh&auml;ngigkeit \'%s\'.',
'Unlock System' => 'System entsperren',
'Update Dataset' => 'Datenbank aktualisieren',
'Use Templates' => 'benutze Vorlagen',
'User' => 'Benutzer',
......
'Value' => 'Wert',
'Variable' => 'Variable',
'Vendor details' => 'Lieferantendetails',
'Version' => 'Version',
'WEBDAV-Zugriff' => 'WEBDAV-Zugriff',
'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" m?ssen f?r lokale und externe Verbindungen eingetragen werden!',
'bin_list' => 'Lagerliste',
'does not exist' => 'existiert nicht',
'invoice' => 'Rechnung',
'is already a member!' => 'ist bereits ein Mitglied!',
'localhost' => 'lokaler Rechner',
'packing_list' => 'Versandliste',
'pick_list' => 'Entnahmeliste',
'proforma' => 'Proforma',
......
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
'successfully created!' => 'wurde erfolgreich erstellt',
'successfully deleted!' => 'wurde erfolgreich gel?scht',
'website' => 'Webseite',
};
$self->{subs} = {
......
'datenbank_l?schen' => 'delete_dataset',
'system_sperren' => 'lock_system',
'anmeldung' => 'login',
'oracle_datenbankadministration' => 'oracle_database_administration',
'datenbankadministration' => 'pg_database_administration',
'speichern' => 'save',
'system_entsperren' => 'unlock_system',
locale/de/all
'III' => 'III',
'IV' => 'IV',
'If you see this message, you most likely just setup your LX-Office and haven\'t added any entry types. If this is the case, the option is accessible for administrators in the System menu.' => 'Wenn Sie diese Meldung sehen haben Sie wahrscheinlich ein frisches LX-Office Setup und noch keine Buchungsgruppen eingerichtet. Ein Administrator kann dies im Systemmen&uuml; erledigen.',
'If you want to delete such a dataset you have to edit the user(s) that are using the dataset in question and have them use another dataset.' => 'Wenn Sie eine solche Datenbank l&ouml;schen wollen, so m&uuml;ssen Sie zuerst die Benutzer bearbeiten, die die fragliche Datenbank benutzen, und sie so &auml;ndern, dass sie eine andere Datenbank benutzen.',
'Image' => 'Grafik',
'Import CSV' => 'CSV-Import',
'In Lx-Office 2.4.0 the administrator has to enter a list of units in the administrative section.' => 'In Lx-Office 2.4.0 muss der Administrator in den Systemeinstellungen eine Liste von verwendbaren Einheiten angeben.',
......
'Long Description' => 'Langtext',
'Lx-Office 2.4.0 introduces two new concepts: tax zones and Buchungsgruppen.' => 'Lx-Office 2.4.0 f&uuml;hrt zwei neue Konzepte ein: Steuerzonen und Buchungsgruppen.',
'Lx-Office is about to update the database <b><TMPL_VAR dbname ESCAPE=HTML></b>. You should create a backup of the database before proceeding because the backup might not be reversible.' => 'Lx-Office wird gleich die Datenbank <b><TMPL_VAR dbname ESCAPE=HTML></b> aktualisieren. Sie sollten eine Sicherungskopie der Datenbank erstellen, bevor Sie fortfahren, da die Aktualisierung unter Umst&auml;nden nicht umkehrbar ist.',
'Lx-Office website' => 'Lx-Office-Webseite',
'MAILED' => 'Gesendet',
'MSG_BROWSER_DOES_NOT_SUPPORT_IFRAMES' => 'Ihr Browser kann leider keine eingebetteten Frames anzeigen. Bitte w&auml;hlen Sie ein anderes Men&uuml; in der Benutzerkonfiguration im Administrationsmen&uuml; aus.',
'Main Preferences' => 'Grundeinstellungen',
......
'Open' => 'Offen',
'OpenDocument/OASIS' => 'OpenDocument/OASIS',
'Openings' => '?ffnungszeiten',
'Oracle Database Administration' => 'Oracle Datenbankadministration',
'Order' => 'Auftrag',
'Order Date' => 'Auftragsdatum',
'Order Date missing!' => 'Auftragsdatum fehlt!',
......
'Please select a customer from the list below.' => 'Bitte einen Endkunden aus der Liste ausw?hlen',
'Please select a vendor from the list below.' => 'Bitte einen H?ndler aus der Liste ausw?hlen',
'Please select the chart of accounts this installation is using from the list below.' => 'Bitte w&auml;hlen Sie den Kontenrahmen aus, der bei dieser Installation verwendet wird.',
'Please seletct the dataset you want to delete:' => 'Bitte w&auml;hlen Sie die zu l&ouml;schende Datenbank aus:',
'Plural' => 'Plural',
'Port' => 'Port',
'Port missing!' => 'Portangabe fehlt!',
......
'The base unit does not exist or it is about to be deleted in row %d.' => 'Die Basiseinheit in Zeile %d existiert nicht oder soll gel&ouml;scht werden.',
'The base unit does not exist.' => 'Die Basiseinheit existiert nicht.',
'The base unit relations must not contain loops (e.g. by saying that unit A\'s base unit is B, B\'s base unit is C and C\'s base unit is A) in row %d.' => 'Die Beziehungen der Einheiten d&uuml;rfen keine Schleifen beinhalten (z.B. wenn gesagt wird, dass Einheit As Basiseinheit B, Bs Basiseinheit C und Cs Basiseinheit A ist) in Zeile %d.',
'The database <TMPL_VAR db ESCAPE=HTML> has been successfully deleted.' => 'Die Datenbank <TMPL_VAR db ESCAPE=HTML> wurde erfolgreich gel&ouml;scht.',
'The database update/creation did not succeed. The file <TMPL_VAR file ESCAPE=HTML> contained the following error:' => 'Die Datenbankaktualisierung/erstellung schlug fehl. Die Datei <TMPL_VAR file ESCAPE=HTML> enthielt den folgenden Fehler:',
'The database upgrade for the introduction of Buchungsgruppen is now complete.' => 'Das Datenbankupgrade f&uuml;r die Einf&uuml;hrung von Buchungsgruppen ist jetzt beendet.',
'The database upgrade for the introduction of units is now complete.' => 'Das Datenbankupgrade zwecks Einf&uuml;hrung von Einheiten ist nun beendet.',
'The dataset <TMPL_VAR db ESCAPE=HTML> has been successfully created.' => 'Die Datenbank <TMPL_VAR db ESCAPE=HTML> wurde erfolgreich erstellt.',
'The dunning process started' => 'Der Mahnprozess ist gestartet.',
'The factor is missing in row %d.' => 'Der Faktor fehlt in Zeile %d.',
'The factor is missing.' => 'Der Faktor fehlt.',
'The following Buchungsgruppen have already been created:' => 'Die folgenden Buchungsgruppen wurden bereits angelegt:',
'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und k?nnen gel?scht werden',
'The following Datasets need to be updated' => 'Folgende Datenbanken m?ssen aktualisiert werden',
'The following drafts have been saved and can be loaded.' => 'Die folgenden Entw&uuml;rfe wurden gespeichert und k&ouml;nnen geladen werden.',
'The following units are unknown.' => 'Die folgenden Einheiten sind unbekannt.',
......
'Title' => 'Titel',
'To' => 'An',
'To (time)' => 'Bis',
'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzuf?gen, ?ndern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzuf&uuml;gen, &auml;ndern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
'Top (CSS)' => 'Oben (mit CSS)',
'Top (Javascript)' => 'Oben (mit Javascript)',
'Top 100' => 'Top 100',
......
'Yes' => 'Ja',
'You are logged out!' => 'Auf Wiedersehen!',
'You can also create new units now.' => 'Sie k&ouml;nnen jetzt auch neue Einheiten anlegen.',
'You can only delete datasets that are not in use.' => 'Sie k&ouml;nnen nur Datenbanken l&ouml;schen, die momentan nicht in Benutzung sind.',
'You can use the following strings in the long description and all translations. They will be replaced by their actual values by Lx-Office before they\'re output.' => 'Sie k&ouml;nnen im Langtext und allen ?bersetzungen die folgenden Variablen benutzen, die vor der Ausgabe von Lx-Office automatisch ersetzt werden:',
'You cannot continue before all required modules are installed.' => 'Sie k&ouml;nnen nicht fortfahren, bevor alle ben&ouml;tigten Pakete installiert sind.',
'You cannot continue until all unknown units have been mapped to known ones.' => 'Sie k&ouml;nnen nicht fortfahren, bis alle unbekannten Einheiten in neue Einheiten umgewandelt wurden.',
......
'singular first char' => 'S',
'soldtotal' => 'Verkaufte Anzahl',
'submit' => 'abschicken',
'successfully created!' => 'wurde erfolgreich erstellt',
'successfully deleted!' => 'wurde erfolgreich gel?scht',
'to (date)' => 'bis',
'to (time)' => 'bis',
'up' => 'hoch',
'use program settings' => 'benutze Programmeinstellungen',
'ustva' => 'UStVA',
'valid from' => 'G?ltig ab',
'website' => 'Webseite',
'winston_export' => 'Winston-Export',
'wrongformat' => 'Falsches Format',
};
templates/webpages/admin/adminlogin_de.html
<body class="admin" onload="document.getElementById('rpw').focus()">
<div align="center">
<a href="http://www.lx-office.org"><img src="image/lx-office-erp.png" border="0"></a>
<h1 class="login">Version <TMPL_VAR version ESCAPE=HTML></h1>
<h2>Administration</h2>
<form method="post" action="admin.pl">
<table>
<tr>
<th>Passwort</th>
<td><input type="password" name="rpw" id="rpw"></td>
<td><input type="submit" class="submit" name="action" value="Anmeldung"></td>
</tr>
<input type="hidden" name="action" value="login">
</table>
</form>
<p><a href="http://www.lx-office.org/">Lx-Office-Webseite</a></p>
</div>
</body>
</html>
templates/webpages/admin/adminlogin_master.html
<body class="admin" onload="document.getElementById('rpw').focus()">
<div align="center">
<a href="http://www.lx-office.org"><img src="image/lx-office-erp.png" border="0"></a>
<h1 class="login"><translate>Version</translate> <TMPL_VAR version ESCAPE=HTML></h1>
<h2><translate>Administration</translate></h2>
<form method="post" action="admin.pl">
<table>
<tr>
<th><translate>Password</translate></th>
<td><input type="password" name="rpw" id="rpw"></td>
<td><input type="submit" class="submit" name="action" value="<translate>Login</translate>"></td>
</tr>
<input type="hidden" name="action" value="login">
</table>
</form>
<p><a href="http://www.lx-office.org/"><translate>Lx-Office website</translate></a></p>
</div>
</body>
</html>
templates/webpages/admin/change_admin_password_de.html
<body class="admin">
<h2>Administratorpasswort ?ndern</h2>
<form method="post" action="admin.pl">
<table>
<tr>
<td><b>Passwort</b></td>
<td><input type="password" name="password" size="8"></td>
</tr>
<tr>
<td><b>Passwort wiederholen</b></td>
<td><input type="password" name="password_again" size="8"></td>
</tr>
</table>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<p>
<input type="submit" class="submit" name="action" value="Passwort ?ndern"></p>
</form>
</body>
</html>
templates/webpages/admin/change_admin_password_master.html
<body class="admin">
<h2><translate>Change Admin Password</translate></h2>
<form method="post" action="admin.pl">
<table>
<tr>
<td><b><translate>Password</translate></b></td>
<td><input type="password" name="password" size="8"></td>
</tr>
<tr>
<td><b><translate>Repeat the password</translate></b></td>
<td><input type="password" name="password_again" size="8"></td>
</tr>
</table>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<p>
<input type="submit" class="submit" name="action" value="<translate>Change Password</translate>"></p>
</form>
</body>
</html>
templates/webpages/admin/create_dataset_de.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<table>
<tr>
<th valign="top" align="right" nowrap>existierende Datenbanken</th>
<td valign="top"><TMPL_VAR dbsources ESCAPE=HTML></td>
</tr>
<tr>
<th align="right" nowrap>Datenbank anlegen</th>
<td><input name="db"></td>
</tr>
<tr>
<th align="right" nowrap>Schriftsatz</th>
<td>
<select name="encoding">
<TMPL_LOOP DBENCODINGS><option value="<TMPL_VAR dbencoding ESCAPE=HTML>" <TMPL_IF selected>selected</TMPL_IF>><TMPL_VAR label ESCAPE=HTML></option></TMPL_LOOP>
</select>
</td>
</tr>
<tr>
<th valign="top" align="right" nowrap>Kontenplan anlegen</th>
<td>
<select name="chart">
<TMPL_LOOP CHARTS><option <TMPL_IF selected>selected</TMPL_IF>><TMPL_VAR name ESCAPE=HTML></option></TMPL_LOOP>
</select>
</td>
</tr>
</table>
<input type="hidden" name="dbdriver" value="<TMPL_VAR dbdriver ESCAPE=HTML>">
<input type="hidden" name="dbuser" value="<TMPL_VAR dbuser ESCAPE=HTML>">
<input type="hidden" name="dbhost" value="<TMPL_VAR dbhost ESCAPE=HTML>">
<input type="hidden" name="dbport" value="<TMPL_VAR dbport ESCAPE=HTML>">
<input type="hidden" name="dbpasswd" value="<TMPL_VAR dbpasswd ESCAPE=HTML>">
<input type="hidden" name="dbdefault" value="<TMPL_VAR dbdefault ESCAPE=HTML>">
<input type="hidden" name="callback" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>">
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="dbcreate">
<hr size="3" noshade>
<p><input type="submit" class="submit" name="action" value="Weiter"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/create_dataset_master.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<table>
<tr>
<th valign="top" align="right" nowrap><translate>Existing Datasets</translate></th>
<td valign="top"><TMPL_VAR dbsources ESCAPE=HTML></td>
</tr>
<tr>
<th align="right" nowrap><translate>Create Dataset</translate></th>
<td><input name="db"></td>
</tr>
<tr>
<th align="right" nowrap><translate>Multibyte Encoding</translate></th>
<td>
<select name="encoding">
<TMPL_LOOP DBENCODINGS><option value="<TMPL_VAR dbencoding ESCAPE=HTML>" <TMPL_IF selected>selected</TMPL_IF>><TMPL_VAR label ESCAPE=HTML></option></TMPL_LOOP>
</select>
</td>
</tr>
<tr>
<th valign="top" align="right" nowrap><translate>Create Chart of Accounts</translate></th>
<td>
<select name="chart">
<TMPL_LOOP CHARTS><option <TMPL_IF selected>selected</TMPL_IF>><TMPL_VAR name ESCAPE=HTML></option></TMPL_LOOP>
</select>
</td>
</tr>
</table>
<input type="hidden" name="dbdriver" value="<TMPL_VAR dbdriver ESCAPE=HTML>">
<input type="hidden" name="dbuser" value="<TMPL_VAR dbuser ESCAPE=HTML>">
<input type="hidden" name="dbhost" value="<TMPL_VAR dbhost ESCAPE=HTML>">
<input type="hidden" name="dbport" value="<TMPL_VAR dbport ESCAPE=HTML>">
<input type="hidden" name="dbpasswd" value="<TMPL_VAR dbpasswd ESCAPE=HTML>">
<input type="hidden" name="dbdefault" value="<TMPL_VAR dbdefault ESCAPE=HTML>">
<input type="hidden" name="callback" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>">
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="dbcreate">
<hr size="3" noshade>
<p><input type="submit" class="submit" name="action" value="<translate>Continue</translate>"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/dbcreate_de.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p>Die Datenbank <TMPL_VAR db ESCAPE=HTML> wurde erfolgreich erstellt.</p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="list_users">
<p><input type="submit" class="submit" name="action" value="Weiter"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/dbcreate_master.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p><translate>The dataset <TMPL_VAR db ESCAPE=HTML> has been successfully created.</translate></p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="list_users">
<p><input type="submit" class="submit" name="action" value="<translate>Continue</translate>"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/dbdelete_de.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p>Die Datenbank <TMPL_VAR db ESCAPE=HTML> wurde erfolgreich gel&ouml;scht.</p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="list_users">
<p><input type="submit" class="submit" name="action" value="Weiter"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/dbdelete_master.html
<body class="admin">
<div align="center">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p><translate>The database <TMPL_VAR db ESCAPE=HTML> has been successfully deleted.</translate></p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="list_users">
<p><input type="submit" class="submit" name="action" value="<translate>Continue</translate>"></p>
</form>
</div>
</body>
</html>
templates/webpages/admin/delete_dataset_de.html
<body class="admin">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p>Sie k&ouml;nnen nur Datenbanken l&ouml;schen, die momentan nicht in Benutzung sind.
Wenn Sie eine solche Datenbank l&ouml;schen wollen, so m&uuml;ssen Sie zuerst die Benutzer bearbeiten, die die fragliche Datenbank benutzen, und sie so &auml;ndern, dass sie eine andere Datenbank benutzen.</p>
<p>Bitte w&auml;hlen Sie die zu l&ouml;schende Datenbank aus:
<select name="db"><TMPL_LOOP DBSOURCES><option><TMPL_VAR name ESCAPE=HTML></option></TMPL_LOOP></select>
</p>
<input type="hidden" name="dbdriver" value="<TMPL_VAR dbdriver ESCAPE=HTML>">
<input type="hidden" name="dbuser" value="<TMPL_VAR dbuser ESCAPE=HTML>">
<input type="hidden" name="dbhost" value="<TMPL_VAR dbhost ESCAPE=HTML>">
<input type="hidden" name="dbport" value="<TMPL_VAR dbport ESCAPE=HTML>">
<input type="hidden" name="dbpasswd" value="<TMPL_VAR dbpasswd ESCAPE=HTML>">
<input type="hidden" name="dbdefault" value="<TMPL_VAR dbdefault ESCAPE=HTML>">
<input name="callback" type="hidden" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>">
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="dbdelete">
<p><input type="submit" class="submit" name="action" value="Weiter"></p>
</form>
</body>
</html>
templates/webpages/admin/delete_dataset_master.html
<body class="admin">
<h2><TMPL_VAR title></h2>
<form method="post" action="admin.pl">
<p><translate>You can only delete datasets that are not in
use.</translate>
<translate>If you want to delete such a dataset you have to edit
the user(s) that are using the dataset in question and have them
use another dataset.</translate></p>
<p><translate>Please seletct the dataset you want to delete:</translate>
<select name="db"><TMPL_LOOP DBSOURCES><option><TMPL_VAR name ESCAPE=HTML></option></TMPL_LOOP></select>
</p>
<input type="hidden" name="dbdriver" value="<TMPL_VAR dbdriver ESCAPE=HTML>">
<input type="hidden" name="dbuser" value="<TMPL_VAR dbuser ESCAPE=HTML>">
<input type="hidden" name="dbhost" value="<TMPL_VAR dbhost ESCAPE=HTML>">
<input type="hidden" name="dbport" value="<TMPL_VAR dbport ESCAPE=HTML>">
<input type="hidden" name="dbpasswd" value="<TMPL_VAR dbpasswd ESCAPE=HTML>">
<input type="hidden" name="dbdefault" value="<TMPL_VAR dbdefault ESCAPE=HTML>">
<input name="callback" type="hidden" value="admin.pl?action=list_users&rpw=<TMPL_VAR rpw ESCAPE=URL>">
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="hidden" name="nextsub" value="dbdelete">
<p><input type="submit" class="submit" name="action" value="<translate>Continue</translate>"></p>
</form>
</body>
</html>
templates/webpages/admin/list_users_de.html
<body class="admin" onload="">
<form method="post" action="admin.pl">
<div class="listtop" width="100%"><TMPL_VAR title></div>
<p>
<table width="100%">
<tr>
<th class="listtop">Anmeldung</th>
<th class="listtop">Name</th>
<th class="listtop">Firma</th>
<th class="listtop">Treiber</th>
<th class="listtop">Datenbankcomputer</th>
<th class="listtop">Datenbank</th>
<th class="listtop">Vorlagen</th>
</tr>
<TMPL_LOOP MEMBERS>
<tr class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>">
<td><a href="admin.pl?action=edit&login=<TMPL_VAR login ESCAPE=URL>&rpw=<TMPL_VAR rpw ESCAPE=URL>"><TMPL_VAR login ESCAPE=HTML></a></td>
<td><TMPL_VAR name ESCAPE=HTML></td>
<td><TMPL_VAR company ESCAPE=HTML></td>
<td><TMPL_VAR dbdriver ESCAPE=HTML></td>
<td><TMPL_IF dbhost><TMPL_VAR dbhost ESCAPE=HTML><TMPL_ELSE>localhost</TMPL_IF></td>
<td><TMPL_VAR dbname ESCAPE=HTML></td>
<td><TMPL_VAR templates ESCAPE=HTML></td>
</tr>
</TMPL_LOOP>
<td colspan="7"><hr size="3" noshade></td>
</table>
</p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="submit" class="submit" name="action" value="Benutzer erfassen">
<input type="submit" class="submit" name="action" value="Administratorpasswort ?ndern">
<input type="submit" class="submit" name="action" value="Datenbankadministration">
<TMPL_IF LOCKED>
<input type="submit" class="submit" name="action" value="System entsperren">
<TMPL_ELSE>
<input type="submit" class="submit" name="action" value="System sperren">
</TMPL_IF>
<p>Zum Bearbeiten den Zugriffsnamen anklicken!</p>
<p>Um einer Gruppe einen neuen Benutzer hinzuzuf&uuml;gen, &auml;ndern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.</p>
</form>
<form method="post" action="login.pl">
<div class="listheading">Lx-Office ERP Anmeldung</div>
<table border="0">
<tr>
<th align="right">Name</th>
<td><input class="login" name="login"></td>
<td>&nbsp;</td>
</tr>
<tr>
<th align="right">Passwort</th>
<td><input class="login" type="password" name="password"></td>
<td><input type="submit" name="action" value="Anmeldung"></td>
</tr>
</table>
</form>
<hr size="3" noshade>
</body>
</html>
templates/webpages/admin/list_users_master.html
<body class="admin" onload="">
<form method="post" action="admin.pl">
<div class="listtop" width="100%"><TMPL_VAR title></div>
<p>
<table width="100%">
<tr>
<th class="listtop"><translate>Login</translate></th>
<th class="listtop"><translate>Name</translate></th>
<th class="listtop"><translate>Company</translate></th>
<th class="listtop"><translate>Driver</translate></th>
<th class="listtop"><translate>Host</translate></th>
<th class="listtop"><translate>Dataset</translate></th>
<th class="listtop"><translate>Templates</translate></th>
</tr>
<TMPL_LOOP MEMBERS>
<tr class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>">
<td><a href="admin.pl?action=edit&login=<TMPL_VAR login ESCAPE=URL>&rpw=<TMPL_VAR rpw ESCAPE=URL>"><TMPL_VAR login ESCAPE=HTML></a></td>
<td><TMPL_VAR name ESCAPE=HTML></td>
<td><TMPL_VAR company ESCAPE=HTML></td>
<td><TMPL_VAR dbdriver ESCAPE=HTML></td>
<td><TMPL_IF dbhost><TMPL_VAR dbhost ESCAPE=HTML><TMPL_ELSE>localhost</TMPL_IF></td>
<td><TMPL_VAR dbname ESCAPE=HTML></td>
<td><TMPL_VAR templates ESCAPE=HTML></td>
</tr>
</TMPL_LOOP>
<td colspan="7"><hr size="3" noshade></td>
</table>
</p>
<input type="hidden" name="rpw" value="<TMPL_VAR rpw ESCAPE=HTML>">
<input type="submit" class="submit" name="action" value="<translate>Add User</translate>">
<input type="submit" class="submit" name="action" value="<translate>Change Admin Password</translate>">
<input type="submit" class="submit" name="action" value="<translate>Pg Database Administration</translate>">
<TMPL_IF LOCKED>
<input type="submit" class="submit" name="action" value="<translate>Unlock System</translate>">
<TMPL_ELSE>
<input type="submit" class="submit" name="action" value="<translate>Lock System</translate>">
</TMPL_IF>
<p><translate>Click on login name to edit!</translate></p>
<p><translate>To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.</translate></p>
</form>
<form method="post" action="login.pl">
<div class="listheading">Lx-Office ERP <translate>Login</translate></div>
<table border="0">
<tr>
<th align="right"><translate>Name</translate></th>
<td><input class="login" name="login"></td>
<td>&nbsp;</td>
</tr>
<tr>
<th align="right"><translate>Password</translate></th>
<td><input class="login" type="password" name="password"></td>
<td><input type="submit" name="action" value="<translate>Login</translate>"></td>
</tr>
</table>
</form>
<hr size="3" noshade>
</body>
</html>

Auch abrufbar als: Unified diff