source: trunk/devel/po2php.awk

Last change on this file was 1103, checked in by moo, 2 years ago

htdocs: fixed po2php. add translation for diagnosis

  • Property svn:executable set to *
File size: 895 bytes
Line 
1#!/usr/bin/awk -f
2BEGIN {
3    print "<?php";
4    print "// auto generated, do not modify";
5    print "$strings += array(";
6}
7
8function flushOut() {
9    if (section) {
10        if (section == "msgstr") {
11            if (msgid == "") {
12            }
13            else if (msgstr == "") {
14            }
15            else {
16                print "\t\t\""msgid"\"";
17                print "\t\t=> \""msgstr"\",";
18            }
19        }
20        else {
21            print "unexpected section " section;
22            exit 1;
23        }
24        section = null;
25    }
26}
27
28/^msgid ".*"$/ {
29    $0 = gensub(/^msgid "(.*)"$/, "\\1", $0);
30
31    section = "msgid";
32    msgid = $0;
33    next;
34}
35/^msgstr ".*"$/ {
36    $0 = gensub(/^msgstr "(.*)"$/, "\\1", $0);
37
38    section = "msgstr";
39    msgstr = $0;
40    next;
41}
42/^".*"$/ {
43    $0 = gensub(/^"(.*)"$/, "\\1", $0);
44    if (section == "msgid") {
45        msgid = msgid $0;
46    }
47    else {
48        msgstr = msgstr $0;
49    }
50    next;
51}
52/^$/ {
53    flushOut();
54    next;
55}
56/^#/ {
57    next;
58}
59/./ {
60    print "error", $0;
61    exit 1;
62}
63END {
64    flushOut();
65    print "\t\t);";
66    print "";
67}
Note: See TracBrowser for help on using the repository browser.