diff --git a/build.tk b/build.tk index 88fe7a5a..bb7d9879 100755 --- a/build.tk +++ b/build.tk @@ -40,7 +40,6 @@ proc SetConfigDefaults {} { set Config(TIMESEP) ":" set Config(NORTHERN_HEMISPHERE) 1 set Config(WESTERN_HEMISPHERE) 1 - set Config(LANGUAGE) "English" set Config(INST_DIR) "/usr/local/bin" set Config(MAN_DIR) "/usr/local/share/man" } @@ -242,32 +241,6 @@ proc CreateOptionsDialog { w } { grid configure $w.timelabel -row 2 -column 0 -sticky e grid configure $w.time -row 2 -column 1 -sticky nsew - - label $w.langlabel -text "Language: " - menubutton $w.lang -text $Config(LANGUAGE) -indicatoron 1 -relief raised \ - -menu $w.lang.menu - menu $w.lang.menu -tearoff 0 - foreach lang { - "Brazilian Portuguese" - "Danish" - "Dutch" - "English" - "Finnish" - "French" - "German" - "Italian" - "Norwegian" - "Polish" - "Romanian" - "Spanish" - "Icelandic" - } { - $w.lang.menu add command -label $lang -command [list $w.lang configure -text $lang] - } - - grid configure $w.langlabel -row 3 -column 0 -sticky e - grid configure $w.lang -row 3 -column 1 -sticky nsew - } #*********************************************************************** @@ -491,32 +464,16 @@ proc CreateCustomH {} { # %RETURNS: # Nothing # %DESCRIPTION: -# Runs "make" with appropriate language definitions +# Runs "make" #*********************************************************************** proc CallMake {} { global Options - set lang [$Options.lang cget -text] - switch -- $lang { - "German" { set lang GERMAN } - "Dutch" { set lang DUTCH } - "Finnish" { set lang FINNISH } - "French" { set lang FRENCH } - "Norwegian" { set lang NORWEGIAN } - "Danish" { set lang DANISH } - "Polish" { set lang POLISH } - "Brazilian Portuguese" { set lang BRAZPORT } - "Italian" { set lang ITALIAN } - "Romanian" { set lang ROMANIAN } - "Spanish" { set lang SPANISH } - "Icelandic" { set lang ICELANDIC } - default { set lang ENGLISH } - } set nproc 0 catch { set nproc [exec nproc] } if { $nproc != 0 } { - RunCommand "make -j $nproc \"LANGDEF=-DLANG=$lang\"" + RunCommand "make -j $nproc" } else { - RunCommand "make \"LANGDEF=-DLANG=$lang\"" + RunCommand "make" } } @@ -786,7 +743,6 @@ proc SetConfigFromRemind {} { QueryRemind $rem LOCATION {$Location} QueryRemind $rem DATESEP {$DateSep} QueryRemind $rem TIMESEP {$TimeSep} - QueryRemind $rem LANGUAGE {language()} set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))] set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))] diff --git a/man/remind.1.in b/man/remind.1.in index 62abc3e9..04227aee 100644 --- a/man/remind.1.in +++ b/man/remind.1.in @@ -3495,12 +3495,10 @@ date part is used.) Note that any local \fBOMIT\fR or \fBOMITFUNC\fR clauses are \fInot\fR taken into account by this function. .TP .B language() -Returns a \fBSTRING\fR naming the language supported by \fBRemind\fR. -(See "SUPPORT FOR OTHER LANGUAGES") By default, \fBRemind\fR is compiled -to support English messages, so this function returns "English". For -other languages, this function will return the English name of the -language (e.g. "German") Note that \fBlanguage()\fR is not available -in versions of \fBRemind\fR prior to 03.00.02. +Returns a \fBSTRING\fR naming the compiled-in language supported by +\fBRemind\fR. Remind used to support compiled-in support for other +languages, but now all localization is done at run-time. As such, +this function always returnes "English". .TP .B localtoutc(q_datetime) Given a \fBDATETIME\fR object interpreted in the local time zone, return @@ -5227,55 +5225,6 @@ You can also define a function on the command line by using: \fB\-i\fR\fIfunc\fR(\fIargs\fR)=\fIdefinition\fR .PP Be sure to protect special characters from shell interpretation. -.SH THE TRANSLATION TABLE -.PP -To assist with localizing reminder files, \fBRemind\fR maintains a -table of translations. This is simple a lookup table that maps one -string (the original string) to a new string (the translated string.) -When \fBRemind\fR starts executing, the translation table is empty. -.PP -To add a message to the translation table, use the \fBTRANSLATE\fR -command (which may be abbreviated to \fBTRANS\fR.) The \fBTRANSLATE\fR -command must be followed by two quoted strings, separated from each -other and from the command by whitespace. For example, a Dutch -language file might contain something like this: -.PP -.nf - TRANSLATE "New Moon" "Nieuwe maan" - TRANSLATE "First Quarter" "Eerste kwartier" - TRANSLATE "Full Moon" "Volle maan" - TRANSLATE "Last Quarter" "Laatste kwartier" -.fi -.PP -To actually use the translation table, make use of the \fB_\fR built-in -function, as follows: -.PP -.nf - REM NOQUEUE [moondatetime(0)] MSG [_("New Moon")] (%2) - REM NOQUEUE [moondatetime(1)] MSG [_("First Quarter")] (%2) - REM NOQUEUE [moondatetime(2)] MSG [_("Full Moon")] (%2) - REM NOQUEUE [moondatetime(3)] MSG [_("Last Quarter")] (%2) -.fi -.PP -By using \fBTRANSLATE\fR and \fB_\fR judiciously, you can make your -reminder files easy to translate. -.PP -\fBTRANSLATE\fR has three additional forms: If it is followed -by \fIone\fR quoted string instead of two, then \fBRemind\fR deletes the -translation table entry for that string. If it is followed by -the keyword \fBDUMP\fR, then \fBRemind\fR dumps all translation table entries -to standard output. And if it is followed by \fBCLEAR\fR, then -\fBRemind\fR deletes all of the translation table entries. -.PP -Note that if you \fBSET\fR various translation-related system -variables such as \fB$Monday\fR, \fB$December\fR, \fB$Ago\fR, etc, -then \fBRemind\fR \fIalso\fR makes a corresponding translation -table entry automatically. This is done for all of the translation-related -system variables \fIexcept for\fR \fB$Hplu\fR and \fB$Mplu\fR. -.PP -The converse does not apply; creating a translation table entry for -"December" does not automatically set \fB$December\fR. - .SH MORE ABOUT POSTSCRIPT .PP The \fBPS\fR and \fBPSFILE\fR reminders pass PostScript code directly @@ -5593,22 +5542,13 @@ error messages. For an example of this, define the following: .PP .SH COMPILE-TIME SUPPORT FOR OTHER LANGUAGES .PP -Your version of \fBRemind\fR may have been compiled to support a -language other than English. This support may or may not be complete - -for example, all error and usage messages may still be in English. -However, at a minimum, non-English versions of \fBRemind\fR will -output names of months and weekdays in the selected language. Also, -the substitution mechanism will substitute constructs suitable for the -selected language rather than for English. -.PP -Note that a non-English version of \fBRemind\fR will accept \fIonly\fR -English names of weekdays and months in a reminder script. +Remind used to support compile-time localization to other languages, +but no longer does. All localization is now done at run-time. .PP .SH RUN-TIME SUPPORT FOR OTHER LANGUAGES .PP -\fBRemind\fR has run-time support for other languages, and it is -expected that compile-time support will be deprecated in favour of -run-time support. +\fBRemind\fR has run-time support for other languages, and +compile-time support has been removed in favour of run-time support. .PP A number of system variables let you translate various phrases to other languages. These system variables are: @@ -5726,6 +5666,54 @@ If you use a \fB%{name}\fR sequence and the function \fBsubst_\fIname\fR is not defined or returns an error, then \fB%{name}\fR is replaced with the empty string. .PP +.SH THE TRANSLATION TABLE +.PP +To assist with localizing reminder files, \fBRemind\fR maintains a +table of translations. This is simple a lookup table that maps one +string (the original string) to a new string (the translated string.) +When \fBRemind\fR starts executing, the translation table is empty. +.PP +To add a message to the translation table, use the \fBTRANSLATE\fR +command (which may be abbreviated to \fBTRANS\fR.) The \fBTRANSLATE\fR +command must be followed by two quoted strings, separated from each +other and from the command by whitespace. For example, a Dutch +language file might contain something like this: +.PP +.nf + TRANSLATE "New Moon" "Nieuwe maan" + TRANSLATE "First Quarter" "Eerste kwartier" + TRANSLATE "Full Moon" "Volle maan" + TRANSLATE "Last Quarter" "Laatste kwartier" +.fi +.PP +To actually use the translation table, make use of the \fB_\fR built-in +function, as follows: +.PP +.nf + REM NOQUEUE [moondatetime(0)] MSG [_("New Moon")] (%2) + REM NOQUEUE [moondatetime(1)] MSG [_("First Quarter")] (%2) + REM NOQUEUE [moondatetime(2)] MSG [_("Full Moon")] (%2) + REM NOQUEUE [moondatetime(3)] MSG [_("Last Quarter")] (%2) +.fi +.PP +By using \fBTRANSLATE\fR and \fB_\fR judiciously, you can make your +reminder files easy to translate. +.PP +\fBTRANSLATE\fR has three additional forms: If it is followed +by \fIone\fR quoted string instead of two, then \fBRemind\fR deletes the +translation table entry for that string. If it is followed by +the keyword \fBDUMP\fR, then \fBRemind\fR dumps all translation table entries +to standard output. And if it is followed by \fBCLEAR\fR, then +\fBRemind\fR deletes all of the translation table entries. +.PP +Note that if you \fBSET\fR various translation-related system +variables such as \fB$Monday\fR, \fB$December\fR, \fB$Ago\fR, etc, +then \fBRemind\fR \fIalso\fR makes a corresponding translation +table entry automatically. This is done for all of the translation-related +system variables \fIexcept for\fR \fB$Hplu\fR and \fB$Mplu\fR. +.PP +The converse does not apply; creating a translation table entry for +"December" does not automatically set \fB$December\fR. .SH LANGUAGE PACKS .PP \fBRemind\fR ships with a number of language packs, which are simply reminder @@ -6259,16 +6247,15 @@ Do not hard-code the above directory in your reminder files. Instead, use the value of the $SysInclude system variable. .SH AUTHOR .PP -Dianne Skoll wrote \fBRemind\fR. The moon code -was copied largely unmodified from "moontool" by John Walker. The -sunrise and sunset functions use ideas from programs by Michael -Schwartz and Marc T. Kaufman. The Hebrew calendar support was taken -from "hdate" by Amos Shapir. OS/2 support was done by Darrel -Hankerson, Russ Herman, and Norman Walsh. The supported -languages and their translators are listed below. Languages marked -"complete" support error messages and usage instructions in that -language; all others only support the substitution filter mechanism -and month/day names. +Dianne Skoll wrote \fBRemind\fR. The moon code was +copied largely unmodified from "moontool" by John Walker. The sunrise +and sunset functions use ideas from programs by Michael Schwartz and +Marc T. Kaufman. The Hebrew calendar support was taken from "hdate" +by Amos Shapir. OS/2 support was done by Darrel Hankerson, Russ +Herman, and Norman Walsh. The supported languages and their +translators are listed below. Languages marked "complete" support +error messages in that language; all others only support the +substitution filter mechanism and month/day names. .PP \fBGerman\fR -- Wolfgang Thronicke diff --git a/src/Makefile.in b/src/Makefile.in index e2ae2c13..bff2f735 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -32,7 +32,7 @@ REMINDSRCS= calendar.c dedupe.c dynbuf.c dorem.c dosubst.c expr.c \ sort.c token.c trans.c trigger.c userfns.c utils.c var.c REMINDHDRS=config.h custom.h dynbuf.h err.h globals.h hashtab.h \ - lang.h md5.h protos.h rem2ps.h types.h version.h + md5.h protos.h rem2ps.h types.h version.h REMINDOBJS= $(REMINDSRCS:.c=.o) all: remind rem2ps @@ -41,7 +41,7 @@ test: all @sh ../tests/test-rem .c.o: - @CC@ -c @CPPFLAGS@ @CFLAGS@ @DEFS@ $(CEXTRA) $(LANGDEF) -DSYSDIR=$(datarootdir)/remind -I. -I$(srcdir) $< + @CC@ -c @CPPFLAGS@ @CFLAGS@ @DEFS@ $(CEXTRA) -DSYSDIR=$(datarootdir)/remind -I. -I$(srcdir) $< $(REMINDOBJS): $(REMINDHDRS) diff --git a/src/calendar.c b/src/calendar.c index bce4df7d..d37b362c 100644 --- a/src/calendar.c +++ b/src/calendar.c @@ -32,7 +32,6 @@ #include #endif -#include "lang.h" #include "types.h" #include "protos.h" #include "globals.h" diff --git a/src/compare-language-mods.pl b/src/compare-language-mods.pl deleted file mode 100755 index 04bbc73c..00000000 --- a/src/compare-language-mods.pl +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; - -my $language_map = { - en => 'ENGLISH', - de => 'GERMAN', - nl => 'DUTCH', - fi => 'FINNISH', - fr => 'FRENCH', - 'no' => 'NORWEGIAN', - da => 'DANISH', - pl => 'POLISH', - is => 'ICELANDIC', - pt => 'BRAZPORT', - it => 'ITALIAN', - ro => 'ROMANIAN', - es => 'SPANISH', -}; - -if (!$ARGV[0]) { - print STDERR "Usage: $0 lang_code\n"; - exit(1); -} - -my $lang = $ARGV[0]; -my $rc = 0; -if ($lang eq 'all') { - foreach my $l (sort(keys(%$language_map))) { - if (check($l)) { - $rc = 1; - } - } -} else { - $rc = check($lang); -} - -exit($rc); - -sub check -{ - my ($lang) = @_; - if (!exists($language_map->{$lang})) { - print STDERR "$lang is not a valid language.\n"; - return 1; - } - - my $flag = $language_map->{$lang}; - print STDERR "Testing for: $lang - $flag.\n"; - my_sys("make clean > /dev/null 2>&1") && die("make clean failed"); - my_sys("make -j18 all LANGDEF=-DLANG=$flag > /dev/null 2>&1") && die("make all failed"); - my_sys("./remind -q -r ../tests/tstlang.rem 2022-03-23 11:44 > test-$lang-compiled.out 2>&1"); - - my_sys("make clean > /dev/null 2>&1") && die("make clean failed"); - my_sys("make -j18 all > /dev/null 2>&1") && die("make all failed"); - my_sys("./remind -q -r -ii=\\\"../include/lang/$lang.rem\\\" ../tests/tstlang.rem 2022-03-23 11:44 > test-$lang-runtime.out 2>&1"); - - my $rc = my_sys("cmp test-$lang-compiled.out test-$lang-runtime.out > /dev/null 2>&1"); - if ($rc == 0) { - print STDERR "Congrats! Compiled and runtime language output matches for $lang.\n"; - } else { - print STDERR "Whoops. Compiled and runtime language output differs for $lang.\n" - } - return $rc; -} - -exit(0); - -sub my_sys -{ - #print STDERR "Running: " . join(' ', @_) . "\n"; - return system(@_); -} diff --git a/src/custom.h b/src/custom.h index 5e63e2f7..9cfe9495 100644 --- a/src/custom.h +++ b/src/custom.h @@ -22,8 +22,8 @@ /* The default values are initially set to the city hall in Ottawa, */ /* Ontario, Canada. */ /*---------------------------------------------------------------------*/ -#define DEFAULT_LATITUDE 45.420556 -#define DEFAULT_LONGITUDE -75.689722 +#define DEFAULT_LATITUDE 45.42055555555555 +#define DEFAULT_LONGITUDE -75.68944444444445 #define LOCATION "Ottawa" /*---------------------------------------------------------------------*/ diff --git a/src/dosubst.c b/src/dosubst.c index 86e385cc..95f41e65 100644 --- a/src/dosubst.c +++ b/src/dosubst.c @@ -93,26 +93,14 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, mdiff = adiff % 60; hdiff = adiff / 60; -#ifdef L_MPLU_OVER - L_MPLU_OVER -#else /* L_MPLU_OVER */ mplu = (mdiff == 1 ? "" : DynamicMplu); -#endif /* L_MPLU_OVER */ - -#ifdef L_HPLU_OVER - L_HPLU_OVER -#else /* L_HPLU_OVER */ hplu = (hdiff == 1 ? "" : DynamicHplu); -#endif /* L_HPLU_OVER */ when = (tdiff < 0) ? DynamicAgo : DynamicFromnow; h = tim / 60; min = tim % 60; -#ifdef L_AMPM_OVERRIDE - L_AMPM_OVERRIDE (pm, h) -#else r = -1; func = FindUserFunc("subst_ampm"); if (func && check_subst_args(func, 1)) { @@ -134,15 +122,12 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, if (r != OK) { pm = (h < 12) ? DynamicAm : DynamicPm; } -#endif + hh = (h == 12) ? 12 : h % 12; ch = curtime / 60; cmin = curtime % 60; -#ifdef L_AMPM_OVERRIDE - L_AMPM_OVERRIDE (cpm, ch) -#else r = -1; func = FindUserFunc("subst_ampm"); if (func && check_subst_args(func, 1)) { @@ -164,12 +149,8 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, if (r != OK) { cpm = (h < 12) ? DynamicAm : DynamicPm; } -#endif chh = (ch == 12) ? 12 : ch % 12; -#ifdef L_ORDINAL_OVERRIDE - L_ORDINAL_OVERRIDE; -#else func = FindUserFunc("subst_ordinal"); if (func && check_subst_args(func, 1)) { snprintf(s, sizeof(s), "subst_ordinal(%d)", d); @@ -202,7 +183,6 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, default: plu = "th"; break; } } -#endif while(1) { c = ParseChar(p, &err, 0); @@ -318,45 +298,19 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, if (diff <= 1) { switch(UPPER(c)) { -#ifndef L_NOTOMORROW_A case 'A': -#endif -#ifndef L_NOTOMORROW_B case 'B': -#endif -#ifndef L_NOTOMORROW_C case 'C': -#endif -#ifndef L_NOTOMORROW_E case 'E': -#endif -#ifndef L_NOTOMORROW_F case 'F': -#endif -#ifndef L_NOTOMORROW_G case 'G': -#endif -#ifndef L_NOTOMORROW_H case 'H': -#endif -#ifndef L_NOTOMORROW_I case 'I': -#endif -#ifndef L_NOTOMORROW_J case 'J': -#endif -#ifndef L_NOTOMORROW_K case 'K': -#endif -#ifndef L_NOTOMORROW_L case 'L': -#endif -#ifndef L_NOTOMORROW_U case 'U': -#endif -#ifndef L_NOTOMORROW_V case 'V': -#endif snprintf(s, sizeof(s), "%s", (diff ? DynamicTomorrow: DynamicToday)); SHIP_OUT(s); done = 1; @@ -393,9 +347,6 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, } switch(UPPER(c)) { case 'A': -#ifdef L_A_OVER - L_A_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %d %s, %d", get_day_name(dse%7), d, get_month_name(m), y); @@ -403,112 +354,76 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, snprintf(s, sizeof(s), "%s %s, %d %s, %d", DynamicOn, get_day_name(dse%7), d, get_month_name(m), y); } -#endif SHIP_OUT(s); break; case 'B': -#ifdef L_B_OVER - L_B_OVER -#else - snprintf(s, sizeof(s), L_INXDAYS, diff); -#endif + snprintf(s, sizeof(s), "in %d days' time", diff); SHIP_OUT(s); break; case 'C': -#ifdef L_C_OVER - L_C_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s", get_day_name(dse%7)); } else { snprintf(s, sizeof(s), "%s %s", DynamicOn, get_day_name(dse%7)); } -#endif SHIP_OUT(s); break; case 'D': -#ifdef L_D_OVER - L_D_OVER -#else - snprintf(s, sizeof(s), "%d", d); -#endif + snprintf(s, sizeof(s), "%d", d); SHIP_OUT(s); break; case 'E': -#ifdef L_E_OVER - L_E_OVER -#else - if (altmode == '*' || !strcmp(DynamicOn, "")) { - snprintf(s, sizeof(s), "%02d%c%02d%c%04d", d, DateSep, - m+1, DateSep, y); - } else { - snprintf(s, sizeof(s), "%s %02d%c%02d%c%04d", DynamicOn, d, DateSep, - m+1, DateSep, y); - } -#endif + if (altmode == '*' || !strcmp(DynamicOn, "")) { + snprintf(s, sizeof(s), "%02d%c%02d%c%04d", d, DateSep, + m+1, DateSep, y); + } else { + snprintf(s, sizeof(s), "%s %02d%c%02d%c%04d", DynamicOn, d, DateSep, + m+1, DateSep, y); + } SHIP_OUT(s); break; case 'F': -#ifdef L_F_OVER - L_F_OVER -#else - if (altmode == '*' || !strcmp(DynamicOn, "")) { - snprintf(s, sizeof(s), "%02d%c%02d%c%04d", m+1, DateSep, d, DateSep, y); - } else { - snprintf(s, sizeof(s), "%s %02d%c%02d%c%04d", DynamicOn, m+1, DateSep, d, DateSep, y); - } -#endif + if (altmode == '*' || !strcmp(DynamicOn, "")) { + snprintf(s, sizeof(s), "%02d%c%02d%c%04d", m+1, DateSep, d, DateSep, y); + } else { + snprintf(s, sizeof(s), "%s %02d%c%02d%c%04d", DynamicOn, m+1, DateSep, d, DateSep, y); + } SHIP_OUT(s); break; case 'G': -#ifdef L_G_OVER - L_G_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %d %s", get_day_name(dse%7), d, get_month_name(m)); } else { snprintf(s, sizeof(s), "%s %s, %d %s", DynamicOn, get_day_name(dse%7), d, get_month_name(m)); } -#endif SHIP_OUT(s); break; case 'H': -#ifdef L_H_OVER - L_H_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%02d%c%02d", d, DateSep, m+1); } else { snprintf(s, sizeof(s), "%s %02d%c%02d", DynamicOn, d, DateSep, m+1); } -#endif SHIP_OUT(s); break; case 'I': -#ifdef L_I_OVER - L_I_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%02d%c%02d", m+1, DateSep, d); } else { snprintf(s, sizeof(s), "%s %02d%c%02d", DynamicOn, m+1, DateSep, d); } -#endif SHIP_OUT(s); break; case 'J': -#ifdef L_J_OVER - L_J_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %s %d%s, %d", get_day_name(dse%7), get_month_name(m), d, plu, y); @@ -516,14 +431,10 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, snprintf(s, sizeof(s), "%s %s, %s %d%s, %d", DynamicOn, get_day_name(dse%7), get_month_name(m), d, plu, y); } -#endif SHIP_OUT(s); break; case 'K': -#ifdef L_K_OVER - L_K_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %s %d%s", get_day_name(dse%7), get_month_name(m), d, plu); @@ -531,100 +442,60 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, snprintf(s, sizeof(s), "%s %s, %s %d%s", DynamicOn, get_day_name(dse%7), get_month_name(m), d, plu); } -#endif SHIP_OUT(s); break; case 'L': -#ifdef L_L_OVER - L_L_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%04d%c%02d%c%02d", y, DateSep, m+1, DateSep, d); } else { snprintf(s, sizeof(s), "%s %04d%c%02d%c%02d", DynamicOn, y, DateSep, m+1, DateSep, d); } -#endif SHIP_OUT(s); break; case 'M': -#ifdef L_M_OVER - L_M_OVER -#else snprintf(s, sizeof(s), "%s", get_month_name(m)); -#endif SHIP_OUT(s); break; case 'N': -#ifdef L_N_OVER - L_N_OVER -#else snprintf(s, sizeof(s), "%d", m+1); -#endif SHIP_OUT(s); break; case 'O': -#ifdef L_O_OVER - L_O_OVER -#else if (RealToday == DSEToday) snprintf(s, sizeof(s), " (%s)", DynamicToday); else *s = 0; -#endif - SHIP_OUT(s); + SHIP_OUT(s); break; case 'P': -#ifdef L_P_OVER - L_P_OVER -#else - snprintf(s, sizeof(s), "%s", (diff == 1 ? "" : L_PLURAL)); -#endif + snprintf(s, sizeof(s), "%s", (diff == 1 ? "" : "s")); SHIP_OUT(s); break; case 'Q': -#ifdef L_Q_OVER - L_Q_OVER -#else snprintf(s, sizeof(s), "%s", (diff == 1 ? "'s" : "s'")); -#endif SHIP_OUT(s); break; case 'R': -#ifdef L_R_OVER - L_R_OVER -#else snprintf(s, sizeof(s), "%02d", d); -#endif SHIP_OUT(s); break; case 'S': -#ifdef L_S_OVER - L_S_OVER -#else snprintf(s, sizeof(s), "%s", plu); -#endif SHIP_OUT(s); break; case 'T': -#ifdef L_T_OVER - L_T_OVER -#else snprintf(s, sizeof(s), "%02d", m+1); -#endif SHIP_OUT(s); break; case 'U': -#ifdef L_U_OVER - L_U_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %d%s %s, %d", get_day_name(dse%7), d, plu, get_month_name(m), y); @@ -632,14 +503,10 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, snprintf(s, sizeof(s), "%s %s, %d%s %s, %d", DynamicOn, get_day_name(dse%7), d, plu, get_month_name(m), y); } -#endif SHIP_OUT(s); break; case 'V': -#ifdef L_V_OVER - L_V_OVER -#else if (altmode == '*' || !strcmp(DynamicOn, "")) { snprintf(s, sizeof(s), "%s, %d%s %s", get_day_name(dse%7), d, plu, get_month_name(m)); @@ -647,50 +514,30 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, snprintf(s, sizeof(s), "%s %s, %d%s %s", DynamicOn, get_day_name(dse%7), d, plu, get_month_name(m)); } -#endif SHIP_OUT(s); break; case 'W': -#ifdef L_W_OVER - L_W_OVER -#else snprintf(s, sizeof(s), "%s", get_day_name(dse%7)); -#endif SHIP_OUT(s); break; case 'X': -#ifdef L_X_OVER - L_X_OVER -#else snprintf(s, sizeof(s), "%d", diff); -#endif SHIP_OUT(s); break; case 'Y': -#ifdef L_Y_OVER - L_Y_OVER -#else snprintf(s, sizeof(s), "%d", y); -#endif SHIP_OUT(s); break; case 'Z': -#ifdef L_Z_OVER - L_Z_OVER -#else snprintf(s, sizeof(s), "%d", y % 100); -#endif SHIP_OUT(s); break; case '1': -#ifdef L_1_OVER - L_1_OVER -#else if (tdiff == 0) snprintf(s, sizeof(s), "%s", DynamicNow); else if (hdiff == 0) @@ -700,124 +547,74 @@ int DoSubst(ParsePtr p, DynamicBuffer *dbuf, Trigger *t, TimeTrig *tt, int dse, else snprintf(s, sizeof(s), "%d %s%s %s %d %s%s %s", hdiff, DynamicHour, hplu, DynamicAnd, mdiff, DynamicMinute, mplu, when); -#endif SHIP_OUT(s); break; case '2': -#ifdef L_2_OVER - L_2_OVER -#else if (altmode == '*') { snprintf(s, sizeof(s), "%d%c%02d%s", hh, TimeSep, min, pm); } else { snprintf(s, sizeof(s), "%s %d%c%02d%s", DynamicAt, hh, TimeSep, min, pm); } -#endif SHIP_OUT(s); break; case '3': -#ifdef L_3_OVER - L_3_OVER -#else - if (altmode == '*') { snprintf(s, sizeof(s), "%02d%c%02d", h, TimeSep, min); } else { snprintf(s, sizeof(s), "%s %02d%c%02d", DynamicAt, h, TimeSep, min); } -#endif SHIP_OUT(s); break; case '4': -#ifdef L_4_OVER - L_4_OVER -#else snprintf(s, sizeof(s), "%d", tdiff); -#endif SHIP_OUT(s); break; case '5': -#ifdef L_5_OVER - L_5_OVER -#else snprintf(s, sizeof(s), "%d", adiff); -#endif SHIP_OUT(s); break; case '6': -#ifdef L_6_OVER - L_6_OVER -#else snprintf(s, sizeof(s), "%s", when); -#endif SHIP_OUT(s); break; case '7': -#ifdef L_7_OVER - L_7_OVER -#else snprintf(s, sizeof(s), "%d", hdiff); -#endif SHIP_OUT(s); break; case '8': -#ifdef L_8_OVER - L_8_OVER -#else snprintf(s, sizeof(s), "%d", mdiff); -#endif SHIP_OUT(s); break; case '9': -#ifdef L_9_OVER - L_9_OVER -#else snprintf(s, sizeof(s), "%s", mplu); -#endif SHIP_OUT(s); break; case '0': -#ifdef L_0_OVER - L_0_OVER -#else snprintf(s, sizeof(s), "%s", hplu); -#endif SHIP_OUT(s); break; case '!': -#ifdef L_BANG_OVER - L_BANG_OVER -#else snprintf(s, sizeof(s), "%s", (tdiff >= 0 ? DynamicIs : DynamicWas)); -#endif SHIP_OUT(s); break; case '@': -#ifdef L_AT_OVER - L_AT_OVER -#else snprintf(s, sizeof(s), "%d%c%02d%s", chh, TimeSep, cmin, cpm); -#endif SHIP_OUT(s); break; case '#': -#ifdef L_HASH_OVER - L_HASH_OVER -#else snprintf(s, sizeof(s), "%02d%c%02d", ch, TimeSep, cmin); -#endif SHIP_OUT(s); break; diff --git a/src/funcs.c b/src/funcs.c index d39f1241..ded19d0a 100644 --- a/src/funcs.c +++ b/src/funcs.c @@ -2171,7 +2171,7 @@ static int FTypeof(func_info *info) /***************************************************************/ static int FLanguage(func_info *info) { - return RetStrVal(L_LANGNAME, info); + return RetStrVal("English", info); } /***************************************************************/ diff --git a/src/globals.c b/src/globals.c index 85d6b621..31a872b2 100644 --- a/src/globals.c +++ b/src/globals.c @@ -18,7 +18,6 @@ #include /* For definition of FILE - sigh! */ #include "types.h" #include "custom.h" -#include "lang.h" #define MK_GLOBALS 1 #include "globals.h" #include "err.h" diff --git a/src/globals.h b/src/globals.h index 736b00af..3a19d0d8 100644 --- a/src/globals.h +++ b/src/globals.h @@ -30,7 +30,6 @@ EXTERN FILE *ErrFp; #include "dynbuf.h" -#include "lang.h" #define MAX_TRUSTED_USERS 20 @@ -186,26 +185,12 @@ EXTERN char *EnglishMonthName[] #endif ; -#if LANG == ENGLISH #define MonthName EnglishMonthName -#else -EXTERN char *MonthName[] -#ifdef MK_GLOBALS -= {L_JAN, L_FEB, L_MAR, L_APR, L_MAY, L_JUN, - L_JUL, L_AUG, L_SEP, L_OCT, L_NOV, L_DEC} -#endif -; -#endif EXTERN char *DynamicMonthName[] #ifdef MK_GLOBALS -#if LANG == ENGLISH = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} -#else -= {L_JAN, L_FEB, L_MAR, L_APR, L_MAY, L_JUN, - L_JUL, L_AUG, L_SEP, L_OCT, L_NOV, L_DEC} -#endif #endif ; EXTERN char *EnglishDayName[] @@ -215,26 +200,12 @@ EXTERN char *EnglishDayName[] #endif ; -#if LANG == ENGLISH #define DayName EnglishDayName -#else -EXTERN char *DayName[] -#ifdef MK_GLOBALS -= {L_MONDAY, L_TUESDAY, L_WEDNESDAY, L_THURSDAY, L_FRIDAY, - L_SATURDAY, L_SUNDAY} -#endif -; -#endif EXTERN char *DynamicDayName [] #ifdef MK_GLOBALS -#if LANG == ENGLISH = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"} -#else -= {L_MONDAY, L_TUESDAY, L_WEDNESDAY, L_THURSDAY, L_FRIDAY, - L_SATURDAY, L_SUNDAY} -#endif #endif ; @@ -258,82 +229,82 @@ EXTERN int MonthIndex[2][12] EXTERN char *DynamicAgo #ifdef MK_GLOBALS -= L_AGO += "ago" #endif ; EXTERN char *DynamicAm #ifdef MK_GLOBALS -= L_AM += "am" #endif ; EXTERN char *DynamicAnd #ifdef MK_GLOBALS -= L_AND += "and" #endif ; EXTERN char *DynamicAt #ifdef MK_GLOBALS -= L_AT += "at" #endif ; EXTERN char *DynamicFromnow #ifdef MK_GLOBALS -= L_FROMNOW += "from now" #endif ; EXTERN char *DynamicHour #ifdef MK_GLOBALS -= L_HOUR += "hour" #endif ; EXTERN char *DynamicHplu #ifdef MK_GLOBALS -= L_HPLU += "s" #endif ; EXTERN char *DynamicIs #ifdef MK_GLOBALS -= L_IS += "is" #endif ; EXTERN char *DynamicMinute #ifdef MK_GLOBALS -= L_MINUTE += "minute" #endif ; EXTERN char *DynamicMplu #ifdef MK_GLOBALS -= L_MPLU += "s" #endif ; EXTERN char *DynamicNow #ifdef MK_GLOBALS -= L_NOW += "now" #endif ; EXTERN char *DynamicOn #ifdef MK_GLOBALS -= L_ON += "on" #endif ; EXTERN char *DynamicPm #ifdef MK_GLOBALS -= L_PM += "pm" #endif ; EXTERN char *DynamicToday #ifdef MK_GLOBALS -= L_TODAY += "today" #endif ; EXTERN char *DynamicTomorrow #ifdef MK_GLOBALS -= L_TOMORROW += "tomorrow" #endif ; EXTERN char *DynamicWas #ifdef MK_GLOBALS -= L_WAS += "was" #endif ; diff --git a/src/init.c b/src/init.c index d8e3234b..d9b61be2 100644 --- a/src/init.c +++ b/src/init.c @@ -196,7 +196,7 @@ void InitRemind(int argc, char const *argv[]) DBufInit(&LineBuffer); DBufInit(&ExprBuf); - DBufPuts(&Banner, L_BANNER); + DBufPuts(&Banner, "Reminders for %w, %d%s %m, %y%o:"); PurgeFP = NULL; @@ -790,7 +790,7 @@ void InitRemind(int argc, char const *argv[]) #ifndef L_USAGE_OVERRIDE void Usage(void) { - fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-2024 Dianne Skoll\n", VERSION, L_LANGNAME); + fprintf(ErrFp, "\nREMIND %s Copyright 1992-2024 Dianne Skoll\n", VERSION); #ifdef BETA fprintf(ErrFp, ">>>> BETA VERSION <<<<\n"); #endif diff --git a/src/lang.h b/src/lang.h deleted file mode 100644 index 0993f88c..00000000 --- a/src/lang.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************/ -/* */ -/* LANG.H */ -/* */ -/* Header file for language support for various languages. */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* I'm chauvinistic and name each language with its English name... */ - -#define ENGLISH 0 /* original by Dianne Skoll */ -#define GERMAN 1 /* translated by Wolfgang Thronicke */ -#define DUTCH 2 /* translated by Willem Kasdorp and Erik-Jan Vens */ -#define FINNISH 3 /* translated by Mikko Silvonen */ -#define FRENCH 4 /* translated by Laurent Duperval */ -#define NORWEGIAN 5 /* translated by Trygve Randen */ -#define DANISH 6 /* translated by Mogens Lynnerup */ -#define POLISH 7 /* translated by Jerzy Sobczyk */ -#define BRAZPORT 8 /* Brazilian Portuguese by Marco Paganini */ -#define ITALIAN 9 /* translated by Valerio Aimale */ -#define ROMANIAN 10 /* translated by Liviu Daia */ -#define SPANISH 11 /* translated by Rafa Couto */ -#define ICELANDIC 12 /* translated by Björn Davíðsson */ - -/* Add more languages here - but please e-mail dianne@skoll.ca - to have your favorite language assigned a number. If you add a - language, please send me the header file, and permission to include - it in future releases of Remind. Note that you'll get no remuneration - for this service - just everlasting fame. :-) - - Use the file tstlang.rem to test your new language file. */ - -/************************************************************************ - * * - * Define the language you want to use here * - * * - ************************************************************************/ -#ifndef LANG /* Allow for definition on compiler command line */ -#define LANG ENGLISH -#endif - -/* Pick up the appropriate header file */ -#if LANG == ENGLISH -#include "langs/english.h" -#elif LANG == GERMAN -#include "langs/german.h" -#elif LANG == DUTCH -#include "langs/dutch.h" -#elif LANG == FINNISH -#include "langs/finnish.h" -#elif LANG == FRENCH -#include "langs/french.h" -#elif LANG == NORWEGIAN -#include "langs/norwgian.h" -#elif LANG == DANISH -#include "langs/danish.h" -#elif LANG == POLISH -#include "langs/polish.h" -#elif LANG == BRAZPORT -#include "langs/portbr.h" -#elif LANG == ITALIAN -#include "langs/italian.h" -#elif LANG == ROMANIAN -#include "langs/romanian.h" -#elif LANG == SPANISH -#include "langs/spanish.h" -#elif LANG == ICELANDIC -#include "langs/icelandic.h" - -/* If no sensible language, choose English. I intended to use - the #error directive here, but some C compilers barf. */ -#else -#include "langs/english.h" -#endif diff --git a/src/langs/danish.h b/src/langs/danish.h deleted file mode 100644 index 1e2d132e..00000000 --- a/src/langs/danish.h +++ /dev/null @@ -1,91 +0,0 @@ -/***************************************************************/ -/* */ -/* DANISH.H */ -/* */ -/* Support for the Danish language. */ -/* */ -/* This file is part of REMIND. */ -/* */ -/* REMIND is Copyright (C) 1992-2024 by Dianne Skoll */ -/* This file is Copyright (C) 1993 by Mogens Lynnerup. */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Danish" - -/* Day names */ -#define L_SUNDAY "Søndag" -#define L_MONDAY "Mandag" -#define L_TUESDAY "Tirsdag" -#define L_WEDNESDAY "Onsdag" -#define L_THURSDAY "Torsdag" -#define L_FRIDAY "Fredag" -#define L_SATURDAY "Lørdag" - -/* Month names */ -#define L_JAN "Januar" -#define L_FEB "Februar" -#define L_MAR "Marts" -#define L_APR "April" -#define L_MAY "Maj" -#define L_JUN "Juni" -#define L_JUL "Juli" -#define L_AUG "August" -#define L_SEP "September" -#define L_OCT "Oktober" -#define L_NOV "November" -#define L_DEC "December" - -/* Today and tomorrow */ -#define L_TODAY "i dag" -#define L_TOMORROW "i morgen" - -/* The default banner */ -#define L_BANNER "Påmindelse for %w, %d. %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "siden" -#define L_FROMNOW "fra nu" - -/* "in %d days' time" */ -#define L_INXDAYS "om %d dage" - -/* "on" as in "on date..." */ -#define L_ON "på" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "e" - -/* Minutes, hours, at, etc */ -#define L_NOW "nu" -#define L_AT "kl." -#define L_MINUTE "minut" -#define L_HOUR "time" -#define L_IS "er" -#define L_WAS "var" -#define L_AND "og" -/* What to add to make "hour" plural */ -#define L_HPLU "r" -/* What to add to make "minute" plural */ -#define L_MPLU "ter" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -#define L_AMPM_OVERRIDE(ampm, hour) ampm = (hour < 12) ? (hour<5) ? " om natten" : " om formiddagen" : (hour > 17) ? " om aftenen" : " om eftermiddagen"; -#define L_ORDINAL_OVERRIDE plu = "."; -#define L_A_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s %d", DayName[dse%7], d, MonthName[m], y); } else { sprintf(s, "%s %s, den %d. %s %d", L_ON, DayName[dse%7], d, MonthName[m], y); } -#define L_E_OVER sprintf(s, "den %02d%c%02d%c%04d", d, DateSep, m+1, DateSep, y); -#define L_F_OVER sprintf(s, "den %02d%c%02d%c%04d", m+1, DateSep, d, DateSep, y); -#define L_G_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s", DayName[dse%7], d, MonthName[m]); } else { sprintf(s, "%s %s, den %d. %s", L_ON, DayName[dse%7], d, MonthName[m]); } -#define L_H_OVER sprintf(s, "den %02d%c%02d", d, DateSep, m+1); -#define L_I_OVER sprintf(s, "den %02d%c%02d", m+1, DateSep, d); -#define L_U_OVER L_A_OVER -#define L_V_OVER L_G_OVER diff --git a/src/langs/dutch.h b/src/langs/dutch.h deleted file mode 100644 index 6875386d..00000000 --- a/src/langs/dutch.h +++ /dev/null @@ -1,102 +0,0 @@ -/***************************************************************/ -/* */ -/* DUTCH.H */ -/* */ -/* Support for the DUTCH language. */ -/* */ -/* Author: Willem Kasdorp */ -/* */ -/* Modified slightly by Dianne Skoll */ -/* */ -/* Further corrections by Erik-Jan Vens */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Dutch" - -/* Day names */ -#define L_SUNDAY "zondag" -#define L_MONDAY "maandag" -#define L_TUESDAY "dinsdag" -#define L_WEDNESDAY "woensdag" -#define L_THURSDAY "donderdag" -#define L_FRIDAY "vrijdag" -#define L_SATURDAY "zaterdag" - -/* Month names */ -#define L_JAN "januari" -#define L_FEB "februari" -#define L_MAR "maart" -#define L_APR "april" -#define L_MAY "mei" -#define L_JUN "juni" -#define L_JUL "juli" -#define L_AUG "augustus" -#define L_SEP "september" -#define L_OCT "oktober" -#define L_NOV "november" -#define L_DEC "december" - -/* Today and tomorrow */ -#define L_TODAY "vandaag" -#define L_TOMORROW "morgen" - -/* The default banner */ -#define L_BANNER "Herinneringen voor %w, %d%s %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "geleden" -#define L_FROMNOW "vanaf nu" - -/* "in %d days' time" */ -#define L_INXDAYS "over %d dagen" - -/* "on" as in "on date..." */ -#define L_ON "op" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix. (Indeed..., wkasdo) */ -#define L_PLURAL "s" - -/* Minutes, hours, at, etc */ -#define L_NOW "nu" -#define L_AT "op" -#define L_MINUTE "minuut" -#define L_HOUR "uur" -#define L_IS "is" -#define L_WAS "was" -#define L_AND "en" -/* What to add to make "hour" plural (should result in uren, not uuren (wkasdo) */ -#define L_HPLU "en" -/* What to add to make "minute" plural (should be minuten, not minuuten) */ -#define L_MPLU "en" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -/* Willem - I fixed the uren/uuren problem here */ -#define L_1_OVER \ -if (tdiff == 0) \ -sprintf(s, L_NOW); \ -else if (hdiff == 0) \ -sprintf(s, "%d %s %s", mdiff, \ - ((mdiff == 1) ? "minuut" : "minuten"), when); \ -else if (mdiff == 0) \ -sprintf(s, "%d %s %s", hdiff, \ - ((hdiff == 1) ? "uur" : "uren"), when); \ -else sprintf(s, "%d %s %s %d %s %s", hdiff, \ - (hdiff == 1 ? "uur" : "uren"), \ - L_AND, mdiff, \ - (mdiff == 1 ? "minuut" : "minuten"), \ - when); - - diff --git a/src/langs/english.h b/src/langs/english.h deleted file mode 100644 index 17aaf600..00000000 --- a/src/langs/english.h +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************/ -/* */ -/* ENGLISH.H */ -/* */ -/* Support for the English language. */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "English" - -/* Day names */ -#define L_SUNDAY "Sunday" -#define L_MONDAY "Monday" -#define L_TUESDAY "Tuesday" -#define L_WEDNESDAY "Wednesday" -#define L_THURSDAY "Thursday" -#define L_FRIDAY "Friday" -#define L_SATURDAY "Saturday" - -/* Month names */ -#define L_JAN "January" -#define L_FEB "February" -#define L_MAR "March" -#define L_APR "April" -#define L_MAY "May" -#define L_JUN "June" -#define L_JUL "July" -#define L_AUG "August" -#define L_SEP "September" -#define L_OCT "October" -#define L_NOV "November" -#define L_DEC "December" - -/* Today and tomorrow */ -#define L_TODAY "today" -#define L_TOMORROW "tomorrow" - -/* The default banner */ -#define L_BANNER "Reminders for %w, %d%s %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "ago" -#define L_FROMNOW "from now" - -/* "in %d days' time" */ -#define L_INXDAYS "in %d days' time" - -/* "on" as in "on date..." */ -#define L_ON "on" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "s" - -/* Minutes, hours, at, etc */ -#define L_NOW "now" -#define L_AT "at" -#define L_MINUTE "minute" -#define L_HOUR "hour" -#define L_IS "is" -#define L_WAS "was" -#define L_AND "and" -/* What to add to make "hour" plural */ -#define L_HPLU "s" -/* What to add to make "minute" plural */ -#define L_MPLU "s" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ diff --git a/src/langs/finnish.h b/src/langs/finnish.h deleted file mode 100644 index 0605d019..00000000 --- a/src/langs/finnish.h +++ /dev/null @@ -1,292 +0,0 @@ -/***************************************************************/ -/* */ -/* FINNISH.H */ -/* */ -/* Support for the Finnish language. */ -/* */ -/* Author: Mikko Silvonen */ -/* */ -/* See http://www.iki.fi/silvonen/remind/ for a list of */ -/* Finnish holidays. */ -/* */ -/* This file is part of REMIND. */ -/* This file is Copyright (C) 1993-1998 by Mikko Silvonen. */ -/* REMIND is Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Finnish" - -/* Day names */ -#define L_SUNDAY "sunnuntai" -#define L_MONDAY "maanantai" -#define L_TUESDAY "tiistai" -#define L_WEDNESDAY "keskiviikko" -#define L_THURSDAY "torstai" -#define L_FRIDAY "perjantai" -#define L_SATURDAY "lauantai" - -/* Month names */ -#define L_JAN "tammikuu" -#define L_FEB "helmikuu" -#define L_MAR "maaliskuu" -#define L_APR "huhtikuu" -#define L_MAY "toukokuu" -#define L_JUN "kesäkuu" -#define L_JUL "heinäkuu" -#define L_AUG "elokuu" -#define L_SEP "syyskuu" -#define L_OCT "lokakuu" -#define L_NOV "marraskuu" -#define L_DEC "joulukuu" - -/* Today and tomorrow */ -#define L_TODAY "tänään" -#define L_TOMORROW "huomenna" - -/* The default banner */ -#define L_BANNER "Viestit %wna %d. %mta %y%o:" - -/* "am" and "pm" */ -#define L_AM " ap." -#define L_PM " ip." - -/* Ago and from now */ -#define L_AGO "sitten" -#define L_FROMNOW "kuluttua" - -/* "in %d days' time" */ -#define L_INXDAYS "%d päivän kuluttua" - -/* "on" as in "on date...", but in Finnish it is a case ending; - L_PARTIT is the partitive ending appended to -kuu and -tai */ -#define L_ON "na" -#define L_PARTIT "ta" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -/* The partitive ending of "day" */ -#define L_PLURAL "ä" - -/* Minutes, hours, at, etc */ -#define L_NOW "nyt" -#define L_AT "klo" -#define L_MINUTE "minuutti" -#define L_HOUR "tunti" -#define L_IS "on" -#define L_WAS "oli" -#define L_AND "ja" - -/* What to add to make "hour" plural (or actually partitive) */ -#define L_HPLU "a" -/* What to add to make "minute" plural (or actually partitive) */ -#define L_MPLU "a" - -/* Genitive form of "hour" */ -#define L_HGEN "tunnin" -/* Genitive form of "minute" */ -#define L_MGEN "minuutin" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -#define L_ORDINAL_OVERRIDE switch(d) { \ - case 1: plu = ":senä"; break; \ - case 2: plu = ":sena"; break; \ - default: \ - switch(d%10) { \ - case 2: \ - case 3: \ - case 6: \ - case 8: plu = ":ntena"; break; \ - default: plu = ":ntenä"; break; \ - } \ -} -#define L_A_OVER if (altmode == '*') { sprintf(s, "%s %d. %s %d", DayName[dse%7], d, MonthName[m], y); } else { sprintf(s, "%s%s %d. %s%s %d", DayName[dse%7], L_ON, d, MonthName[m], L_PARTIT, y); } -#define L_C_OVER if (altmode == '*') { sprintf(s, "%s", DayName[dse%7]); } else { sprintf(s, "%s%s", DayName[dse%7], L_ON); } -#define L_E_OVER sprintf(s, "%02d%c%02d%c%04d", d, DateSep, m+1, DateSep, y); -#define L_F_OVER sprintf(s, "%02d%c%02d%c%04d", m+1, DateSep, d, DateSep, y); -#define L_G_OVER if (altmode == '*') { sprintf(s, "%s %d. %s", DayName[dse%7], d, MonthName[m]); } else { sprintf(s, "%s%s %d. %s%s", DayName[dse%7], L_ON, d, MonthName[m], L_PARTIT); } -#define L_H_OVER sprintf(s, "%02d%c%02d", d, DateSep, m+1); -#define L_I_OVER sprintf(s, "%02d%c%02d", m+1, DateSep, d); -#define L_J_OVER if (altmode == '*') { sprintf(s, "%s %sn %d%s %d", DayName[dse%7], MonthName[m], d, plu, y); } else { sprintf(s, "%s%s %sn %d%s %d", DayName[dse%7], L_ON, MonthName[m], d, plu, y); } -#define L_K_OVER if (altmode == '*') { sprintf(s, "%s %sn %d%s", DayName[dse%7], MonthName[m], d, plu); } else { sprintf(s, "%s%s %sn %d%s", DayName[dse%7], L_ON, MonthName[m], d, plu); } -#define L_L_OVER sprintf(s, "%04d%c%02d%c%02d", y, DateSep, m+1, DateSep, d); -#define L_Q_OVER sprintf(s, "n"); -#define L_U_OVER if (altmode == '*') { sprintf(s, "%s %d%s %s %d", DayName[dse%7], d, plu, MonthName[m], y); } else { sprintf(s, "%s%s %d%s %s%s %d", DayName[dse%7], L_ON, d, plu, MonthName[m], L_PARTIT, y); } -#define L_V_OVER if (altmode == '*') { sprintf(s, "%s %d%s %s", DayName[dse%7], d, plu, MonthName[m]); } else { sprintf(s, "%s%s %d%s %s%s", DayName[dse%7], L_ON, d, plu, MonthName[m], L_PARTIT); } -#define L_1_OVER \ -if (tdiff == 0) \ - sprintf(s, "%s", L_NOW); \ -else { \ - s[0] = '\0'; \ - if (hdiff != 0) { \ - if (tdiff < 0) \ - sprintf(s, "%d %s%s ", hdiff, L_HOUR, hplu); \ - else \ - sprintf(s, "%d %s ", hdiff, L_HGEN); \ - } \ - if (mdiff != 0) { \ - if (tdiff < 0) \ - sprintf(s + strlen(s), "%d %s%s ", mdiff, L_MINUTE, mplu); \ - else \ - sprintf(s + strlen(s), "%d %s ", mdiff, L_MGEN); \ - } \ - sprintf(s + strlen(s), when); \ -} - -/* The next ones are used only when MK_GLOBALS is set */ -#ifdef MK_GLOBALS -#define L_ERR_OVERRIDE 1 -EXTERN char *ErrMsg[] = -{ - "Ok", - "Puuttuva ']'", - "Puuttuva lainausmerkki", - "Liian monimutkainen lauseke", - "Liian monimutkainen lauseke - liikaa operandeja", - "Puuttuva ')'", - "Määrittelemätön funktio", - "Virheellinen merkki", - "Kaksipaikkainen operaattori puuttuu", - "Muisti loppui", - "Virheellinen luku", - "Operaattoripino tyhjä - sisäinen virhe", - "Muuttujapino tyhjä - sisäinen virhe", - "Tyyppimuunnos ei onnistu", - "Virheellinen tyyppi", - "Liian suuri päiväys", - "Pinovirhe - sisäinen virhe", - "Jako nollalla", - "Määrittelemätön funktio", - "Odottamaton rivin loppu", - "Odottamaton tiedoston loppu", - "Syöttö- tai tulostusvirhe", - "Liian pitkä rivi", - "Sisäinen virhe", - "Virheellinen päiväys", - "Liian vähän argumentteja", - "Liian paljon argumentteja", - "Virheellinen aika", - "Liian suuri luku", - "Liian pieni luku", - "Tiedoston avaus ei onnistu", - "Liian monta sisäkkäistä INCLUDEa", - "Jäsennysvirhe", - "Laukaisuhetken laskenta ei onnistu", - "Liian monta sisäkkäistä IF-lausetta", - "ELSE ilman IF-lausetta", - "ENDIF ilman IF-lausetta", - "Kaikkia viikonpäiviä ei voi jättää pois", - "Ylimääräisiä merkkejä rivillä", - "POP-OMIT-CONTEXT ilman PUSH-OMIT-CONTEXTia", - "RUN-lauseen käyttö estetty", - "Arvoaluevirhe", - "Virheellinen tunniste", - "Rekursiivinen funktiokutsu havaittu", - "", - "Järjestelmämuuttujan muuttaminen ei onnistu", - "C-kirjastofunktio ei pysty esittämään päiväystä tai aikaa", - "Sisäisen funktion määritelmää yritettiin muuttaa", - "Lausekkeessa ei voi olla sisäkkäisiä funktiomääritelmiä", - "Päiväyksen täytyy olla täydellinen toistokertoimessa", - "Vuosi annettu kahdesti", - "Kuukausi annettu kahdesti", - "Päivä annettu kahdesti", - "Tuntematon sana tai merkki", - "OMIT-komennossa on annettava kuukausi", - "Liian monta osittaista OMIT-komentoa", - "Liian monta täydellistä OMIT-komentoa", - "Varoitus: PUSH-OMIT-CONTEXT ilman POP-OMIT-CONTEXTia", - "Virhe tiedoston luvussa", - "Pilkku puuttuu", - "Virheellinen juutalainen päiväys", - "IIF vaatii parittoman määrän argumentteja", - "Varoitus: puuttuva ENDIF", - "Pilkku puuttuu", - "Viikonpäivä annettu kahdesti", - "Käytä vain yhtä komennoista BEFORE, AFTER ja SKIP", - "Sisäkkäisiä MSG-, MSF- ja RUN-lauseita ei voi käyttää lausekkeessa", - "Toistokerroin annettu kahdesti", - "Delta-arvo annettu kahdesti", - "Peruutusarvo annettu kahdesti", - "ONCE-avainsanaa käytetty kahdesti. (Hah.)", - "AT-sanan perästä puuttuu aika", - "THROUGH/UNTIL-sanaa käytetty kahdesti", - "Epätäydellinen päiväys", - "FROM/SCANFROM-sanaa käytetty kahdesti", - "Muuttuja", - "Arvo", - "*MÄÄRITTELEMÄTÖN*", - "Siirrytään funktioon", - "Poistutaan funktiosta", - "Vanhentunut", - "fork() epäonnistui - jonomuistutukset eivät toimi", - "Tiedoston avaus ei onnistu", - "Virheellinen järjestelmäpäiväys: vuosi on vähemmän kuin %d\n", - "Tuntematon virheenetsintätarkenne '%c'\n", - "Tuntematon tarkenne '%c'\n", - "Tuntematon käyttäjä '%s'\n", - "Ryhmänumeron vaihto %d:ksi ei onnistunut\n", - "Käyttäjänumeron vaihto %d:ksi ei onnistunut\n", - "Muisti ei riitä ympäristölle\n", - "Puuttuva '='-merkki", - "Puuttuva muuttujanimi", - "Puuttuva lauseke", - "Päivän asetus %s:ksi ei onnitus\n", - "Remind: tarkenne '-i': %s\n", - "Ei viestejä.", - "%d viesti(ä) tämän päivän jonossa.\n", - "Numero puuttuu", - "Virheellinen funktio WARN-lausekkeessa", - "Can't convert between time zones", - "No files matching *.rem", - "String too long", - "Time specified twice", - "Cannot specify DURATION without specifying AT", - "Odotettu viikonpäivän nimi", - "Päällekkäinen argumentin nimi", - "Lausekkeiden arviointi on poistettu käytöstä", - -}; -#endif /* MK_GLOBALS */ - -/* The following is only used in init.c */ -#ifdef L_IN_INIT -#define L_USAGE_OVERRIDE 1 -void Usage(void) -{ - fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-2024 Dianne Skoll\n", VERSION, L_LANGNAME); -#ifdef BETA - fprintf(ErrFp, ">>>> BETAVERSIO <<<<\n"); -#endif - fprintf(ErrFp, "Käyttö: remind [tarkenteet] tiedosto [päiväys] [aika] [*toisto]\n"); - fprintf(ErrFp, "Tarkenteet:\n"); - fprintf(ErrFp, " -n Tulosta viestien seuraavat esiintymiskerrat yksink. muodossa\n"); - fprintf(ErrFp, " -r Estä RUN-lauseiden käyttö\n"); - fprintf(ErrFp, " -c[n] Tulosta n:n kuukauden kalenteri (oletus 1)\n"); - fprintf(ErrFp, " -c+[n] Tulosta n:n viikon kalenteri (oletus 1)\n"); - fprintf(ErrFp, " -w[n[,p[,s]]] Aseta kalenterin leveys, tasaus ja välit\n"); - fprintf(ErrFp, " -s[+][n] Tulosta n:n kuukauden (viikon) 'yksink. kalenteri' (oletus 1)\n"); - fprintf(ErrFp, " -p[n] Kuten -s, mutta tulosta rem2ps:lle sopivassa muodossa\n"); - fprintf(ErrFp, " -v Laveat tulostukset\n"); - fprintf(ErrFp, " -o Älä noudata ONCE-lauseita\n"); - fprintf(ErrFp, " -t Laukaise kaikki viestit deltan arvosta välittämättä\n"); - fprintf(ErrFp, " -h Suppeat tulostukset\n"); - fprintf(ErrFp, " -a Älä laukaise viestejä heti - lisää ne jonoon\n"); - fprintf(ErrFp, " -q Älä lisää viestejä jonoon\n"); - fprintf(ErrFp, " -f Laukaise viestit, pysy etualalla\n"); - fprintf(ErrFp, " -z[n] Käynnisty demonina, herätys n:n (5:n) minuutin välein\n"); - fprintf(ErrFp, " -d... Virheenetsintä: e=echo x=expr-eval t=trig v=dumpvars l=showline\n"); - fprintf(ErrFp, " -e Ohjaa virhetulostus stdout-vuohon\n"); - fprintf(ErrFp, " -b[n] Ajan ilmaisu: 0=ap/ip, 1=24 tuntia, 2=ei aikoja\n"); - fprintf(ErrFp, " -x[n] SATISFY-lauseen toistoraja (oletus 1000)\n"); - fprintf(ErrFp, " -kcmd Suorita 'cmd' MSG-tyyppisille viesteille\n"); - fprintf(ErrFp, " -g[ddd] Lajittele viestit päiväyksen, ajan ja tärkeyden mukaan\n"); - fprintf(ErrFp, " -ivar=val Alusta muuttuja var arvolla val ja säilytä var\n"); - fprintf(ErrFp, " -m Aloita kalenteri maanantaista eikä sunnuntaista\n"); - exit(1); -} -#endif /* L_IN_INIT */ diff --git a/src/langs/french.h b/src/langs/french.h deleted file mode 100644 index 6bc8d8b0..00000000 --- a/src/langs/french.h +++ /dev/null @@ -1,266 +0,0 @@ -/***************************************************************/ -/* */ -/* FRENCH.H */ -/* */ -/* Support for the French language. */ -/* */ -/* Contributed by Laurent Duperval. */ -/* */ -/* This file is part of REMIND. */ -/* */ -/* REMIND is Copyright (C) 1992-2024 by Dianne Skoll */ -/* This file is Copyright (C) 1993 by Laurent Duperval and */ -/* Dianne Skoll. */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "French" - -/* Day names */ -#define L_SUNDAY "dimanche" -#define L_MONDAY "lundi" -#define L_TUESDAY "mardi" -#define L_WEDNESDAY "mercredi" -#define L_THURSDAY "jeudi" -#define L_FRIDAY "vendredi" -#define L_SATURDAY "samedi" - -/* Month names */ -#define L_JAN "janvier" -#define L_FEB "février" -#define L_MAR "mars" -#define L_APR "avril" -#define L_MAY "mai" -#define L_JUN "juin" -#define L_JUL "juillet" -#define L_AUG "août" -#define L_SEP "septembre" -#define L_OCT "octobre" -#define L_NOV "novembre" -#define L_DEC "décembre" - -/* Today and tomorrow */ -#define L_TODAY "aujourd'hui" -#define L_TOMORROW "demain" - -/* The default banner */ -#define L_BANNER "Rappels pour %w, %d%s %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "il y a" -#define L_FROMNOW "dans" - -/* "in %d days' time" */ -#define L_INXDAYS "dans %d jours" - -/* "on" as in "on date..." */ -#define L_ON "le" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "s" - -/* Minutes, hours, at, etc */ -#define L_NOW "maintenant" -#define L_AT "à" -#define L_MINUTE "minute" -#define L_HOUR "heure" -#define L_IS "est" -#define L_WAS "était" -#define L_AND "et" -/* What to add to make "hour" plural */ -#define L_HPLU "s" -/* What to add to make "minute" plural */ -#define L_MPLU "s" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -#define L_ORDINAL_OVERRIDE \ -switch(d) { \ - case 1: plu = "er"; break; \ - default: plu = ""; break; \ -} - -#define L_1_OVER \ -if (tdiff == 0) \ -sprintf(s, L_NOW); \ -else if (tdiff < 0) { \ - if (mdiff == 0) \ - sprintf(s, "il y a %d heure%s", hdiff, hplu); \ - else if (hdiff == 0) \ - sprintf(s, "il y a %d minute%s", mdiff, mplu); \ - else \ - sprintf(s, "il y a %d heure%s et %d minute%s", hdiff, hplu, mdiff, mplu); \ -} else { \ - if (mdiff == 0) \ - sprintf(s, "dans %d heure%s", hdiff, hplu); \ - else if (hdiff == 0) \ - sprintf(s, "dans %d minute%s", mdiff, mplu); \ - else \ - sprintf(s, "dans %d heure%s et %d minute%s", hdiff, hplu, mdiff, mplu); \ -} - -#define L_J_OVER if (altmode == '*') { sprintf(s, "%s, %d%s %s, %d", DayName[dse%7], d, plu, MonthName[m], y); } else { sprintf(s, "%s %s, %d%s %s, %d", L_ON, DayName[dse%7], d, plu, MonthName[m], y); } - -#define L_K_OVER if (altmode == '*') { sprintf(s, "%s, %d%s %s", DayName[dse%7], d, plu, MonthName[m]); } else { sprintf(s, "%s %s, %d%s %s", L_ON, DayName[dse%7], d, plu, MonthName[m]); } - -/* The next ones are used only when MK_GLOBALS is set */ -#ifdef MK_GLOBALS -#define L_ERR_OVERRIDE 1 -EXTERN char *ErrMsg[] = -{ - "Ok", - "']' manquant", - "Apostrophe manquant", - "Expression trop complexe", - "Expression trop complexe - trop d'opérandes", - "')' manquante", - "Fonction non-définie", - "Caractère illégal", - "Opérateur binaire attendu", - "Manque de mémoire", - "Nombre mal formé", - "Erreur interne - 'underflow' de la pile d'opérateurs", - "Erreur interne - 'underflow' de la pile de variables", - "Impossible de convertir", - "Types non-équivalents", - "Débordement de date", - "Erreur interne - erreur de pile", - "Division par zéro", - "Variable non définie", - "Fin de ligne non attendue", - "Fin de fichier non attendue", - "Erreur I/O", - "Ligne trop longue", - "Erreur interne", - "Mauvaise date spécifiée", - "Pas assez d'arguments", - "Trop d'arguments", - "Heure mal formée", - "Nombre trop élevé", - "Nombre trop bas", - "Impossible d'ouvrir le fichier", - "Trop d'INCLUDE imbriqués", - "Erreur d'analyse", - "Impossible de calculer le déclenchement", - "Trop de IF imbriqués", - "ELSE sans IF correspondant", - "ENDIF sans IF correspondant", - "Impossible d'omettre (OMIT) tous les jours", - "Elément(s) étranger(s) sur la ligne", - "POP-OMIT-CONTEXT sans PUSH-OMIT-CONTEXT correspondant", - "RUN déactivé", - "Erreur de domaine", - "Identificateur invalide", - "Appel récursif détecté", - "", - "Impossible de modifier une variable système", - "Fonction de la librairie C ne peut représenter la date/l'heure", - "Tentative de redéfinition d'une fonction intrinsèque", - "Impossible d'imbriquer une définition de fonction dans une expression", - "Pour utiliser le facteur de répétition la date doit être spécifiée au complet", - "Année spécifiée deux fois", - "Mois spécifié deux fois", - "Jour spécifié deux fois", - "Elément inconnu", - "Mois et jour doivent être spécifiés dans commande OMIT", - "Trop de OMITs partiels", - "Trop de OMITs complets", - "Attention: PUSH-OMIT-CONTEXT sans POP-OMIT-CONTEXT correspondant", - "Erreur à la lecture du fichier", - "Fin de ligne attendue", - "Date hébreuse invalide", - "IIF demande nombre d'arguments impair", - "Attention: ENDIF manquant", - "Virgule attendue", - "Jour de la semaine spécifié deux fois", - "Utiliser un seul parmi BEFORE, AFTER ou SKIP", - "Impossible d'imbriquer MSG, MSF, RUN, etc. dans une expression", - "Valeur de répétition spécifiée deux fois", - "Valeur delta spécifiée deux fois", - "Valeur de retour spécifiée deux fois", - "Mot-clé ONCE utilisé deux fois. (Hah.)", - "Heure attendue après AT", - "Mot-clé THROUGH/UNTIL utilisé deux fois", - "Spécification de date incomplète", - "Mot-clé FROM/SCANFROM utilisé deux fois", - "Variable", - "Valeur", - "*NON-DEFINI*", - "Entrée dans UserFN", - "Sortie de UserFN", - "Expiré", - "fork() échoué - impossible de faire les appels en queue", - "Impossible d'accéder au fichier", - "Date système illégale: Année est inférieure à %d\n", - "Option de déverminage inconnue '%c'\n", - "Option inconnue '%c'\n", - "Usager inconnu '%s'\n", - "Impossible de changer gid pour %d\n", - "Impossible de changer uid pour %d\n", - "Manque de mémoire pour environnement\n", - "Signe '=' manquant", - "Nom de variable absent", - "Expression absente", - "Impossible de changer la date d'accès de %s\n", - "Remind: '-i' option: %s\n", - "Pas de rappels.", - "%d rappel(s) en file pour aujourd'hui.\n", - "Nombre attendu", - "Fonction illégale après WARN", - "Can't convert between time zones", - "No files matching *.rem", - "String too long", - "Time specified twice", - "Cannot specify DURATION without specifying AT", - "Nom du jour de la semaine attendu", - "Nom de l'argument en double", - "L'évaluation de l'expression est désactivée", - -}; -#endif /* MK_GLOBALS */ - -/* The following is only used in init.c */ -#ifdef L_IN_INIT -#define L_USAGE_OVERRIDE 1 -void Usage(void) -{ - fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-2024 Dianne Skoll\n", VERSION, L_LANGNAME); -#ifdef BETA - fprintf(ErrFp, ">>>> BETA VERSION <<<<\n"); -#endif - fprintf(ErrFp, "\nUtilisation: remind [options] fichier [date] [heure] [*répétition]\n"); - fprintf(ErrFp, "Options:\n"); - fprintf(ErrFp, " -n Afficher la prochaine occurence des rappels en format simple\n"); - fprintf(ErrFp, " -r Désactiver les instructions RUN\n"); - fprintf(ErrFp, " -c[n] Produire un calendrier pour n (défaut 1) mois\n"); - fprintf(ErrFp, " -c+[n] Produire un calendrier pour n (défaut 1) semaines\n"); - fprintf(ErrFp, " -w[n[,p[,s]]] Spécifier largeur, remplissage et espacement du calendrier\n"); - fprintf(ErrFp, " -s[+][n] Produire un 'calendrier simple' pour n (1) mois (semaines)\n"); - fprintf(ErrFp, " -p[n] Comme -s, mais avec entrée compatible avec rem2ps\n"); - fprintf(ErrFp, " -v Mode verbeux\n"); - fprintf(ErrFp, " -o Ignorer instructions ONCE\n"); - fprintf(ErrFp, " -t Déclencher tous les rappels peu importe le delta\n"); - fprintf(ErrFp, " -h Mode silencieux\n"); - fprintf(ErrFp, " -a Ne pas déclencher les rappels minutés immédiatement - les mettre en file\n"); - fprintf(ErrFp, " -q Ne pas mettre les rappels minutés en file\n"); - fprintf(ErrFp, " -f Déclencher les rappels minutés immédiatement en restant en avant-plan\n"); - fprintf(ErrFp, " -z[n] Entrer en mode 'daemon', réveil chaque n (5) minutes\n"); - fprintf(ErrFp, " -d... Debug: e=echo x=expr-eval t=trig v=dumpvars l=showline\n"); - fprintf(ErrFp, " -e Envoyer les messages de stderr à stdout\n"); - fprintf(ErrFp, " -b[n] Formats de l'heure pour le calendrier: 0=am/pm, 1=24hr, 2=aucun\n"); - fprintf(ErrFp, " -x[n] Limite d'itérations pour la clause SATISFY (def=1000)\n"); - fprintf(ErrFp, " -kcmd Exécuter 'cmd' pour les rappels de type MSG\n"); - fprintf(ErrFp, " -g[ddd] Trier les rappels par date, heure et priorité avant d'émettre\n"); - fprintf(ErrFp, " -ivar=val Initialiser var à val et conserver var\n"); - fprintf(ErrFp, " -m Commencer le calendrier avec lundi plutôt que dimanche\n"); - exit(1); -} -#endif /* L_IN_INIT */ diff --git a/src/langs/german.h b/src/langs/german.h deleted file mode 100644 index 5d8780ef..00000000 --- a/src/langs/german.h +++ /dev/null @@ -1,88 +0,0 @@ -/***************************************************************/ -/* */ -/* GERMAN.H */ -/* */ -/* Support for the German language. */ -/* */ -/* This file was derived from a patch submitted by Wolfgang */ -/* Thronicke. I don't guarantee that there are no mistakes - */ -/* I don't speak German. */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "German" - -/* Day names */ -#define L_SUNDAY "Sonntag" -#define L_MONDAY "Montag" -#define L_TUESDAY "Dienstag" -#define L_WEDNESDAY "Mittwoch" -#define L_THURSDAY "Donnerstag" -#define L_FRIDAY "Freitag" -#define L_SATURDAY "Samstag" - -/* Month names */ -#define L_JAN "Januar" -#define L_FEB "Februar" -#define L_MAR "März" -#define L_APR "April" -#define L_MAY "Mai" -#define L_JUN "Juni" -#define L_JUL "Juli" -#define L_AUG "August" -#define L_SEP "September" -#define L_OCT "Oktober" -#define L_NOV "November" -#define L_DEC "Dezember" - -/* Today and tomorrow */ -#define L_TODAY "heute" -#define L_TOMORROW "morgen" - -/* The default banner */ -#define L_BANNER "Termine für %w, den %d. %m %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "vorher" -#define L_FROMNOW "von heute" - -/* "in %d days' time" */ -#define L_INXDAYS "in %d Tagen" - -/* "on" as in "on date..." */ -#define L_ON "am" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "en" - -/* Minutes, hours, at, etc */ -#define L_NOW "jetzt" -#define L_AT "um" -#define L_MINUTE "Minute" -#define L_HOUR "Stunde" -#define L_IS "ist" -#define L_WAS "war" -#define L_AND "und" -/* What to add to make "hour" plural */ -#define L_HPLU "n" -/* What to add to make "minute" plural */ -#define L_MPLU "n" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ -#define L_AMPM_OVERRIDE(ampm, hour) ampm = (hour < 12) ? (hour<5) ? " nachts" : " vormittags" : (hour > 17) ? " abends" : " nachmittags"; -#define L_ORDINAL_OVERRIDE plu = "."; -#define L_A_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s %d", DayName[dse%7], d, MonthName[m], y); } else { sprintf(s, "%s %s, den %d. %s %d", L_ON, DayName[dse%7], d, MonthName[m], y); } -#define L_G_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s", DayName[dse%7], d, MonthName[m]); } else { sprintf(s, "%s %s, den %d. %s", L_ON, DayName[dse%7], d, MonthName[m]); } -#define L_U_OVER L_A_OVER -#define L_V_OVER L_G_OVER diff --git a/src/langs/icelandic.h b/src/langs/icelandic.h deleted file mode 100644 index b672eda4..00000000 --- a/src/langs/icelandic.h +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************/ -/* */ -/* ICELANDIC.H */ -/* */ -/* Support for the Icelandic language. */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* Translated by Björn Davíðsson (bjossi@snerpa.is) */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Icelandic" - -/* Day names */ -#define L_SUNDAY "sunnudagur" -#define L_MONDAY "mánudagur" -#define L_TUESDAY "þriðjudagur" -#define L_WEDNESDAY "miðvikudagur" -#define L_THURSDAY "fimmtudagur" -#define L_FRIDAY "föstudagur" -#define L_SATURDAY "laugardagur" - -/* Month names */ -#define L_JAN "janúar" -#define L_FEB "febrúar" -#define L_MAR "mars" -#define L_APR "apríl" -#define L_MAY "maí" -#define L_JUN "júní" -#define L_JUL "júlí" -#define L_AUG "ágúst" -#define L_SEP "september" -#define L_OCT "október" -#define L_NOV "nóvember" -#define L_DEC "desember" - -/* Today and tomorrow */ -#define L_TODAY "í dag" -#define L_TOMORROW "á morgun" - -/* The default banner */ -#define L_BANNER "Minnisatriði: %w, %d%s %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "fh" -#define L_PM "eh" - -/* Ago and from now */ -#define L_AGO "síðan" -#define L_FROMNOW "frá því nú" - -/* "in %d days' time" */ -#define L_INXDAYS "eftir %d daga" - -/* "on" as in "on date..." */ -#define L_ON "þann" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "a" - -/* Minutes, hours, at, etc */ -#define L_NOW "núna" -#define L_AT "kl." -#define L_MINUTE "mínútu" -#define L_HOUR "klukkustund" -#define L_IS "er" -#define L_WAS "var" -#define L_AND "og" -/* What to add to make "hour" plural */ -#define L_HPLU "ir" -/* What to add to make "minute" plural */ -#define L_MPLU "r" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ diff --git a/src/langs/italian.h b/src/langs/italian.h deleted file mode 100644 index 58c505f9..00000000 --- a/src/langs/italian.h +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************/ -/* */ -/* ITALIAN.H */ -/* */ -/* Support for the Italian language. */ -/* */ -/* This file is part of REMIND. */ -/* It is Copyright (C) 1996 by Valerio Aimale */ -/* */ -/* Remind is copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Italian" - -/* Day names */ -#define L_SUNDAY "Domenica" -#define L_MONDAY "Lunedì" -#define L_TUESDAY "Martedì" -#define L_WEDNESDAY "Mercoledì" -#define L_THURSDAY "Giovedì" -#define L_FRIDAY "Venerdì" -#define L_SATURDAY "Sabato" - -/* Month names */ -#define L_JAN "Gennaio" -#define L_FEB "Febbraio" -#define L_MAR "Marzo" -#define L_APR "Aprile" -#define L_MAY "Maggio" -#define L_JUN "Giugno" -#define L_JUL "Luglio" -#define L_AUG "Agosto" -#define L_SEP "Settembre" -#define L_OCT "Ottobre" -#define L_NOV "Novembre" -#define L_DEC "Dicembre" - -/* Today and tomorrow */ -#define L_TODAY "oggi" - -#define L_TOMORROW "domani" - -/* The default banner */ -#define L_BANNER "Promemoria per %w, %d %m %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "fa" -#define L_FROMNOW "da oggi" - -/* "in %d days' time" */ -#define L_INXDAYS "fra %d giorni" - -/* "on" as in "on date..." */ -#define L_ON "" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ - -/* Minutes, hours, at, etc */ -#define L_NOW "ora" -#define L_AT "alle" -#define L_MINUTE "minut" -#define L_HOUR "or" -#define L_IS "è" -#define L_WAS "era" -#define L_AND "e" -/* What to add to make "hour" plural */ -#define L_HPLU "s" -/* What to add to make "minute" plural */ -#define L_MPLU "s" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -#define L_P_OVER sprintf(s, (diff == 1 ? "o" : "i")); -#define L_Q_OVER sprintf(s, (diff == 1 ? "a" : "e")); - -#define L_HPLU_OVER hplu = (hdiff == 1 ? "a" : "e"); -#define L_MPLU_OVER mplu = (mdiff == 1 ? "o" : "i"); - -#define L_A_OVER sprintf(s, "%s, %d %s %d", DayName[dse%7], d,\ - MonthName[m], y); -#define L_C_OVER sprintf(s, "%s", DayName[dse%7]); - -#define L_E_OVER sprintf(s, "%02d%c%02d%c%04d", d, DateSep,\ - m+1, DateSep, y); - -#define L_F_OVER sprintf(s, "%02d%c%02d%c%04d", m+1, DateSep, d, DateSep, y); - -#define L_G_OVER sprintf(s, "%s, %d %s", DayName[dse%7], d, MonthName[m]); - -#define L_H_OVER sprintf(s, "%02d%c%02d", d, DateSep, m+1); - -#define L_I_OVER sprintf(s, "%02d%c%02d", m+1, DateSep, d); - -#define L_J_OVER sprintf(s, "%s, %d %s %d", DayName[dse%7], d, \ - MonthName[m], y); - -#define L_K_OVER sprintf(s, "%s, %d %s", DayName[dse%7], d, \ - MonthName[m]); -#define L_L_OVER sprintf(s, "%04d%c%02d%c%02d", y, DateSep, m+1, DateSep, d); - -#define L_U_OVER sprintf(s, "%s, %d %s %d", DayName[dse%7], d, \ - MonthName[m], y); - -#define L_V_OVER sprintf(s, "%s, %d %s", DayName[dse%7], d, \ - MonthName[m]); diff --git a/src/langs/norwgian.h b/src/langs/norwgian.h deleted file mode 100644 index eb6c5c22..00000000 --- a/src/langs/norwgian.h +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************/ -/* */ -/* NORWGIAN.H */ -/* */ -/* Support for the Norwegian language. */ -/* */ -/* This file is part of REMIND. */ -/* This file is Copyright (C) 1993 by Trygve Randen. */ -/* Remind is Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Norwegian" - -/* Day names */ -#define L_SUNDAY "Søndag" -#define L_MONDAY "Mandag" -#define L_TUESDAY "Tirsdag" -#define L_WEDNESDAY "Onsdag" -#define L_THURSDAY "Torsdag" -#define L_FRIDAY "Fredag" -#define L_SATURDAY "Lørdag" - -/* Month names */ -#define L_JAN "Januar" -#define L_FEB "Februar" -#define L_MAR "Mars" -#define L_APR "April" -#define L_MAY "Mai" -#define L_JUN "Juni" -#define L_JUL "Juli" -#define L_AUG "August" -#define L_SEP "September" -#define L_OCT "Oktober" -#define L_NOV "November" -#define L_DEC "Desember" - -/* Today and tomorrow */ -#define L_TODAY "i dag" -#define L_TOMORROW "i morgen" - -/* The default banner */ -#define L_BANNER "Påminnelse for %w, %d. %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "siden" -#define L_FROMNOW "fra nå" - -/* "in %d days' time" */ -#define L_INXDAYS "om %d dager" - -/* "on" as in "on date..." */ -#define L_ON "den" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "er" - -/* Minutes, hours, at, etc */ -#define L_NOW "nå" -#define L_AT "kl." -#define L_MINUTE "minutt" -#define L_HOUR "time" -#define L_IS "er" -#define L_WAS "var" -#define L_AND "og" -/* What to add to make "hour" plural */ -#define L_HPLU "r" -/* What to add to make "minute" plural */ -#define L_MPLU "er" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ -#define L_ORDINAL_OVERRIDE plu = "."; -#define L_A_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s %d", DayName[dse%7], d, MonthName[m], y); } else { sprintf(s, "%s %s, den %d. %s %d", L_ON, DayName[dse%7], d, MonthName[m], y); } -#define L_G_OVER if (altmode == '*') { sprintf(s, "%s, den %d. %s", DayName[dse%7], d, MonthName[m]); } else { sprintf(s, "%s %s, den %d. %s", L_ON, DayName[dse%7], d, MonthName[m]); } -#define L_U_OVER L_A_OVER -#define L_V_OVER L_G_OVER diff --git a/src/langs/polish.h b/src/langs/polish.h deleted file mode 100644 index 765e6078..00000000 --- a/src/langs/polish.h +++ /dev/null @@ -1,281 +0,0 @@ -/***************************************************************/ -/* */ -/* POLISH.H */ -/* */ -/* Support for the Polish language. */ -/* */ -/* This file was submitted by Jerzy Sobczyk. I don't */ -/* guarantee that there are no mistakes - I don't speak */ -/* Polish. */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Polish" - -/* Day names */ -# define L_SUNDAY "Niedziela" -# define L_MONDAY "Poniedziałek" -# define L_TUESDAY "Wtorek" -# define L_WEDNESDAY "Środa" -# define L_THURSDAY "Czwartek" -# define L_FRIDAY "Piątek" -# define L_SATURDAY "Sobota" - -/* Month names */ -# define L_JAN "Styczeń" -# define L_FEB "Luty" -# define L_MAR "Marzec" -# define L_APR "Kwiecień" -# define L_MAY "Maj" -# define L_JUN "Czerwiec" -# define L_JUL "Lipiec" -# define L_AUG "Sierpień" -# define L_SEP "Wrzesień" -# define L_OCT "Październik" -# define L_NOV "Listopad" -# define L_DEC "Grudzień" - -/* Today and tomorrow */ -#define L_TODAY "dzisiaj" -#define L_TOMORROW "jutro" - -/* The default banner */ -#define L_BANNER "Terminarz na %w, %d. %m %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "temu" -#define L_FROMNOW "od teraz" - -/* "in %d days' time" */ -#define L_INXDAYS "za %d dni" - -/* "on" as in "on date..." */ -#define L_ON "-" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "" - -/* Minutes, hours, at, etc */ -#define L_NOW "teraz" -#define L_AT "o" -#define L_MINUTE "minut" -#define L_HOUR "godzin" -# define L_IS "będzie" -# define L_WAS "było" -#define L_AND "i" - -#define L_HPLU "" -#define L_MPLU "" - -/* What to add to make "hour" or "minute" plural */ -#define L_NPLU( N ) ((N == 1) ? "ę" : ((N==12) || (N==13) || (N==14)) ? "" : \ - ((N%10==2) || (N%10==3) || (N%10==4)) ? "y" : "" ) -/* What to add to make "hour" plural */ -#define L_HPLU_OVER hplu = L_NPLU( hdiff ); -/* What to add to make "minute" plural */ -#define L_MPLU_OVER mplu = L_NPLU( mdiff ); - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ -#define L_AMPM_OVERRIDE(ampm, hour) \ -ampm = (hour<12) ? \ - (hour<5) ? " w nocy" \ - : (hour<10) ? " rano" \ - : " przed południem" \ - : (hour<18) ? " po południu" \ - : (hour<22) ? " wieczorem" \ - : " w nocy"; -#define L_ORDINAL_OVERRIDE plu = ""; -#define L_A_OVER if (altmode == '*') { sprintf(s, "%s, %d. %s %d", DayName[dse%7], d, MonthName[m], y); } else { sprintf(s, "%s %s, %d. %s %d", L_ON, DayName[dse%7], d, MonthName[m], y); } -#define L_G_OVER if (altmode == '*') { sprintf(s, "%s, %d. %s", DayName[dse%7], d, MonthName[m]); } else { sprintf(s, "%s %s, %d. %s", L_ON, DayName[dse%7], d, MonthName[m]); } -#define L_U_OVER L_A_OVER -#define L_V_OVER L_G_OVER - -#define L_0_OVER sprintf(s, L_NPLU(hdiff)); -#define L_9_OVER sprintf(s, L_NPLU(mdiff)); -#define L_1_OVER \ -if (tdiff == 0) \ -sprintf(s, L_NOW); \ -else if (tdiff > 0) \ -{ \ - if (hdiff == 0) \ - sprintf(s, "za %d %s%s", mdiff, L_MINUTE, L_NPLU(mdiff)); \ - else if (mdiff == 0) \ - sprintf(s, "za %d %s%s", hdiff, L_HOUR, L_NPLU(hdiff)); \ - else \ - sprintf(s, "za %d %s%s %s %d %s%s", hdiff, L_HOUR, L_NPLU(hdiff), \ - L_AND, mdiff, L_MINUTE, L_NPLU(mdiff)); \ -} \ -else \ -{ \ - if (hdiff == 0) \ - sprintf(s, "%d %s%s temu", mdiff, L_MINUTE, L_NPLU(mdiff)); \ - else if (mdiff == 0) \ - sprintf(s, "%d %s%s temu", hdiff, L_HOUR, L_NPLU(hdiff)); \ - else \ - sprintf(s, "%d %s%s %s %d %s%s temu", hdiff, L_HOUR, L_NPLU(hdiff), \ - L_AND, mdiff, L_MINUTE, L_NPLU(mdiff)); \ -} - -/* The next ones are used only when MK_GLOBALS is set */ -#ifdef MK_GLOBALS -#define L_ERR_OVERRIDE 1 -EXTERN char *ErrMsg[] = -{ - "OK", - "Brakujący ']'", - "Brakujący nawias", - "Zbyt skomplikowane wyrażenie", - "Zbyt skomplikowane wyrażenie - za dużo argumentów", - "Brakujący ')'", - "Nie zdefiniowana funkcja", - "Nielegalny znak", - "Spodziewany operator binarny", - "Brak pamięci", - "Niepoprawny numer", - "Pusty stos operatorów - błąd wewnętrzny", - "Pusty stos zmiennych - błąd wewnętrzny", - "Niemożliwa konwersja", - "Błąd typu", - "Nadmiar daty", - "Błąd stosu - błąd wewnętrzny", - "Dzielenie przez zero", - "Niezdefiniowana zmienna", - "Niespodziewany koniec linii", - "Niespodziewany koniec pliku", - "Błąd wejscia/wyjscia", - "Za długa linia", - "Błąd wewnętrzny", - "Zła specyfikacja daty", - "Za mało argumentów", - "Za dużo argumentów", - "Nieprawidłowy czas", - "Liczba za duża", - "Liczba za mała", - "Nie mogę otworzyć pliku", - "Zbyt zagnieżdżone INCLUDE", - "Błąd składniowy", - "Nie mogę obliczyć przypomnienia", - "Zbyt zagnieżdżone IF", - "ELSE bez IF do pary", - "ENDIF bez IF do pary", - "Nie mogę ominąć (OMIT) wszystkich dni", - "Niespodziewany wyraz w lini", - "POP-OMIT-CONTEXT bez PUSH-OMIT-CONTEXT", - "Komenda RUN zablokowana", - "Błąd dziedziny", - "Niepoprawny identyfikator", - "Wykryto rekursywne wywołanie funkcji", - "", - "Nie mogę zmienić zmiennej systemowej", - "Funkcja biblioteki C nie może reprezentowac daty/czasu", - "Próba redefinicji funkcji wbudowanej", - "Nie wolno zagnieżdżać definicji funkcji w wyrażeniu", - "Aby użyc powtórzenia trzeba w pełni wyspecyfikować datę", - "Rok podany dwókrotnie", - "Miesiąc podany dwókrotnie", - "Dzień podany dwókrotnie", - "Nieznane słowo", - "W komendzie OMIT trzeba podać miesiąc", - "Za dużo częściowych komend OMIT", - "Za dużo pełnych komend OMIT", - "Ostrzeżenie: PUSH-OMIT-CONTEXT bez POP-OMIT-CONTEXT", - "Błąd odczytu pliku", - "Oczekiwany koniec linii", - "Błędna data hebrajska", - "IIF wymaga nieparzystej liczby argumentów", - "Ostrzeżenie: Brakujacy ENDIF", - "Oczekiwany przecinek", - "Dzień tygodnia podany dwókrotnie", - "Dozwolone tylko jedno z: BEFORE, AFTER i SKIP", - "Nie można zagnieżdżać MSG, MSF, RUN, itp. w wyrażeniu", - "Wartość powtorzenia podana dwókrotnie", - "Wartość różnicy podana dwókrotnie", - "Wartość cofnięcia podana dwókrotnie", - "Słowo ONCE użyte dwókrotnie.", - "Po AT oczekiwany jest czas", - "Słowo THROUGH/UNTIL użyte dwókrotnie", - "Niekompletna specyfikacja daty", - "Słowo FROM/SCANFROM użyte dwókrotnie", - "Zmienna", - "Wartość", - "*NIE ZDEFINIOWANE*", - "Początek UserFN", - "Koniec UserFN", - "Przemineło", - "Niepowodzenie w funkcji fork() - nie mogę kolejkować przypomnień", - "Nie ma dostępu do pliku", - "Błędna data systemowa: Rok mniejszy niż %d\n", - "Nieznana flaga odpluskwiania '%c'\n", - "Nieznana opcja '%c'\n", - "Nieznany użytkownik '%s'\n", - "Nie mogę zmienić gid na %d\n", - "Nie mogę zmienić uid na %d\n", - "Brak pamięci na zmienne środowiska\n", - "Brak znaku '='", - "Brak nazwy zmiennej", - "Brak wyrażenia", - "Nie mogę zmienić daty dostępu pliku %s\n", - "Remind: '-i' option: %s\n", - "Brak przypomnień.", - "%d Przypomnienia zakolejkowane na później.\n", - "Spodziewana liczba", - "Illegal function in WARN clause (NEEDS TRANSLATION TO POLISH)", - "Can't convert between time zones", - "No files matching *.rem", - "String too long", - "Time specified twice", - "Cannot specify DURATION without specifying AT", - "Oczekiwana nazwa dnia tygodnia", - "Zduplikowana nazwa argumentu", - "Ocena wyrażeń jest wyłączona", -}; -#endif /* MK_GLOBALS */ - -/* The following is only used in init.c */ -#ifdef L_IN_INIT -#define L_USAGE_OVERRIDE 1 -void Usage(void) -{ - fprintf(ErrFp, "\nREMIND %s (%s version) Copyright 1992-2024 Dianne Skoll\n", VERSION, L_LANGNAME); -#ifdef BETA - fprintf(ErrFp, ">>>> BETA VERSION <<<<\n"); -#endif - fprintf(ErrFp, "\nSposób użycia: remind [opcje] plik [data] [czas] [*powtórzenie]\n"); - fprintf(ErrFp, "Opcje:\n"); - fprintf(ErrFp, " -n Wypisz następne przypomnienia w prostym formacie\n"); - fprintf(ErrFp, " -r Zablokuj dyrektywy RUN\n"); - fprintf(ErrFp, " -c[n] Wypisz kalendarz na n (domyślnie 1) miesięcy\n"); - fprintf(ErrFp, " -c+[n] Wypisz kalendarz na n (domyślnie 1) tygodni\n"); - fprintf(ErrFp, " -w[n[,p[,s]]] Ustaw szerokość, wypełnienie i odstępy w kalendarzu\n"); - fprintf(ErrFp, " -s[+][n] Wypisz uproszczony kalendarz na n (1) miesięcy (tygodni)\n"); - fprintf(ErrFp, " -p[n] To samo co -s, ale kompatybilne z rem2ps\n"); - fprintf(ErrFp, " -v Obszerniejsze komentarze\n"); - fprintf(ErrFp, " -o Ignoruj instrukcje ONCE\n"); - fprintf(ErrFp, " -t Odpal wszystkie przyszłe przypomnienia niezależnie od delty\n"); - fprintf(ErrFp, " -h Praca bezszmerowa\n"); - fprintf(ErrFp, " -a Nie odpalaj przyponień czasowych - kolejkuj je\n"); - fprintf(ErrFp, " -q Nie kolejkuj przyponień czasowych\n"); - fprintf(ErrFp, " -f Nie przechodź do pracy w tle\n"); - fprintf(ErrFp, " -z[n] Pracuj jako demon, budząc się co n (5) minut\n"); - fprintf(ErrFp, " -d... Odpluskwianie: e=echo x=expr-eval t=trig v=dumpvars l=showline\n"); - fprintf(ErrFp, " -e Komunikaty o błędach skieruj na stdout\n"); - fprintf(ErrFp, " -b[n] Format czasu: 0=am/pm, 1=24godz., 2=żaden\n"); - fprintf(ErrFp, " -x[n] Limit powtórzeń klauzuli SATISFY (domyślnie=1000)\n"); - fprintf(ErrFp, " -kcmd Wywołaj 'cmd' dla przypomnień typu MSG\n"); - fprintf(ErrFp, " -g[ddd] Sortuj przypomnienia według daty, czasu i priorytetu\n"); - fprintf(ErrFp, " -ivar=val Zainicjuj zmienną var wartościa val i zachowaj ja\n"); - fprintf(ErrFp, " -m Rozpocznij kalendarz od poniedziałku zamiast od niedzieli\n"); - exit(1); -} -#endif /* L_IN_INIT */ diff --git a/src/langs/portbr.h b/src/langs/portbr.h deleted file mode 100644 index 13f985e8..00000000 --- a/src/langs/portbr.h +++ /dev/null @@ -1,290 +0,0 @@ -/***************************************************************/ -/* */ -/* PORTBR.H */ -/* */ -/* Support for the Brazilian Portuguese Language. */ -/* */ -/* Contributed by Marco Paganini (paganini@ism.com.br). */ -/* */ -/* This file is part of REMIND. */ -/* */ -/* REMIND is Copyright (C) 1992-2024 by Dianne Skoll */ -/* This file is Copyright (C) 1996 by Marco Paganini and */ -/* Dianne Skoll. */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Brazilian Portuguese" - -/* Day names */ -#define L_SUNDAY "domingo" -#define L_MONDAY "segunda" -#define L_TUESDAY "terca" -#define L_WEDNESDAY "quarta" -#define L_THURSDAY "quinta" -#define L_FRIDAY "sexta" -#define L_SATURDAY "sabado" - -/* Month names */ -#define L_JAN "janeiro" -#define L_FEB "fevereiro" -#define L_MAR "marco" -#define L_APR "abril" -#define L_MAY "maio" -#define L_JUN "junho" -#define L_JUL "julho" -#define L_AUG "agosto" -#define L_SEP "setembro" -#define L_OCT "outubro" -#define L_NOV "novembro" -#define L_DEC "dezembro" - -/* Today and tomorrow */ -#define L_TODAY "hoje" -#define L_TOMORROW "amanha" - -/* The default banner */ -#define L_BANNER "Avisos para %w, %d de %m de %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "atras" -#define L_FROMNOW "adiante" - -/* "in %d days' time" */ -#define L_INXDAYS "em %d dias" - -/* "on" as in "on date..." */ -#define L_ON "em" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "s" - -/* Minutes, hours, at, etc */ -#define L_NOW "agora" -#define L_AT "as" -#define L_MINUTE "minuto" -#define L_HOUR "hora" -#define L_IS "sao" -#define L_WAS "eram" -#define L_AND "e" - -/* What to add to make "hour" plural */ -#define L_HPLU "s" -/* What to add to make "minute" plural */ -#define L_MPLU "s" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ - -#define L_ORDINAL_OVERRIDE plu = ""; - -/* Portuguese weekdays must be treated separately */ -#define _ON_WEEKDAY(x) ((x % 7) < 2) ? "no" : "na" - -#define L_A_OVER \ - sprintf(s, "%s %s, %d de %s de %d", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m], y); - -#define L_C_OVER \ - sprintf(s, "%s %s", _ON_WEEKDAY(dse), DayName[dse%7]); - -#define L_G_OVER \ - sprintf(s, "%s %s, %d %s", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m]); - -#define L_J_OVER \ - sprintf(s, "%s %s, %d de %s de %d", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m], y); - -#define L_K_OVER \ - sprintf(s, "%s %s, %d de %s", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m]); - -/* Portuguese does not use some suffixes, some some %u and %j are the same */ -#define L_U_OVER \ - sprintf(s, "%s %s, %d de %s de %d", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m], y); - -#define L_V_OVER \ - sprintf(s, "%s %s, %d de %s", _ON_WEEKDAY(dse), DayName[dse%7], d, MonthName[m]); - -#define L_1_OVER \ -{ \ - if (tdiff == 0) \ - sprintf(s, L_NOW); \ - else \ - if (hdiff == 0) \ - { \ - if (mdiff > 0) \ - sprintf(s, "em %d %s%s", mdiff, L_MINUTE, mplu); \ - else \ - sprintf(s, "%d %s%s atras", mdiff, L_MINUTE, mplu); \ - } \ - else if (mdiff == 0) \ - { \ - if (hdiff > 0) \ - sprintf(s, "em %d %s%s", hdiff, L_HOUR, hplu); \ - else \ - sprintf(s, "%d %s%s atras", hdiff, L_HOUR, hplu); \ - } else { \ - if (tdiff > 0) \ - sprintf(s, "em %d %s%s %s %d %s%s", hdiff, L_HOUR, hplu, L_AND, mdiff, L_MINUTE, mplu); \ - else \ - sprintf(s, "%d %s%s %s %d %s%s atras", hdiff, L_HOUR, hplu, L_AND, mdiff, L_MINUTE, mplu); \ - } \ -} - -/* The next ones are used only when MK_GLOBALS is set */ -#ifdef MK_GLOBALS -#define L_ERR_OVERRIDE 1 -EXTERN char *ErrMsg[] = -{ - "Ok", - "Falta um ']'", - "Falta uma aspa", - "Expressao muito complexa", - "Expressao muito complexa - muitos operandos", - "Falta um ')'", - "Funcao nao definida", - "Caracter ilegal", - "Esperando operador binario", - "Sem memoria", - "Numero mal-formado", - "Op stack underflow - erro interno", - "Va stack underflow - erro interno", - "Nao consigo fazer 'coerce'", - "Type mismatch", - "Overflow na data", - "Erro de stack - erro interno", - "Divisao por zero", - "Variavel nao definida", - "Fim da linha nao esperado", - "Fim de arquivo nao esperado", - "Erro de I/O", - "Linha muito longa", - "Erro interno", - "Especificacao de data invalida", - "Argumentos insuficientes", - "Argumentos em excesso", - "Hora mal-formada", - "Numero muito grande", - "Numero muito pequeno", - "Nao consigo abrir o arquivo", - "Ninho de INCLUDEs muito profundo", - "Erro de parsing", - "Nao consigo computar o 'trigger'", - "Muitos IFs aninhados", - "ELSE sem o IF correspondente", - "ENDIF sem o IF correspondente", - "Nao se pode usar OMIT para todos os dias da semana", - "Token nao reconhecido na linha", - "POP-OMIT-CONTEXT sem PUSH-OMIT-CONTEXT correspondente", - "RUN desabilitado", - "Erro de dominio", - "Identificados invalido", - "Chamada de funcao recursiva detectada", - "", - "Nao posso modificar variavel de sistema", - "Funcao da biblioteca C nao pode representar data/hora", - "Tentativa de redefinir funcao interna", - "Nao e' possivel aninhar definicao de funcao em expressao", - "Data deve ser completamente especificada para usar o fator de REPEAT", - "Ano especificado duas vezes", - "Mes especificado duas vezes", - "Dia especificado duas vezes", - "Token desconhecido", - "O mes deve ser especificados no comando OMIT", - "Muitos OMITs parciais", - "Muitos OMITs full", - "Aviso: PUSH-OMIT-CONTEXT sem POP-OMIT-CONTEXT correspondente", - "Erro na leitura do arquivo", - "Aguardando fim do arquivo", - "Data hebraica invalida", - "IIF necessita de numero impar de argumentos", - "Warning: ENDIF faltando", - "Esperando virgula", - "Dia da semana especificado duas vezes", - "Use apenas um de BEFORE, AFTER ou SKIP", - "Nao e possivel aninhar MSG, MSF, RUN, etc. em expressoes", - "Valor de Repeat especificado duas vezes", - "Valor de Delta especificado duas vezes", - "Valor de Back especificado duas vezes", - "ONCE usado duas vezes (Eheheh)", - "Esperando hora apos AT", - "Keyword THROUGH/UNTIL usada duas vezes", - "Especificacao de data incompleta", - "Keyword FROM/SCANFROM usada duas vezes", - "Variavel", - "Valor", - "*INDEFINIDO*", - "Entrando UserFN", - "Saindo UserFN", - "Expirou", - "fork() falhou - Nao posso processar compromissos na fila", - "Nao consigo acessar o arquivo", - "Data do sistema ilegal: Ano e menor que %d\n", - "Flag de debug desconhecido '%c'\n", - "Opcao desconhecida '%c'\n", - "Usuario desconhecido '%s'\n", - "Nao consigo mudar gid para %d\n", - "Nao consigo mudar uid para %d\n", - "Sem memoria para o environment\n", - "Falta o sinal de '='", - "Falta o nome da variavel", - "Falta a expressao", - "Nao consigo resetar a data de acesso de %s\n", - "Remind: '-i' opcao: %s\n", - "Sem compromissos.", - "%d compromisso(s) colocados na fila para mais tarde.\n", - "Esperando numero", - "Funcao ilegal na clausula WARN", - "Can't convert between time zones", - "No files matching *.rem", - "String too long", - "Time specified twice", - "Cannot specify DURATION without specifying AT", - "Esperando nome do dia da semana", - "Nome de argumento duplicado", - "A avaliação da expressão está desabilitada", -}; -#endif /* MK_GLOBALS */ - -/* The following is only used in init.c */ -#ifdef L_IN_INIT -#define L_USAGE_OVERRIDE 1 -void Usage(void) -{ - fprintf(ErrFp, "\nREMIND %s (versao %s) (C) 1992-2024 Dianne Skoll\n", VERSION, L_LANGNAME); -#ifdef BETA - fprintf(ErrFp, ">>>> VERSAO BETA <<<<\n"); -#endif - fprintf(ErrFp, "Uso: remind [opcoes] arquivo [data] [hora] [*rep]\n"); - fprintf(ErrFp, "Opcoes:\n"); - fprintf(ErrFp, " -n Imprime a proxima ocorrencia em formato simples\n"); - fprintf(ErrFp, " -r Desabilita a diretiva RUN\n"); - fprintf(ErrFp, " -c[n] Produz calendario para n (default 1) meses\n"); - fprintf(ErrFp, " -c+[n] Produz calendario para n (default 1) semanas\n"); - fprintf(ErrFp, " -w[n[,p[,s]]] Especifica largura, preenchimento e espacejamento do calendario\n"); - fprintf(ErrFp, " -s[+][n] Produz um `calendario simples' para n (1) meses (semanas)\n"); - fprintf(ErrFp, " -p[n] Identico a -s, porem com saida compativel com rem2ps\n"); - fprintf(ErrFp, " -v Modo verbose\n"); - fprintf(ErrFp, " -o Ignora diretivas ONCE\n"); - fprintf(ErrFp, " -t Aciona todos os compromissos futuros, sem considerar o delta\n"); - fprintf(ErrFp, " -h Modo `Hush' - quieto\n"); - fprintf(ErrFp, " -a Nao aciona compromissos com hora imediatamente - apenas coloca na fila\n"); - fprintf(ErrFp, " -q Nao coloca compromissos com hora na fila\n"); - fprintf(ErrFp, " -f Aciona compromissos com hora em modo foreground\n"); - fprintf(ErrFp, " -z[n] Modo `daemon', acordando a cada n (5) minutos.\n"); - fprintf(ErrFp, " -d... Debug: e=echo x=expr-eval t=trigger v=dumpvars l=showline\n"); - fprintf(ErrFp, " -e Desvia mensagens normalmente enviadas a stderr para stdout\n"); - fprintf(ErrFp, " -b[n] Formato da hora para o cal: 0=am/pm, 1=24hr, 2=nenhum\n"); - fprintf(ErrFp, " -x[n] Limite de iteracoes para a clausula SATISFY (default=1000)\n"); - fprintf(ErrFp, " -kcmd Executa `cmd' para os compromissos com MSG\n"); - fprintf(ErrFp, " -g[ddd] Classifica compromissos por data, hora e prioridade antes de exibir\n"); - fprintf(ErrFp, " -ivar=val Inicializa (e preserva) variavel var com val\n"); - fprintf(ErrFp, " -m Inicia o calendario na segunda, ao inves de domingo\n"); - exit(1); -} -#endif /* L_IN_INIT */ diff --git a/src/langs/romanian.h b/src/langs/romanian.h deleted file mode 100644 index bc3ceece..00000000 --- a/src/langs/romanian.h +++ /dev/null @@ -1,105 +0,0 @@ -/***************************************************************/ -/* */ -/* ROMANIAN.H */ -/* */ -/* Support for the Romanian language. */ -/* */ -/* Contributed by Liviu Daia */ -/* */ -/* This file is part of REMIND. */ -/* */ -/* REMIND is Copyright (C) 1992-2024 by Dianne Skoll */ -/* This file is Copyright (C) 1996-1998 by Liviu Daia */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -/* The very first define in a language support file must be L_LANGNAME: */ -#define L_LANGNAME "Romanian" - -/* Day names */ -# define L_SUNDAY "Duminică" -# define L_MONDAY "Luni" -# define L_TUESDAY "Marți" -# define L_WEDNESDAY "Miercuri" -# define L_THURSDAY "Joi" -# define L_FRIDAY "Vineri" -# define L_SATURDAY "Sâmbătă" - -/* Month names */ -#define L_JAN "Ianuarie" -#define L_FEB "Februarie" -#define L_MAR "Martie" -#define L_APR "Aprilie" -#define L_MAY "Mai" -#define L_JUN "Iunie" -#define L_JUL "Iulie" -#define L_AUG "August" -#define L_SEP "Septembrie" -#define L_OCT "Octombrie" -#define L_NOV "Noiembrie" -#define L_DEC "Decembrie" - -/* Today and tomorrow */ -# define L_TODAY "astăzi" -# define L_TOMORROW "mâine" - -/* The default banner */ -#define L_BANNER "Reamintiri pentru %w, %d %m %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Ago and from now */ -#define L_AGO "acum" -#define L_FROMNOW "peste" - -/* "in %d days' time" */ -#define L_INXDAYS "peste %d zile" - -/* "on" as in "on date..." */ -#define L_ON "pe" - -/* Pluralizing - this is a problem for many languages and may require - a more drastic fix */ -#define L_PLURAL "le" - -/* Minutes, hours, at, etc */ -#define L_NOW "acum" -#define L_AT "la ora" -#define L_MINUTE "minut" -#define L_HOUR "or" -#define L_IS "este" -#define L_WAS "a fost" -/* What to add to make "minute" plural */ -#define L_MPLU "e" -#define L_HPLU "e" - -/* What to add to make "hour" plural */ -#define L_HPLU_OVER hplu = (hdiff == 1 ? "ă" : "e"); -#define L_AND "şi" - -/* Define any overrides here, such as L_ORDINAL_OVERRIDE, L_A_OVER, etc. - See the file dosubst.c for more info. */ -#define L_AMPM_OVERRIDE(ampm, hour) ampm = (hour < 12) ? (hour<4) ? " noaptea" : " dimineaţa" : (hour > 17) ? " seara" : " după-amiaza"; -#define L_ORDINAL_OVERRIDE plu = ""; - -#define L_A_OVER sprintf(s, "%s, %d %s %d", DayName[dse%7], d, MonthName[m], y); -#define L_C_OVER sprintf(s, "%s", DayName[dse%7]); -#define L_G_OVER sprintf(s, "%s, %d %s", DayName[dse%7], d, MonthName[m]); -#define L_J_OVER sprintf(s, "%s, %s %d, %d", DayName[dse%7], MonthName[m], d, y); -#define L_K_OVER sprintf(s, "%s, %s %d", DayName[dse%7], MonthName[m], d); -#define L_S_OVER -#define L_U_OVER sprintf(s, "%s, %d %s %d", DayName[dse%7], d, MonthName[m], y); -#define L_V_OVER sprintf(s, "%s, %d %s", DayName[dse%7], d, MonthName[m]); -#define L_1_OVER \ - if (tdiff == 0) \ - sprintf(s, L_NOW); \ - else if (hdiff == 0) \ - sprintf(s, "%s %d %s%s", when, mdiff, L_MINUTE, mplu); \ - else if (mdiff == 0) \ - sprintf(s, "%s %d %s%s", when, hdiff, L_HOUR, hplu); \ - else \ - sprintf(s, "%s %d %s%s %s %d %s%s", when, hdiff, \ - L_HOUR, hplu, L_AND, mdiff, L_MINUTE, mplu); diff --git a/src/langs/spanish.h b/src/langs/spanish.h deleted file mode 100644 index b6f38a2f..00000000 --- a/src/langs/spanish.h +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************/ -/* */ -/* SPANISH.H */ -/* */ -/* Support for the Spanish language. */ -/* */ -/* Author: Rafa Couto */ -/* */ -/* This file is part of REMIND. */ -/* Copyright (C) 1992-2024 by Dianne Skoll */ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* */ -/***************************************************************/ - -#define L_LANGNAME "Spanish" - -/* Nombres de los di'as de la semana */ -#define L_SUNDAY "Domingo" -#define L_MONDAY "Lunes" -#define L_TUESDAY "Martes" -#define L_WEDNESDAY "Miércoles" -#define L_THURSDAY "Jueves" -#define L_FRIDAY "Viernes" -#define L_SATURDAY "Sábado" - -/* Nombres de los meses */ -#define L_JAN "Enero" -#define L_FEB "Febrero" -#define L_MAR "Marzo" -#define L_APR "Abril" -#define L_MAY "Mayo" -#define L_JUN "Junio" -#define L_JUL "Julio" -#define L_AUG "Agosto" -#define L_SEP "Septiembre" -#define L_OCT "Octubre" -#define L_NOV "Noviembre" -#define L_DEC "Diciembre" - -/* Hoy y man~ana */ -#define L_TODAY "hoy" -#define L_TOMORROW "mañana" - -/* El titular habitual */ -#define L_BANNER "Agenda para el %w, %d%s %m, %y%o:" - -/* "am" and "pm" */ -#define L_AM "am" -#define L_PM "pm" - -/* Hace y desde hoy */ -#define L_AGO "hace" -#define L_FROMNOW "desde hoy" - -/* "dentro de %d di'as" */ -#define L_INXDAYS "dentro de %d días" -#define L_ON "el día" - -/* "el di'a..." */ - -/* plurales */ -#define L_PLURAL "s" - -/* Minutos, horas, a las, etc */ -#define L_NOW "ahora" -#define L_AT "a las" -#define L_MINUTE "minuto" -#define L_HOUR "hora" -#define L_IS "es" -#define L_WAS "fue" -#define L_AND "y" -#define L_HPLU "s" -#define L_MPLU "s" - diff --git a/src/test-all-languages.sh b/src/test-all-languages.sh deleted file mode 100755 index 724b7b7e..00000000 --- a/src/test-all-languages.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# Make sure Remind compiles with all supported languages; show -# tstlang.rem output for each language. - -ALL=`grep ^#define lang.h | grep -v '#define LANG' | awk '{print $2}'` - -OUTPUT_COMPILED=lang-compiled.out -OUTPUT_RUNTIME=lang-runtime.out -cat /dev/null > $OUTPUT_COMPILED -cat /dev/null > $OUTPUT_RUNTIME -for i in $ALL ; do - make clean - make -j`nproc` all LANGDEF=-DLANG=$i || exit 1 - ./remind -q -r ../tests/tstlang.rem >> $OUTPUT_COMPILED 2>&1 -done - -# Rebuild English version -make clean -make -j`nproc` all || exit 1 - -ALL=`ls ../include/lang/*.rem` -for i in $ALL; do - ./remind -q -r "-ii=\"$i\"" ../tests/tstlang.rem >> $OUTPUT_RUNTIME 2>&1 -done - -exit 0