Previous Topic: SyntacticNext Topic: National Language Groups


Semantic

At the Semantic level, you have those aspects of application design that contain cultural or linguistic dependency which varies by language; you must either parameterize these, or compartmentalize them into replaceable language-specific modules.

An example might be a module to write out a check—you have a check-writing program that spells out any amount in grammatical English, for example "Two million three hundred and forty five dollars and six cents". The rules for stringing numbers together are different in different languages, so to translate this into German, for example, will take more than a word-for-word translation of the words used.

Any form of string processing tends to have cultural assumptions in it; for instance, extracting a zip code from an address line (and zip codes themselves). Implicit assumptions are also often made in the use of different units of measurement and conversion factors, currencies in particular—not just in the symbols, but also in the precision of the units. For example, useful amounts of lira and yen have too many zeros for a 15-digit RPG III numeric field, and they may need to be stored in a truncated format. Calculations dependent on human law rather than natural law, for instance tax, are also highly specific to particular countries. Certain applications tend to be so culture specific, for example payroll tax or accounting rules, that it is almost impossible to "internationalize" them without coding entirely separate modules.

There are also national differences in the rounding method used; in the convention for showing a negative amount (‘-’, ‘CR’), and in the symbol used for a percentage (‘%’ or ‘pct’).