[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Reordering and internationalization



When modifying code to work for users who use another language,
it is frequently necessary to reorder the "data" parts of the
output to match the syntax of the language of output.

For example, if I am talking about some chunk of data as a
thing being acted upon (linguistically, a direct object) by
a procedure (linguistically, a verb) in my debugger error
messages, then the verb should come before the direct object
in English, but the verb should come after the direct object
in German.  Since both of these (data and function name) are
likely to be parameters of the format statement, being unable
to reorder them by just changing the format string causes a
problem.

When finished, I'd like to be able to write something like:

(let ((language 'en ))
  (display
     (format (strings "sorry, can't ~1a the object ~2a" language)
	errproc
	errdata)))

Because this would allow all the localization can be done
by providing additional format strings for different languages,
without the need to rearrange code.  Specifically, this would
allow the same code to operate in multiple languages as long
as a binding for the variable 'language' were in scope and
the strings function had lookup tables for format strings in
the specified language.  (I'm assuming use of the same language
specifiers as used in the HTTP protocol).

			Bear

(considering writing that SRFI for the (strings) function...)