File: lang-pascal

package info (click to toggle)
gettext 0.23.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 168,104 kB
  • sloc: ansic: 532,579; sh: 68,252; perl: 28,011; makefile: 9,066; lisp: 3,184; yacc: 1,055; java: 615; cs: 589; cpp: 397; objc: 343; sed: 79; tcl: 63; xml: 40; pascal: 11; php: 7; awk: 7
file content (133 lines) | stat: -rwxr-xr-x 3,559 bytes parent folder | download | duplicates (2)
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
#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

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

# Note: This test fails with fpk 1.0.10 ... 3.0.0 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

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('%s/LC_MESSAGES/pascalprog.mo');
  writeln(question);
  writeln(format(currencies, ['FF', 'EUR']));
end.
EOF

(fpc pascalprog.pp) >/dev/null 2>&1 ||
(ppc386 pascalprog.pp) >/dev/null 2>&1 ||
(ppcx64 pascalprog.pp) >/dev/null 2>&1 ||
{
  echo "Skipping test: Pascal compiler fpc or ppc386 or ppcx64 not found"
  Exit 77
}

: ${XGETTEXT=xgettext}
# fpc 3.0.0 or newer produces a .rsj file instead of a .rst file.
if test -f pascalprog.rsj; then
  suffix=rsj
else
  suffix=rst
fi
${XGETTEXT} -o pascalprog.tmp --omit-header --add-location pascalprog.${suffix} || Exit 1
LC_ALL=C tr -d '\r' < pascalprog.tmp > pascalprog.pot || Exit 1

cat <<\EOF > 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} pascalprog.ok pascalprog.pot || Exit 1

cat <<\EOF > 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

: ${MSGMERGE=msgmerge}
${MSGMERGE} -q -o fr.po.tmp fr.po pascalprog.pot || Exit 1
LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || Exit 1

: ${DIFF=diff}
${DIFF} fr.po fr.po.new || Exit 1

test -d fr || mkdir fr
test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES

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

: ${DIFF=diff}
cat <<\EOF > pascalprog.ok
Votre commande, s'il vous plait, dit le garon.
EUR remplace FF.
EOF
cat <<\EOF > 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
  prepare_locale_ fr $LOCALE_FR
  LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR ./pascalprog > pascalprog.out || Exit 1
  : ${DIFF=diff}
  ${DIFF} pascalprog.ok pascalprog.out || Exit 1
fi
if test -z "$UTF8_LOCALE_UNSUPPORTED"; then
  if test $LOCALE_FR_UTF8 != none; then
    prepare_locale_ fr $LOCALE_FR_UTF8
    LANGUAGE= LC_ALL= LC_MESSAGES= LC_CTYPE= LANG=$LOCALE_FR_UTF8 ./pascalprog > pascalprog.out || Exit 1
    : ${DIFF=diff}
    ${DIFF} pascalprog.oku 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
    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
    Exit 77
  fi
fi

Exit 0