(file) Return to xopen-msg.sed CVS log (file) (dir) Up to [RizwankCVS] / testProject / intl

  1 rizwank 1.1 # po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
  2             # Copyright (C) 1995 Free Software Foundation, Inc.
  3             # Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
  4             #
  5             # This program is free software; you can redistribute it and/or modify
  6             # it under the terms of the GNU General Public License as published by
  7             # the Free Software Foundation; either version 2, or (at your option)
  8             # any later version.
  9             #
 10             # This program is distributed in the hope that it will be useful,
 11             # but WITHOUT ANY WARRANTY; without even the implied warranty of
 12             # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 13             # GNU General Public License for more details.
 14             #
 15             # You should have received a copy of the GNU General Public License
 16             # along with this program; if not, write to the Free Software
 17             # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 18             #
 19             #
 20             # The first directive in the .msg should be the definition of the
 21             # message set number.  We use always set number 1.
 22 rizwank 1.1 #
 23             1 {
 24               i\
 25             $set 1 # Automatically created by po2msg.sed
 26               h
 27               s/.*/0/
 28               x
 29             }
 30             #
 31             # We copy all comments into the .msg file.  Perhaps they can help.
 32             #
 33             /^#/ s/^#[ 	]*/$ /p
 34             #
 35             # We copy the original message as a comment into the .msg file.
 36             #
 37             /^msgid/ {
 38             # Does not work now
 39             #  /"$/! {
 40             #    s/\\$//
 41             #    s/$/ ... (more lines following)"/
 42             #  }
 43 rizwank 1.1   s/^msgid[ 	]*"\(.*\)"$/$ Original Message: \1/
 44               p
 45             }
 46             #
 47             # The .msg file contains, other then the .po file, only the translations
 48             # but each given a unique ID.  Starting from 1 and incrementing by 1 for
 49             # each message we assign them to the messages.
 50             # It is important that the .po file used to generate the cat-id-tbl.c file
 51             # (with po-to-tbl) is the same as the one used here.  (At least the order
 52             # of declarations must not be changed.)
 53             #
 54             /^msgstr/ {
 55               s/msgstr[ 	]*"\(.*\)"/\1/
 56               x
 57             # The following nice solution is by
 58             # Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
 59               td
 60             # Increment a decimal number in pattern space.
 61             # First hide trailing `9' digits.
 62               :d
 63               s/9\(_*\)$/_\1/
 64 rizwank 1.1   td
 65             # Assure at least one digit is available.
 66               s/^\(_*\)$/0\1/
 67             # Increment the last digit.
 68               s/8\(_*\)$/9\1/
 69               s/7\(_*\)$/8\1/
 70               s/6\(_*\)$/7\1/
 71               s/5\(_*\)$/6\1/
 72               s/4\(_*\)$/5\1/
 73               s/3\(_*\)$/4\1/
 74               s/2\(_*\)$/3\1/
 75               s/1\(_*\)$/2\1/
 76               s/0\(_*\)$/1\1/
 77             # Convert the hidden `9' digits to `0's.
 78               s/_/0/g
 79               x
 80             # Bring the line in the format `<number> <message>'
 81               G
 82               s/^[^\n]*$/& /
 83               s/\(.*\)\n\([0-9]*\)/\2 \1/
 84             # Clear flag from last substitution.
 85 rizwank 1.1   tb
 86             # Append the next line.
 87               :b
 88               N
 89             # Look whether second part is a continuation line.
 90               s/\(.*\n\)"\(.*\)"/\1\2/
 91             # Yes, then branch.
 92               ta
 93               P
 94               D
 95             # Note that `D' includes a jump to the start!!
 96             # We found a continuation line.  But before printing insert '\'.
 97               :a
 98               s/\(.*\)\(\n.*\)/\1\\\2/
 99               P
100             # We cannot use the sed command `D' here
101               s/.*\n\(.*\)/\1/
102               tb
103             }
104             d

Rizwan Kassim
Powered by
ViewCVS 0.9.2