⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bk_admin_main.pl

📁 BabelKit是一个通用多语言数据库代码表的接口。它接收维护使用多语言的多个数据库代码定义集中的所有编程工作。代码管理和翻译页可以让开发人员定义新的虚拟代码表
💻 PL
📖 第 1 页 / 共 2 页
字号:
#       #       #       ### bk_admin.pl## BabelKit Universal Multilingual Code Table translation page.## Copyright (C) 2003 John Gorman <jgorman@webbysoft.com># http://www.webbysoft.com/babelkit#use strict;use warnings;use vars qw(    $action    $code_set    $code_lang    $code_lang2    $code_code    $code_admin    $self_url);#       #       #       ### Main dispatch logic.#sub bka_admin_main {    print $cgi->header;    $self_url = $cgi->url(-absolute=>1);    $action     = $cgi->param('action') || '';    $code_set   = $cgi->param('code_set') || '';    $code_lang  = $cgi->param('code_lang') || '';    $code_lang2 = $cgi->param('code_lang2') || '';    $code_code  = $cgi->param('code_code') || '';    if (!$code_lang or $code_lang eq $code_lang2) {        $code_lang2 = '';    }    $code_lang ||= $bkh->{native};    $code_admin = bka_admin_get($code_set);    if ($code_admin->{slave}) {        $perm_add = 0;        $perm_del = 0;    }    bka_admin_header();    if ($action eq 'New') {        bka_form_display();    } elsif ($action eq '' && $code_code ne '') {        bka_form_display($code_code);    } elsif ($action ne '') {        bka_form_aud();    } elsif ($code_set ne '') {        bka_set_display();    } else {        bka_translations();    }    print "    </body>    </html>    ";}#       #       #       ### Print the page header#sub bka_admin_header {    my $title = "BabelKit Universal Code Translation";    $title .= " : $code_set" if ($code_set);    if ($action eq 'New') {        $title .= " : New";    } elsif ($code_code ne '') {        $title .= " : $code_code";    } elsif ($code_set) {        $title .= " : $code_lang" if ($code_lang);        $title .= "/$code_lang2" if ($code_lang2);    }    print "    <html>    <head>    <title>$title</title>    </head>    <body text=\"#000044\" bgcolor=\"#f0ffff\"    link=\"#0000cc\" vlink=\"#0066ff\" alink=\"#ffcc00\">    <center>    <h2 style=\"color:#873852\">$title</h2>    <a href=\"" . bka_sess_url($self_url) .        "\"><b>Main Translation Page</b></a>    - <a href=\"http://www.webbysoft.com/babelkit/doc\"><b>Help Docs</b></a>    - <a href=\"http://www.webbysoft.com/babelkit\"><b>BabelKit Home</b></a>    <p><b style=\"color:#873852\">        Select a code set and language(s)</b>    <form action=\"" . bka_sess_url($self_url) . "\" method=\"post\">    ";    print $bkh->select('code_set',  $bkh->{native},        blank_prompt  => 'All Codes'    );    print $bkh->select('code_lang', $bkh->{native});    print $bkh->select('code_lang', $bkh->{native},        var_name      => 'code_lang2',        select_prompt => '(Other)',        blank_prompt  => '(None)'    );    print "    <input type=submit value=\"View Set\">    </form>    </center>    <hr>    ";}#       #       #       ### Display the code translation todo list#sub bka_translations {    print "<b style=\"color:#873852\">BabelKit Translation Sets</b>\n";    # Get the code counts for all language sets.    my $code_counts = bka_get_counts();    # Get the code and language sets and print the top header.    my $set_rows  = $bkh->lang_set('code_set',  $bkh->{native});    my $lang_rows = $bkh->lang_set('code_lang', $bkh->{native});    print "<pre>\n";    printf("%-16s", "");    for my $lang_row ( @$lang_rows ) {        next if $lang_row->[3] eq 'd';        my $lang_cd = $lang_row->[0];        printf("<b>%6s</b>", $lang_cd);    }    # Print the count array.    my $todo_count = 0;    my $totals = {};    for my $set_row ( @$set_rows ) {        next if $set_row->[3] eq 'd';        my $set_cd = $set_row->[0];        my $this_admin = bka_admin_get($set_cd);        next if $this_admin->{param};        print "\n<a href=\"" .            bka_sess_url($self_url . "?code_set=$set_cd") .            "\">$set_cd</a>";        print ' ' x ( 16 - length($set_cd) );        my $nat_count = $code_counts->{$set_cd}{$bkh->{native}} || 0;        for my $lang_row ( @$lang_rows ) {            next if $lang_row->[3] eq 'd';            my $lang_cd = $lang_row->[0];            my $code_count = $code_counts->{$set_cd}{$lang_cd} || 0;            print ' ' x ( 6 - length($code_count + 0) );            print "<a href=\"" . bka_sess_url($self_url .                "?code_set=$set_cd" .                "&code_lang=$bkh->{native}" .                "&code_lang2=$lang_cd") .                "\">";            if ($code_count == $nat_count) {                printf("%d", $code_count);            } else {                printf("<span style=\"color:red\">%d</span>", $code_count);                $todo_count += 1;            }            print "</a>";            $totals->{$lang_cd} += $code_count;        }    }    # Print the language totals.    printf("\n%-16s", "");    for my $lang_row ( @$lang_rows ) {        next if $lang_row->[3] eq 'd';        my $lang_cd = $lang_row->[0];        printf("%6d", $totals->{$lang_cd});    }    print "</pre>\n";    printf("%d language sets need translation work!", $todo_count);}#       #       #       ### Display a code set#sub bka_set_display {    my $edit_lang2 = $code_lang2;    $edit_lang2 = '' unless $code_lang eq $bkh->{native};    my $set_desc = $bkh->ucwords('code_set', $bkh->{native}, $code_set);    print "<b style=\"color:#873852\">$set_desc Code Administration</b>\n";    print "<p>\n";    print "    <table border=\"0\" cellspacing=\"1\" cellpadding=\"1\">    <tr>    ";    if ($code_set eq 'code_set') {        print "        <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">            <strong>&nbsp;P&nbsp;</strong></th>        <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">            <strong>&nbsp;S&nbsp;</strong></th>        <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">            <strong>&nbsp;M&nbsp;</strong></th>        ";    } else {        print "        <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">            <strong>&nbsp;D&nbsp;</strong></th>        ";    }    print "    <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">        <strong>&nbsp;O&nbsp;</strong></th>    <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">        <strong>&nbsp;Code&nbsp;</strong></th>    <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">        <strong>&nbsp;Description&nbsp;</strong></th>    <th bgcolor=\"#000000\" STYLE=\"color:white;font-size:9pt\">        <strong>&nbsp;Edit&nbsp;</strong></th>    </tr>    ";    # Gather the codes in order and truncate the descriptions.    my $base_set = $bkh->lang_set($code_set, $code_lang);    for my $row ( @$base_set ) {        my $desc = $row->[1];        if (length($desc) > 50) {            $desc = substr($desc, 0, 50) . '...';        }        $row->[1] = DBIx::BabelKit::htmlspecialchars($desc);    }    if ($code_lang2) {        # Add the second language descriptions.        my $lang_set = $bkh->lang_set($code_set, $code_lang2);        my $lang_lookup = {};        for my $row ( @$lang_set ) {            $lang_lookup->{$row->[0]} = $row->[1];        }        undef $lang_set;        for my $row ( @$base_set ) {            my $cd = $row->[0];            my $desc = $lang_lookup->{$row->[0]};            if ($desc ne '') {                if (length($desc) > 50) {                    $desc = substr($desc, 0, 50) . '...';                }                $row->[4] = DBIx::BabelKit::htmlspecialchars($desc);            }        }        undef $lang_lookup;    }    my $colspan = ($code_set eq 'code_set') ? 5 : 3;    my $n = 0;    for my $row ( @$base_set ) {        my (            $code_code,            $code_desc,            $code_order,            $code_flag,            $code_desc2        ) = @$row;        my $bgcolor    = ($n % 2) ? "#6699CC" : "#6699FF";        $n++;        print"        <tr>        ";        if ($code_set eq 'code_set') {            my $this_admin = bka_admin_get($code_code);            my $P = $this_admin->{param} ? 'P' : '';            my $S = $this_admin->{slave} ? 'S' : '';            my $M = $this_admin->{multi} ? 'M' : '';            print "            <td bgcolor=\"$bgcolor\">&nbsp;$P&nbsp;</td>            <td bgcolor=\"$bgcolor\">&nbsp;$S&nbsp;</td>            <td bgcolor=\"$bgcolor\">&nbsp;$M&nbsp;</td>            ";        } else {            my $D = $code_flag ? 'D' : '';            print "            <td bgcolor=\"$bgcolor\">&nbsp;$D&nbsp;</td>            ";        }        print "        <td bgcolor=\"$bgcolor\">&nbsp;$code_order&nbsp;</td>        <td bgcolor=\"$bgcolor\">&nbsp;$code_code&nbsp;</td>        <td bgcolor=\"$bgcolor\">&nbsp;$code_desc&nbsp;</td>        <td bgcolor=\"$bgcolor\">&nbsp;            <a href=\"" . bka_sess_url($self_url .            "?code_set=$code_set" .            "&code_lang=$bkh->{native}" .            "&code_lang2=$edit_lang2" .            "&code_code=$code_code") . "\" style=\"color:white;\">            <strong>edit</strong></a>&nbsp;        </td>        </tr>        ";        if ($code_lang2) {            print "            <tr>            <td bgcolor=\"$bgcolor\" colspan=\"$colspan\">&nbsp;</td>            <td bgcolor=\"$bgcolor\">&nbsp;$code_desc2&nbsp;</td>            <td bgcolor=\"$bgcolor\">&nbsp;</td>            </tr>            ";        }    }    print "</table>\n";    my $count = @$base_set;    if ($count == 0) {        print("<p>No records.\n\n");    } elsif ($count == 1) {        printf("<p><b>%d</b> record.\n\n", $count);    } else {        printf("<p><b>%d</b> records.\n\n", $count);    }    if ($perm_add) {        print "<p><a href=\"" . bka_sess_url($self_url .            "?code_set=$code_set" .            "&action=New") . "\">Add new $set_desc code</a>\n";    }}#       #       #       ### Display the multilanguage code entry/update form.#sub bka_form_display {    my $code_code = shift;    $code_code = '' unless defined $code_code;    # Check for a valid code set or exit.    my $set_desc = $bkh->ucwords('code_set', $bkh->{native}, $code_set);    bka_error_exit("No Code set specified!") unless $set_desc;    print "<b style=\"color:#873852\">$set_desc Code Administration</b>\n";    print "<p>\n";    print "    <form action=\"" . bka_sess_url($self_url) . "\" method=\"post\">    <input type=\"hidden\" name=\"code_set\" value=\"$code_set\" >    <input type=\"hidden\" name=\"code_lang\" value=\"$code_lang\" >    <input type=\"hidden\" name=\"code_lang2\" value=\"$code_lang2\" >    <table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">    <tr><th></th><td>    ";    if ($code_code eq '') {        print "<b>Add $set_desc code</b>\n";    } else {        # Code navigation aids.        my $set = $bkh->lang_set($code_set, $bkh->{native});        my ( $n_of, $of_n, $next_cd, $prev_cd, $first_cd, $last_cd ) =            bka_place($set, $code_code);        print "<b>Edit $set_desc code \"$code_code\"</b>                (#$n_of of $of_n)<br>\n";        print "<a href=\"". bka_sess_url($self_url .            "?code_set=$code_set" .            "&code_lang=$code_lang" .            "&code_lang2=$code_lang2" .            "&code_code=$next_cd") . "\">Next</a> ($next_cd)\n";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -