An embedded system, in contrast, normally places tight limits on available memory. Nonvolatile memory must store these messages, in essence splitting memory between text and program code. You'll find it absolutely amazing how fast text can chew up memory. So, for example, this column would require approximately 8k bytes of ROM for storage. That amount might not seem so bad, but multiply it by perhaps five languages, and all of a sudden text storage climbs to more than 40k bytes.
Programmers can choose from several ways to incorporate localization within source code.
The primary things you must change are date and time formats, decimal points and commas, currency and text messages. I'm a firm believer in isolating user-interface routines from the rest of the program code. As an example, a system might need to display frequencies in Hertz, kiloHertz or megaHertz. Within a program I keep all frequencies as, for example, Hertz. Any time the program must display a frequency, it calls a function that returns a string with the value formatted for the correct representation, such as megaHertz.