File: lang-pascal

package info (click to toggle)
gettext 0.18.3.1-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 89,640 kB
  • ctags: 44,040
  • sloc: ansic: 349,778; sh: 54,426; makefile: 8,491; perl: 4,181; lisp: 3,369; cpp: 673; yacc: 665; java: 613; cs: 578; sed: 369; objc: 337; awk: 80; tcl: 63; pascal: 11; php: 8
file content (141 lines) | stat: -rwxr-xr-x 4,211 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#! /bin/sh

# Test of gettext facilities in the Object Pascal language.
# Assumes the following packages are installed: fpk.

# Note: This test fails with fpk 1.0.10 when an UTF-8 locale is present,
# because fpk ignores the locale's encoding. It supports only unibyte locales.
# This here is a quick workaround:
UTF8_LOCALE_UNSUPPORTED=yes

tmpfiles=""
trap 'rm -fr $tmpfiles' 1 2 3 15

tmpfiles="$tmpfiles pascalprog.pp"
cat <<\EOF > pascalprog.pp
program pascalprog;
{$mode delphi}

uses gettext, sysutils;

resourcestring
  question = '''Your command, please?'', asked the waiter.';
  currencies = '%s is replaced by %s.';

begin
  translateresourcestrings('l-pascal/%s/LC_MESSAGES/pascalprog.mo');
  writeln(question);
  writeln(format(currencies, ['FF', 'EUR']));
end.
EOF

tmpfiles="$tmpfiles pascalprog.o pascalprog.rst pascalprog"
(ppc386 pascalprog.pp) >/dev/null 2>&1 ||
(ppcx64 pascalprog.pp) >/dev/null 2>&1 ||
{
  echo "Skipping test: Pascal compiler ppc386 or ppcx64 not found"
  rm -fr $tmpfiles; exit 77
}

tmpfiles="$tmpfiles l-pascal-pascalprog.tmp l-pascal-pascalprog.pot"
: ${XGETTEXT=xgettext}
${XGETTEXT} -o l-pascal-pascalprog.tmp --omit-header --add-location pascalprog.rst
test $? = 0 || { rm -fr $tmpfiles; exit 1; }
LC_ALL=C tr -d '\r' < l-pascal-pascalprog.tmp > l-pascal-pascalprog.pot
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

tmpfiles="$tmpfiles l-pascal-pascalprog.ok"
cat <<EOF > l-pascal-pascalprog.ok
#: pascalprog.question
msgid "'Your command, please?', asked the waiter."
msgstr ""

#: pascalprog.currencies
#, object-pascal-format
msgid "%s is replaced by %s."
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} l-pascal-pascalprog.ok l-pascal-pascalprog.pot || exit 1

tmpfiles="$tmpfiles l-pascal-fr.po"
cat <<\EOF > l-pascal-fr.po
msgid ""
msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"

#: pascalprog.question
msgid "'Your command, please?', asked the waiter."
msgstr "Votre commande, s'il vous plait, dit le garon."

# Reverse the arguments.
#: pascalprog.currencies
#, object-pascal-format
msgid "%s is replaced by %s."
msgstr "%1:s remplace %0:s."
EOF

tmpfiles="$tmpfiles l-pascal-fr.po.tmp l-pascal-fr.po.new"
: ${MSGMERGE=msgmerge}
${MSGMERGE} -q -o l-pascal-fr.po.tmp l-pascal-fr.po l-pascal-pascalprog.pot
test $? = 0 || { rm -fr $tmpfiles; exit 1; }
LC_ALL=C tr -d '\r' < l-pascal-fr.po.tmp > l-pascal-fr.po.new
test $? = 0 || { rm -fr $tmpfiles; exit 1; }

: ${DIFF=diff}
${DIFF} l-pascal-fr.po l-pascal-fr.po.new || exit 1

tmpfiles="$tmpfiles l-pascal"
test -d l-pascal || mkdir l-pascal
test -d l-pascal/fr || mkdir l-pascal/fr
test -d l-pascal/fr/LC_MESSAGES || mkdir l-pascal/fr/LC_MESSAGES

: ${MSGFMT=msgfmt}
${MSGFMT} -o l-pascal/fr/LC_MESSAGES/pascalprog.mo l-pascal-fr.po

tmpfiles="$tmpfiles l-pascal-pascalprog.ok l-pascal-pascalprog.oku l-pascal-pascalprog.out"
: ${DIFF=diff}
cat <<\EOF > l-pascal-pascalprog.ok
Votre commande, s'il vous plait, dit le garon.
EUR remplace FF.
EOF
cat <<\EOF > l-pascal-pascalprog.oku
«Votre commande, s'il vous plait», dit le garçon.
EUR remplace FF.
EOF

: ${LOCALE_FR=fr_FR}
: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
if test $LOCALE_FR != none; then
  LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR ./pascalprog > l-pascal-pascalprog.out || exit 1
  : ${DIFF=diff}
  ${DIFF} l-pascal-pascalprog.ok l-pascal-pascalprog.out || exit 1
fi
if test -z "$UTF8_LOCALE_UNSUPPORTED"; then
  if test $LOCALE_FR_UTF8 != none; then
    LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR_UTF8 ./pascalprog > l-pascal-pascalprog.out || exit 1
    : ${DIFF=diff}
    ${DIFF} l-pascal-pascalprog.oku l-pascal-pascalprog.out || exit 1
  fi
  if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
    if test -f /usr/bin/localedef; then
      echo "Skipping test: no french locale is installed"
    else
      echo "Skipping test: no french locale is supported"
    fi
    rm -fr $tmpfiles; exit 77
  fi
else
  if test $LOCALE_FR = none; then
    if test -f /usr/bin/localedef; then
      echo "Skipping test: no traditional french locale is installed"
    else
      echo "Skipping test: no traditional french locale is supported"
    fi
    rm -fr $tmpfiles; exit 77
  fi
fi

rm -fr $tmpfiles

exit 0