oyama's patch

This commit is contained in:
lars 2005-10-11 18:49:38 +00:00
parent bc362f7915
commit 24dbc452b9
4 changed files with 254 additions and 25 deletions

View file

@ -95,3 +95,10 @@ Version 2.3 - 10/06/02005
* file upload typo fixed * file upload typo fixed
* update of webusers file fixed * update of webusers file fixed
* moderator unsubscribe fixed * moderator unsubscribe fixed
Version 2.3.1 - 13/09/02005
* Japanese translarion of web interface and support text edit for multibye
* many web style improvement
* mimeremove and prefix option delete enable
* add $USER value For virtual USER
* another lot of bug fix

View file

@ -1,6 +1,6 @@
#!/usr/bin/perl #!/usr/bin/perl
#=========================================================================== #===========================================================================
# ezmlm-web.cgi - version 2.3 - 10/06/02005 # ezmlm-web.cgi - version 2.3.1 - 13/09/02005
# #
# Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved. # Copyright (C) 1999/2000, Guy Antony Halse, All Rights Reserved.
# Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za # Please send bug reports and comments to guy-ezmlm@rucus.ru.ac.za
@ -45,12 +45,14 @@ use Mail::Address;
use DB_File; use DB_File;
use CGI; use CGI;
use CGI::Carp qw(fatalsToBrowser set_message); use CGI::Carp qw(fatalsToBrowser set_message);
use Encode qw/ from_to /; # add by ooyama for char convert
# These two are actually included later and are put here so we remember them. # These two are actually included later and are put here so we remember them.
#use File::Find if ($UNSAFE_RM == 1); #use File::Find if ($UNSAFE_RM == 1);
#use File::Copy if ($UNSAFE_RM == 0); #use File::Copy if ($UNSAFE_RM == 0);
my $q = new CGI; my $q = new CGI;
$q->charset('utf8'); # add by ooyama for support UTF-8
$q->import_names('Q'); $q->import_names('Q');
use vars qw[$opt_c $opt_d $opt_C]; use vars qw[$opt_c $opt_d $opt_C];
getopts('cd:C:'); getopts('cd:C:');
@ -60,7 +62,7 @@ $ENV{'PATH'} = '/bin';
# We run suid so we can't use $ENV{'HOME'} and $ENV{'USER'} to determine the # We run suid so we can't use $ENV{'HOME'} and $ENV{'USER'} to determine the
# user. :( Don't alter this line unless you are _sure_ you have to. # user. :( Don't alter this line unless you are _sure_ you have to.
my @tmp = getpwuid($>); my $USER=$tmp[0]; my @tmp = getpwuid($>); use vars qw[$USER]; $USER=$tmp[0]; # add by ooyama for virtual user
# use strict is a good thing++ # use strict is a good thing++
@ -70,10 +72,12 @@ use vars qw[$QMAIL_BASE $EZMLM_CGI_RC $EZMLM_CGI_URL $HTML_BGCOLOR $PRETTY_NAMES
use vars qw[%HELPER $HELP_ICON_URL $HTML_HEADER $HTML_FOOTER $HTML_TEXT $HTML_LINK]; use vars qw[%HELPER $HELP_ICON_URL $HTML_HEADER $HTML_FOOTER $HTML_TEXT $HTML_LINK];
use vars qw[%BUTTON %LANGUAGE $HTML_VLINK $HTML_TITLE $FILE_UPLOAD $WEBUSERS_FILE]; use vars qw[%BUTTON %LANGUAGE $HTML_VLINK $HTML_TITLE $FILE_UPLOAD $WEBUSERS_FILE];
use vars qw[$HTML_CSS_FILE]; use vars qw[$HTML_CSS_FILE];
use vars qw[$TEXT_ENCODE]; $TEXT_ENCODE='us-ascii'; # by ooyama for multibyte convert support
# Get user configuration stuff # Get user configuration stuff
if(defined($opt_C)) { if(defined($opt_C)) {
require "$opt_C"; # Command Line $opt_C =~ /^([-\w.\/]+)$/;
require "$1"; # Command Line For perl security check by ooyama
} elsif(-e "$HOME_DIR/.ezmlmwebrc") { } elsif(-e "$HOME_DIR/.ezmlmwebrc") {
require "$HOME_DIR/.ezmlmwebrc"; # User require "$HOME_DIR/.ezmlmwebrc"; # User
} elsif(-e "/etc/ezmlm/ezmlmwebrc") { } elsif(-e "/etc/ezmlm/ezmlmwebrc") {
@ -99,12 +103,20 @@ my($DEFAULT_HOST);
open (GETHOST, "<$QMAIL_BASE/me") || open (GETHOST, "<$QMAIL_BASE/defaultdomain") || die "Unable to read $QMAIL_BASE/me: $!"; open (GETHOST, "<$QMAIL_BASE/me") || open (GETHOST, "<$QMAIL_BASE/defaultdomain") || die "Unable to read $QMAIL_BASE/me: $!";
chomp($DEFAULT_HOST = <GETHOST>); chomp($DEFAULT_HOST = <GETHOST>);
close GETHOST; close GETHOST;
# add by ooyama DEFAULT_DOMAIN
my($DEFAULT_DOMAIN);
if(open (GETDOMAIN, "<$QMAIL_BASE/defaultdomain")){
chomp($DEFAULT_DOMAIN = <GETDOMAIN>);
close GETDOMAIN;
}else{
$DEFAULT_DOMAIN = $DEFAULT_HOST;
}
# Untaint form input ... # Untaint form input ...
&untaint; &untaint;
# redirect must come before headers are printed # redirect must come before headers are printed
if(defined($Q::action) && $Q::action eq '[Web Archive]') { if(defined($Q::action) && $Q::action eq "[$BUTTON{'webarchive'}]") { # bug fix
print $q->redirect(&ezmlmcgirc); print $q->redirect(&ezmlmcgirc);
exit; exit;
} }
@ -286,7 +298,7 @@ sub select_list {
print $q->startform; print $q->startform;
print $q->hidden(-name=>'state', -default=>'select'); print $q->hidden(-name=>'state', -default=>'select');
print '<div class="list">'; print '<div style="margin-top : 5px;margin-left : 5px;margin-right : 40px;margin-bottom : 50px;" class="list">'; # By ooayam For better style
print $q->scrolling_list(-name=>'list', -size=>$scrollsize, -values=>\@lists) if defined(@lists); print $q->scrolling_list(-name=>'list', -size=>$scrollsize, -values=>\@lists) if defined(@lists);
print '</div>'; # end of main_mainlinglists_list print '</div>'; # end of main_mainlinglists_list
@ -352,7 +364,7 @@ sub display_list {
# Begin of content # Begin of content
print '<div id="edit" class="container">'; print '<div id="edit" class="container">';
print '<div class="title">'; print '<div class="title" align="center">'; # by ooyama for style
print "<h2>$LANGUAGE{'subscribersto'} $Q::list</h2>"; print "<h2>$LANGUAGE{'subscribersto'} $Q::list</h2>";
print "<h3>($listaddress)</h3>"; print "<h3>($listaddress)</h3>";
print '<hr>'; print '<hr>';
@ -369,6 +381,7 @@ sub display_list {
print '<div class="add_remove">'; print '<div class="add_remove">';
print '<p>', ($#subscribers + 1), ' ', $LANGUAGE{'subscribers'}, '</p>' if defined(@subscribers); print '<p>', ($#subscribers + 1), ' ', $LANGUAGE{'subscribers'}, '</p>' if defined(@subscribers);
print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '</span>' if defined(@subscribers); print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '</span>' if defined(@subscribers);
print '<p>'; # by ooyama for style
print '<span class="formfield">', $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddress'}, '"></span>'; print '<span class="formfield">', $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddress'}, '"></span>';
print '<span class="formfield">', $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddressfile'}, '"></span>' if ($FILE_UPLOAD); print '<span class="formfield">', $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddressfile'}, '"></span>' if ($FILE_UPLOAD);
print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '</span>'; print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '</span>';
@ -648,6 +661,7 @@ sub part_subscribers {
print '<div class="add_remove">'; print '<div class="add_remove">';
print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '</span>' if defined(@subscribers); print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'deleteaddress'}]"), '</span>' if defined(@subscribers);
print '<p>';
print '<span class="formfield">', $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddress'}, '"></span>'; print '<span class="formfield">', $q->textfield(-name=>'addsubscriber', -size=>'40'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddress'}, '"></span>';
print '<span class="formfield">', $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddressfile'}, '"></span>' if ($FILE_UPLOAD); print '<span class="formfield">', $q->filefield(-name=>'addfile', -size=>20, -maxlength=>100), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'addaddressfile'}, '"></span>' if ($FILE_UPLOAD);
print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '</span>'; print '<span class="button">', $q->submit(-name=>'action', -value=>"[$BUTTON{'addaddress'}]"), '</span>';
@ -665,7 +679,7 @@ sub part_subscribers {
sub allow_create_list { sub allow_create_list {
# Let the user select options for list creation ... # Let the user select options for list creation ...
my($username, $hostname, %labels, $j); my($username, $hostname, %labels, $j, $domain); # by ooyama add dmain
# Work out if this user has a virtual host and set input accordingly ... # Work out if this user has a virtual host and set input accordingly ...
if(-e "$QMAIL_BASE/virtualdomains") { if(-e "$QMAIL_BASE/virtualdomains") {
@ -679,6 +693,9 @@ sub allow_create_list {
if(!defined($hostname)) { if(!defined($hostname)) {
$username = "$USER-" if ($USER ne $ALIAS_USER); $username = "$USER-" if ($USER ne $ALIAS_USER);
$hostname = $DEFAULT_HOST; $hostname = $DEFAULT_HOST;
$domain = $DEFAULT_DOMAIN; # by ooyama add domain
}else{
$domain = $hostname;
} }
print '<div id="create" class="container">'; print '<div id="create" class="container">';
@ -696,9 +713,11 @@ sub allow_create_list {
print '<div class="input">'; print '<div class="input">';
print '<span class="formfield">', $LANGUAGE{'listname'}, ': ', $q->textfield(-name=>'list', -size=>'20'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'listname'}, '"></span>'; print '<span class="formfield">', $LANGUAGE{'listname'}, ': ', $q->textfield(-name=>'list', -size=>'20'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'listname'}, '"></span>';
print '<span class="formfield">', $LANGUAGE{'listaddress'}, ': ', $q->textfield(-name=>'inlocal', -default=>$username, -size=>'10'); print '<p>'; # By ooyama For style
print ' @ ', $q->textfield(-name=>'inhost', -default=>$hostname, -size=>'30'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'listadd'}, '"></span>'; print '<span class="formfield">', $LANGUAGE{'listaddress'}, ': ', $q->textfield(-name=>'inlocal', -default=>$username, -size=>'20');
print ' @ ', $q->textfield(-name=>'inhost', -default=>$domain, -size=>'40'), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'listadd'}, '"></span>'; # by ooyama change to use domain
print '<p>'; # By ooyama For style
print '<span class="formfield">', $LANGUAGE{'listoptions'}, ':</span>'; print '<span class="formfield">', $LANGUAGE{'listoptions'}, ':</span>';
&display_options($DEFAULT_OPTIONS); &display_options($DEFAULT_OPTIONS);
@ -820,10 +839,10 @@ sub list_config {
print '<div class="info">'; print '<div class="info">';
print '<p>', $LANGUAGE{'listname'}, ": <em>$listname</em></p>"; print '<p>', $LANGUAGE{'listname'}, ": <em>$listname</em></p>";
print '<p>', "$LANGUAGE{'listaddress'}: <em>$listaddress</em></p>"; print '<p>', "$LANGUAGE{'listaddress'}: <em>$listaddress</em></p>";
print '<p>', $LANGUAGE{'listoptions'}, ':</p>'; # by ooyama for style
print '</div>'; # end of config->info print '</div>'; # end of config->info
print '<div class="input">'; print '<div class="input">';
print '<h2>', $LANGUAGE{'listoptions'}, ':</h2>';
# Print a list of options, selecting the ones that apply to this list ... # Print a list of options, selecting the ones that apply to this list ...
&display_options($list->getconfig); &display_options($list->getconfig);
@ -834,10 +853,11 @@ sub list_config {
$mimeremove = $list->getpart('mimeremove'); $mimeremove = $list->getpart('mimeremove');
$prefix = $list->getpart('prefix'); $prefix = $list->getpart('prefix');
print '<span class="formfield">', $LANGUAGE{'prefix'}, ': ', $q->textfield(-name=>'prefix', -default=>$prefix, -size=>12), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'prefix'}, '"></span>' if defined($prefix); # by ooyama change for style and bug fix
print '<p class="formfield">', $LANGUAGE{'headerremove'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'headerremove'}, '"><br>', $q->textarea(-name=>'headerremove', -default=>$headerremove, -rows=>5, -columns=>70), '</span>'; print '<span class="formfield">', $LANGUAGE{'prefix'}, ': ', $q->textfield(-name=>'prefix', -default=>$prefix, -size=>20), ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'prefix'}, '"></span><p>' if defined($prefix);
print '<span class="formfield">', $LANGUAGE{'headeradd'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'headeradd'}, '"><br>', $q->textarea(-name=>'headeradd', -default=>$headeradd, -rows=>5, -columns=>70), '</div>'; print '<span class="formfield">', $LANGUAGE{'headerremove'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'headerremove'}, '"><br>', $q->textarea(-name=>'headerremove', -default=>$headerremove, -rows=>5, -columns=>70), '</span><p>';
print '<span class="formfield">', $LANGUAGE{'mimeremove'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'mimeremove'}, '"><br>', $q->textarea(-name=>'mimeremove', -default=>$mimeremove, -rows=>5, -columns=>70), '</span>' if defined($mimeremove); print '<span class="formfield">', $LANGUAGE{'headeradd'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'headeradd'}, '"><br>', $q->textarea(-name=>'headeradd', -default=>$headeradd, -rows=>5, -columns=>70), '</span><p>';
print '<span class="formfield">', $LANGUAGE{'mimeremove'}, ': <img src="', $HELP_ICON_URL, '" title="', $HELPER{'mimeremove'}, '"><br>', $q->textarea(-name=>'mimeremove', -default=>$mimeremove, -rows=>5, -columns=>70), '</span><p>' if defined($mimeremove);
if(open(WEBUSER, "<$WEBUSERS_FILE")) { if(open(WEBUSER, "<$WEBUSERS_FILE")) {
my($webusers); my($webusers);
@ -849,8 +869,8 @@ sub list_config {
print '<span class="formfield">', $LANGUAGE{'allowedtoedit'}, ': '; print '<span class="formfield">', $LANGUAGE{'allowedtoedit'}, ': ';
print $q->textfield(-name=>'webusers', -value=>$webusers, -size=>'30'); print $q->textfield(-name=>'webusers', -value=>$webusers, -size=>'30');
print ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'webusers'}, '"></span>', print ' <img src="', $HELP_ICON_URL, '" title="', $HELPER{'webusers'}, '"></span><p>',
print '<span class="help">', $HELPER{'allowedit'}, '</span>'; print '<span class="help">', $HELPER{'allowedit'}, '</span><p>';
} }
print '</div>'; # end of config->input print '</div>'; # end of config->input
@ -872,13 +892,15 @@ sub list_config {
sub update_config { sub update_config {
# Save the new user entered config ... # Save the new user entered config ...
my ($list, $options, $i, @inlocal, @inhost); my ($list, $options, $i, @inlocal, @inhost, $opt_mime, $opt_prefix); # add by ooyama
$list = new Mail::Ezmlm("$LIST_DIR/$Q::list"); $list = new Mail::Ezmlm("$LIST_DIR/$Q::list");
# Work out the command line options ... # Work out the command line options ...
foreach $i (grep {/\D/} keys %EZMLM_LABELS) { foreach $i (grep {/\D/} keys %EZMLM_LABELS) {
if (defined($q->param($i))) { if (defined($q->param($i))) {
$options .= $i; $options .= $i;
$opt_mime = 1 if($i eq 'x'); # add by ooyama
$opt_prefix = 1 if($i eq 'f'); # add by ooyama
} else { } else {
$options .= uc($i); $options .= uc($i);
} }
@ -898,8 +920,16 @@ sub update_config {
# Update headeradd, headerremove, mimeremove and prefix ... # Update headeradd, headerremove, mimeremove and prefix ...
$list->setpart('headeradd', $q->param('headeradd')); $list->setpart('headeradd', $q->param('headeradd'));
$list->setpart('headerremove', $q->param('headerremove')); $list->setpart('headerremove', $q->param('headerremove'));
if($opt_mime){
$list->setpart('mimeremove', $q->param('mimeremove')) if defined($q->param('mimeremove')); $list->setpart('mimeremove', $q->param('mimeremove')) if defined($q->param('mimeremove'));
}else{ # add by ooyama to delete option f
unlink "$LIST_DIR/$Q::list/mimeremove" if(-f "$LIST_DIR/$Q::list/mimeremove");
}
if($opt_prefix){
$list->setpart('prefix', $q->param('prefix')) if defined($q->param('prefix')); $list->setpart('prefix', $q->param('prefix')) if defined($q->param('prefix'));
}else{ # add by ooyama to delete option f
unlink "$LIST_DIR/$Q::list/prefix" if(-f "$LIST_DIR/$Q::list/prefix");
}
&update_webusers(); &update_webusers();
} }
@ -990,6 +1020,7 @@ sub edit_text {
my ($content); my ($content);
my($list) = new Mail::Ezmlm("$LIST_DIR/$Q::list"); my($list) = new Mail::Ezmlm("$LIST_DIR/$Q::list");
$content = $list->getpart("text/$Q::file"); $content = $list->getpart("text/$Q::file");
from_to($content,$TEXT_ENCODE,'utf8'); # by ooyama for multibyte
# Begin of content # Begin of content
print '<div id="edittext" class="container">'; print '<div id="edittext" class="container">';
@ -1031,7 +1062,9 @@ sub save_text {
# Save new text in DIR/text ... # Save new text in DIR/text ...
my ($list) = new Mail::Ezmlm("$LIST_DIR/$Q::list"); my ($list) = new Mail::Ezmlm("$LIST_DIR/$Q::list");
$list->setpart("text/$Q::file", $q->param('content')); my ($content) = $q->param('content');
from_to($content,'utf8',$TEXT_ENCODE); # by ooyama for multibyte
$list->setpart("text/$Q::file", $content);
} }
@ -1096,7 +1129,7 @@ sub display_options {
print '<span class="checkbox">', $q->checkbox(-name=>$i, -value=>$i, -label=>$EZMLM_LABELS{$i}[0]); print '<span class="checkbox">', $q->checkbox(-name=>$i, -value=>$i, -label=>$EZMLM_LABELS{$i}[0]);
} }
print '<img src="', $HELP_ICON_URL, '" border="0" title="', $EZMLM_LABELS{$i}[1] , '"></span>'; print '<img src="', $HELP_ICON_URL, '" border="0" title="', $EZMLM_LABELS{$i}[1] , '"></span>';
print '</td>'; $j++; $j++; # By ooyama bug fix
if ($j >= 3) { if ($j >= 3) {
$j = 0; print '</p><p>'; $j = 0; print '</p><p>';
} }
@ -1111,7 +1144,7 @@ sub display_options {
print '<span class="checkbox">', $q->checkbox(-name=>$i, -value=>$i, -label=>$EZMLM_LABELS{$i}[0]); print '<span class="checkbox">', $q->checkbox(-name=>$i, -value=>$i, -label=>$EZMLM_LABELS{$i}[0]);
} }
print '<img src="', $HELP_ICON_URL, '" border="0" title="', $EZMLM_LABELS{$i}[1] , '"></span>'; print '<img src="', $HELP_ICON_URL, '" border="0" title="', $EZMLM_LABELS{$i}[1] , '"></span>';
print '<span class="formfield">', $q->textfield(-name=>"$i-value", -value=>$1||$EZMLM_LABELS{$i}[2], -size=>30), '</span>'; print '<span class="formfield">', $q->textfield(-name=>"$i-value", -value=>$1||$EZMLM_LABELS{$i}[2], -size=>50), '</span>';
print '</p>'; print '</p>';
} }

View file

@ -1,4 +1,4 @@
# Configuration file for ezmlm-web 2.3 # Configuration file for ezmlm-web 2.3.1
# =========================================================================== # ===========================================================================
# This file is not just an ordinary configuration file - it contains valid # This file is not just an ordinary configuration file - it contains valid
@ -62,7 +62,7 @@ $HTML_HEADER .= '<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="5" ALIGN="CENTER
# Footer for every page (.= concatinates) # Footer for every page (.= concatinates)
$HTML_FOOTER = '</TD></TR></TABLE>'; $HTML_FOOTER = '</TD></TR></TABLE>';
$HTML_FOOTER .= '<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="5" ALIGN="CENTER" WIDTH="99%"><TR><TD BGCOLOR="#e0e0ff">'; $HTML_FOOTER .= '<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="5" ALIGN="CENTER" WIDTH="99%"><TR><TD BGCOLOR="#e0e0ff">';
$HTML_FOOTER .= '<FONT SIZE="-1"><A HREF="https://systemausfall.org/toolforge/ezmlm-web" TARGET="_blank">ezmlm-web</A> (v2.3) A web interface to <A HREF="http://www.ezmlm.org/" TARGET="_blank">ezmlm</A></FONT></TD></TR></TABLE>'; $HTML_FOOTER .= '<FONT SIZE="-1"><A HREF="https://systemausfall.org/toolforge/ezmlm-web" TARGET="_blank">ezmlm-web</A> (v2.3.1) A web interface to <A HREF="http://www.ezmlm.org/" TARGET="_blank">ezmlm</A></FONT></TD></TR></TABLE>';
# NEW: # NEW:
# html properties (e.g. color, background-color) can be defined in a # html properties (e.g. color, background-color) can be defined in a
@ -74,8 +74,10 @@ $HTML_TITLE = 'E Z Mailing List Manager';
# Optional: use a cascading style sheet (css) # Optional: use a cascading style sheet (css)
$HTML_CSS_FILE = "css/default.css"; $HTML_CSS_FILE = "css/default.css";
# choose a language (en|de) # choose a language (en|de|jp)
$HTML_LANGUAGE = 'en'; $HTML_LANGUAGE = 'en';
# choose a text charset (jis or another)
#$TEXT_ENCODE = 'jis';
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# include language-specific definitions # include language-specific definitions

187
ezmlm-web-2.3.1/lang/jp.pm Normal file
View file

@ -0,0 +1,187 @@
# language-specific definitions for ezmlm-web
# in Japanese
# The meanings of the various ezmlm-make command line switches. The default
# ones match the ezmlm-idx 0.4 default ezmlmrc ... Alter them to suit your
# own ezmlmrc. Removing options from this list makes them unavailable
# through ezmlm-web - this could be useful for things like -w
%EZMLM_LABELS = (
# option => ['Short Name',
# 'Long Help Description'],
a => ['アーカイブ保存',
'メッセージをアーカイブする'],
b => ['アーカイブブロック',
'モデレータのみアーカイブにアクセス可能'],
# c => config. This is implicity called, so is not defined here
d => ['ダイジェスト作成',
'メッセージのダイジェストリストをセットアップする'],
# e => edit. Also implicity called, so not defined here
f => ['件名にPrefixを付加する',
'件名に指定したPrefix文字を付加する'],
g => ['アーカイブ制限',
'送信者が未登録の場合アーカイブのアクセスを拒否する'],
h => ['登録確認をしない',
'メールによる登録時に確認メールを送らない'],
i => ['インデックス作成',
'WWW アーカイブアクセス用インデックスの作成'],
j => ['登録解除確認をしない',
'メールによる登録解除時に確認メールを送らない'],
k => ['拒否リスト有効',
'拒否リストに登録されたアドレスを拒否する'],
l => ['登録者リスト取出',
'遠隔管理者に登録者リストを送る'],
m => ['投稿の審査',
'全ての投稿メッセージを審査する'],
n => ['テキスト編集',
'遠隔管理者にテキスト編集を許可する'],
o => ['モデレータのみ投稿可',
'モデレータ以外の投稿を拒否する'],
p => ['公開する',
'メールによる登録、登録解除などを有効にする'],
q => ['リクエスト形式有効',
'local-request@host のメールを処理する'],
r => ['遠隔管理',
'遠隔管理を有効にする'],
s => ['登録の審査',
'登録を審査する'],
t => ['Trailerを付加する',
'メッセージの末尾にTrailerを付加する'],
u => ['登録者のみ投稿可',
'登録者の投稿のみを受け付ける'],
# v => version. I doubt you will really need this ;-)
w => ['警告を出さない',
'ezmlm-warn(1) の挙動を抑止する'],
x => ['指定mime typeの削除',
'指定したmime typeの貼付ファイルを削除する'],
# y => not used
# z => not used
# These all take an extra argument, which is the default value to use
0 => ['サブリストにする',
'指定したメインリストのサブリストにする',
'mainlist@host'],
# 1 => not used
# 2 => not used
3 => ['送信者アドレス固定',
'指定した Fromアドレスに固定する',
'fromarg'],
4 => ['ダイジェストオプション',
'ezmlm-tstdig(1) のオプションを指定する',
'-t24 -m30 -k64'],
5 => ['オーナーアドレス',
'リストオーナーのアドレスを指定する',
''],
6 => ['SQLデータベース',
'SQLデータベースへの接続情報',
'host:port:user:password:datab:table'],
7 => ['メッセージモデレータのデータベース',
'メッセージモデレータのデータベースへのフルパス',
'/some/full/path'],
8 => ['登録モデレータのデータベース',
'登録モデレータのデータベースへのフルパス',
'/some/full/path'],
9 => ['遠隔管理者データベース',
'遠隔管理者のデータベースへのフルパス',
'/some/full/path']
);
# This list defines most of the context sensitive help in ezmlm-web. What
# isn't defined here is the options, which are defined above ... You can
# alter these if you feel something else would make more sense to your users
# Just be careful of what can fit on a screen!
%HELPER = (
# These should be self explainitory
addaddress => 'RFC822 に準拠したメールアドレスを入れます 例; J Random User <jru@on.web.za>',
addaddressfile => 'または RFC822 に準拠したアドレスを、1行毎に含むテキストファイルを選択します',
moderator => 'モデレータ: 登録や投稿を審査する人のリスト',
deny => '拒絶リスト: メーリングリストへの参加を拒絶する人のリスト',
allow => '許可リスト: メーリングリストへの参加を特に許可する人のリスト',
digest => 'ダイジェストリスト: 全てのメッセージのダイジェストの受け取りを許可された人のリスト',
webarch => 'ウェブベースのアーカイブリストの閲覧',
config => 'メーリングリストの設定の変更',
listname => 'リスト選択時に表示される名前.また、実際に作成されるサブディレクトリの名前.',
listadd => 'メーリングリストの投稿に使用されるアドレス.特殊な場合を除き、- 以前は変更削除しないこと',
webusers => 'NB! 現在は、ここで指定できるユーザーは実在のユーザーに限る. ユーザーの追加は将来の追加課題',
prefix => '件名の先頭に付加される文字列 #で、メッセージ番号がつきます',
headerremove => 'メッセージから取り除くヘッダーを指定する',
headeradd => 'メッセージに追加するヘッダーを指定する',
mimeremove => '指定した mime type の貼付ファイルをメッセージから削除する',
allowedit => 'ユーザー名のカンマ区切りリストまたは、<CODE>ALL</CODE> (有効な全てのユーザー)',
mysqlcreate => 'MySQLに必要なテーブルを作成する'
);
# This defines the captions of each of the buttons in ezmlm-web, and allows
# you to configure them for your own language or taste. Since these are used
# by the switching algorithm it is important that every button has a unique
# caption - ie we can't have two 'Edit' buttons doing different things.
%BUTTON = (
# These MUST all be unique!
create => '作成',
createlist => 'リスト作成',
edit => '編集',
delete => '削除',
deleteaddress => 'アドレス削除',
addaddress => 'アドレス追加',
moderators => 'モデレータ',
denylist => '拒絶リスト',
allowlist => '許可リスト',
digestsubscribers => 'ダイジェスト登録者',
configuration => '設定',
yes => 'はい',
no => 'いいえ',
updateconfiguration => '設定更新',
edittexts => 'テキスト編集',
editfile => 'ファイル編集',
savefile => 'ファイル保存',
webarchive => 'ウェブアーカイブ',
selectlist => 'リスト選択',
subscribers => '登録者編集',
cancel => 'キャンセル',
resetform => 'リセット',
);
# This defines the fixed text strings that are used in ezmlm-web. By editing
# these along with the button labels and help texts, you can convert ezmlm-web
# to another language :-) If anyone gets arround to doing complete templates
# for other languages I would appreciate a copy so that I can include it in
# future releases of ezmlm-web.
%LANGUAGE = (
nop => 'Action not yet implemented',
chooselistinfo => "<UL><LI>メーリングリストを選択するか、または、 [$BUTTON{'create'}] ボタンを押して作成してください.<LI>変更する場合は、選択して、 [$BUTTON{'edit'}] ボタンを押してください.<LI>削除する場合は、選択して、 [$BUTTON{'delete'}] ボタンを押してください.</UL>",
confirmdelete => '削除確認', # list name
subscribersto => '登録者編集', # list name
subscribers => '登録者',
additionalparts => 'リスト付加情報',
posting => '投稿',
subscription => '登録',
remoteadmin => '遠隔管理',
for => 'for', # as in; moderators for blahlist
createnew => '新規リスト作成',
listname => 'リスト名',
listaddress => 'リストアドレス',
listoptions => 'リストオプション',
allowedtoedit => 'リスト編集許可者',
editconfiguration => 'リスト設定編集',
prefix => '件名に付加する文字 prefix',
headerremove => '削除するヘッダー情報',
headeradd => '追加するヘッダー情報',
mimeremove => '削除する貼付ファイルのmime type',
edittextinfo => "左側にある一覧は、DIR/text の中にあるテキストファイルです. <BR>これらのファイルは、ユーザーのリクエストに対する返信内容,または、配信されるメールに付加される内容です.<P>このファイルを編集するには, 左の一覧から選択して、 [$BUTTON{'editfile'}] ボタンを押します.<P>終了または、中止するときは、[$BUTTON{'cancel'}] ボタンを押します.",
editingfile => 'ファイル編集',
editfileinfo => '<BIG><STRONG>マネージ用</STRONG></BIG><BR><TT><STRONG>&lt;#l#&gt;</STRONG></TT> リスト名<BR><TT><STRONG>&lt;#A#&gt;</STRONG></TT> 投稿者アドレス<BR><TT><STRONG>&lt;#R#&gt;</STRONG></TT> 投稿者が返信するアドレス<P><BIG><STRONG>メッセージ埋め込み用</STRONG></BIG><BR><TT><STRONG>&lt;#l#&gt;</STRONG></TT> リスト名<BR><TT><STRONG>&lt;#A#&gt;</STRONG></TT> 受け取りアドレス<BR><TT><STRONG>&lt;#R#&gt;</STRONG></TT> 拒絶アドレス</UL>',
mysqlcreate => '必要ならば MySQL データベースを作成',
);
# === Configuration file ends ===