Add the TRANSLATE GENERATE command to generate a skeleton .rem file for localization.

This commit is contained in:
Dianne Skoll
2025-01-14 13:27:04 -05:00
parent a35920f28e
commit 96c11e89eb
9 changed files with 348 additions and 9 deletions

View File

@@ -641,6 +641,11 @@ set a 9 *
set a 9 * ]
EOF
# Translation template generateion
../src/remind -h - 1 Feb 2024 <<'EOF' >> ../tests/test.out 2>&1
TRANSLATE GENERATE
EOF
# Languages
for i in ../include/lang/??.rem ; do
../src/remind -r -q "-ii=\"$i\"" ../tests/tstlang.rem 1 Feb 2024 13:34 >> ../tests/test.out 2>&1

View File

@@ -24332,6 +24332,199 @@ set a 9 * ]
Reminders for Thursday, 1st February, 2024:
No reminders.
# Translation table template
TRANSLATE "LANGID" "en"
TRANSLATE "Monday" ""
TRANSLATE "Tuesday" ""
TRANSLATE "Wednesday" ""
TRANSLATE "Thursday" ""
TRANSLATE "Friday" ""
TRANSLATE "Saturday" ""
TRANSLATE "Sunday" ""
TRANSLATE "January" ""
TRANSLATE "February" ""
TRANSLATE "March" ""
TRANSLATE "April" ""
TRANSLATE "May" ""
TRANSLATE "June" ""
TRANSLATE "July" ""
TRANSLATE "August" ""
TRANSLATE "September" ""
TRANSLATE "October" ""
TRANSLATE "November" ""
TRANSLATE "December" ""
TRANSLATE "ago" ""
TRANSLATE "am" ""
TRANSLATE "and" ""
TRANSLATE "Ok" ""
TRANSLATE "Missing ']'" ""
TRANSLATE "Missing quote" ""
TRANSLATE "Expression too complex" ""
TRANSLATE "Missing ')'" ""
TRANSLATE "Undefined function" ""
TRANSLATE "Illegal character" ""
TRANSLATE "Expecting binary operator" ""
TRANSLATE "Out of memory" ""
TRANSLATE "Ill-formed number" ""
TRANSLATE "Can't coerce" ""
TRANSLATE "Type mismatch" ""
TRANSLATE "Date overflow" ""
TRANSLATE "Division by zero" ""
TRANSLATE "Undefined variable" ""
TRANSLATE "Unexpected end of line" ""
TRANSLATE "Unexpected end of file" ""
TRANSLATE "I/O error" ""
TRANSLATE "Internal error" ""
TRANSLATE "Bad date specification" ""
TRANSLATE "Not enough arguments" ""
TRANSLATE "Too many arguments" ""
TRANSLATE "Ill-formed time" ""
TRANSLATE "Number too high" ""
TRANSLATE "Number too low" ""
TRANSLATE "Can't open file" ""
TRANSLATE "INCLUDE nested too deeply (max. 9)" ""
TRANSLATE "Parse error" ""
TRANSLATE "Can't compute trigger" ""
TRANSLATE "Too many nested IFs" ""
TRANSLATE "ELSE with no matching IF" ""
TRANSLATE "ENDIF with no matching IF" ""
TRANSLATE "Can't OMIT every weekday" ""
TRANSLATE "Extraneous token(s) on line" ""
TRANSLATE "POP-OMIT-CONTEXT without matching PUSH-OMIT-CONTEXT" ""
TRANSLATE "RUN disabled" ""
TRANSLATE "Domain error" ""
TRANSLATE "Invalid identifier" ""
TRANSLATE "Too many recursive function calls" ""
TRANSLATE "Cannot modify system variable" ""
TRANSLATE "C library function can't represent date/time" ""
TRANSLATE "Attempt to redefine built-in function" ""
TRANSLATE "Can't nest function definition in expression" ""
TRANSLATE "Must fully specify date to use repeat factor" ""
TRANSLATE "Year specified twice" ""
TRANSLATE "Month specified twice" ""
TRANSLATE "Day specified twice" ""
TRANSLATE "Unknown token" ""
TRANSLATE "Must specify month in OMIT command" ""
TRANSLATE "Too many full OMITs (max. 1000)" ""
TRANSLATE "Warning: PUSH-OMIT-CONTEXT without matching POP-OMIT-CONTEXT" ""
TRANSLATE "Error reading" ""
TRANSLATE "Expecting end-of-line" ""
TRANSLATE "Invalid Hebrew date" ""
TRANSLATE "iif(): odd number of arguments required" ""
TRANSLATE "Warning: Missing ENDIF" ""
TRANSLATE "Expecting comma" ""
TRANSLATE "Weekday specified twice" ""
TRANSLATE "Only use one of BEFORE, AFTER or SKIP" ""
TRANSLATE "Can't nest MSG, MSF, RUN, etc. in expression" ""
TRANSLATE "Repeat value specified twice" ""
TRANSLATE "Delta value specified twice" ""
TRANSLATE "Back value specified twice" ""
TRANSLATE "ONCE keyword used twice. (Hah.)" ""
TRANSLATE "Expecting time after AT" ""
TRANSLATE "THROUGH/UNTIL keyword used twice" ""
TRANSLATE "Incomplete date specification" ""
TRANSLATE "FROM/SCANFROM keyword used twice" ""
TRANSLATE "Variable" ""
TRANSLATE "Value" ""
TRANSLATE "*UNDEFINED*" ""
TRANSLATE "Entering UserFN" ""
TRANSLATE "Leaving UserFN" ""
TRANSLATE "Expired" ""
TRANSLATE "fork() failed - can't do queued reminders" ""
TRANSLATE "Can't access file" ""
TRANSLATE "Illegal system date: Year is less than %d\n" ""
TRANSLATE "Unknown debug flag '%c'\n" ""
TRANSLATE "Unknown option '%c'\n" ""
TRANSLATE "Unknown user '%s'\n" ""
TRANSLATE "Could not change gid to %d\n" ""
TRANSLATE "Could not change uid to %d\n" ""
TRANSLATE "Out of memory for environment\n" ""
TRANSLATE "Missing '=' sign" ""
TRANSLATE "Missing variable name" ""
TRANSLATE "Missing expression" ""
TRANSLATE "Remind: '-i' option: %s\n" ""
TRANSLATE "No reminders." ""
TRANSLATE "%d reminder(s) queued for later today.\n" ""
TRANSLATE "Expecting number" ""
TRANSLATE "Undefined WARN function" ""
TRANSLATE "Can't convert between time zones" ""
TRANSLATE "No files matching *.rem" ""
TRANSLATE "String too long" ""
TRANSLATE "Time specified twice" ""
TRANSLATE "Cannot specify DURATION without specifying AT" ""
TRANSLATE "Expecting weekday name" ""
TRANSLATE "Duplicate argument name" ""
TRANSLATE "Expression evaluation is disabled" ""
TRANSLATE "Time limit for expression evaluation exceeded" ""
TRANSLATE " %s(%d): ["["]#%d] %s function `%s'" ""
TRANSLATE "%s function `%s' defined at %s:%d does not use its argument" ""
TRANSLATE "%s function `%s' defined at %s:%d should take 1 argument but actually takes %d" ""
TRANSLATE "%s is deprecated; use %s instead" ""
TRANSLATE "%s(%d): IF without ENDIF\n" ""
TRANSLATE "(Security note: $RunOff variable tested.)" ""
TRANSLATE "Accepting \"%s\" for $Latitude/$Longitude, but you should use the \"C\" locale decimal separator \".\" instead" ""
TRANSLATE "Caching directory `%s' listing\n" ""
TRANSLATE "Caching file `%s' in memory\n" ""
TRANSLATE "Called from" ""
TRANSLATE "Cannot open `%s' for writing: %s\n" ""
TRANSLATE "Cannot stat %s - not running as daemon!\n" ""
TRANSLATE "Cannot use AT clause in multitrig() function" ""
TRANSLATE "Do not use ["["]] around expression in SET command" ""
TRANSLATE "Error: THROUGH date earlier than start date" ""
TRANSLATE "Executing `%s' for INCLUDECMD and caching as `%s'\n" ""
TRANSLATE "Found cached directory listing for `%s'\n" ""
TRANSLATE "Function `%s' defined at %s:%d should take %d argument%s, but actually takes %d" ""
TRANSLATE "Function `%s' redefined (previously defined at %s:%d)" ""
TRANSLATE "GetValidHebDate: Bad adarbehave value %d" ""
TRANSLATE "In" ""
TRANSLATE "Missing REM type; assuming MSG" ""
TRANSLATE "No Adar A in %d" ""
TRANSLATE "No substition function `%s' defined" ""
TRANSLATE "Not setting $OnceFile: Already processed a reminder with a ONCE clause" ""
TRANSLATE "OMIT: UNTIL not allowed; did you mean THROUGH?" ""
TRANSLATE "POP-OMIT-CONTEXT at %s:%d matches PUSH-OMIT-CONTEXT in different file: %s:%d" ""
TRANSLATE "Reading `%s': Found in cache\n" ""
TRANSLATE "Reading `%s': Opening file on disk\n" ""
TRANSLATE "Reading `-': Reading stdin\n" ""
TRANSLATE "Reading command `%s': Found in cache\n" ""
TRANSLATE "SATISFY: constant 0 will never be true" ""
TRANSLATE "SATISFY: constant \"\" will never be true" ""
TRANSLATE "SATISFY: expression has no reference to trigdate() or $T..." ""
TRANSLATE "SECURITY: Won't read non-root-owned file or directory when running as root!\n" ""
TRANSLATE "SECURITY: Won't read world-writable file or directory!\n" ""
TRANSLATE "Scanning directory `%s' for *.rem files\n" ""
TRANSLATE "Undefined %s function: `%s'" ""
TRANSLATE "Unmatched PUSH-OMIT-CONTEXT at %s(%d)" ""
TRANSLATE "Unrecognized command; interpreting as REM" ""
TRANSLATE "Warning: Function name `%s...' truncated to `%s'" ""
TRANSLATE "Warning: OMIT is ignored if you use OMITFUNC" ""
TRANSLATE "Warning: SCANFROM is ignored in two-argument form of evaltrig()" ""
TRANSLATE "Warning: UNTIL/THROUGH date earlier than FROM date" ""
TRANSLATE "Warning: UNTIL/THROUGH date earlier than SCANFROM date" ""
TRANSLATE "Warning: UNTIL/THROUGH date earlier than start date" ""
TRANSLATE "Warning: Unable to save ONCE timestamp to %s: %s" ""
TRANSLATE "Warning: Unterminated %%(...) substitution sequence" ""
TRANSLATE "Warning: Unterminated %%{...} substitution sequence" ""
TRANSLATE "Warning: Useless use of UNTIL with fully-specified date and no *rep" ""
TRANSLATE "Warning: Variable name `%.*s...' truncated to `%.*s'" ""
TRANSLATE "You have OMITted everything! The space-time continuum is at risk." ""
TRANSLATE "am" ""
TRANSLATE "at" ""
TRANSLATE "did you mean" ""
TRANSLATE "from now" ""
TRANSLATE "here" ""
TRANSLATE "hour" ""
TRANSLATE "minute" ""
TRANSLATE "now" ""
TRANSLATE "on" ""
TRANSLATE "pm" ""
TRANSLATE "psmoon() is deprecated; use SPECIAL MOON instead." ""
TRANSLATE "psshade() is deprecated; use SPECIAL SHADE instead." ""
TRANSLATE "remaining call frames omitted" ""
TRANSLATE "today" ""
TRANSLATE "was" ""
Agenda pel dijous, 1 de febrer de 2024:
Language: ca