   Language packs
  Hello all!I was trying to imagine which way would be the best to implement multi-language support in a software. I already saw many programs that make several compiled versions available, each one for a specific language. I also saw programs that allow you to download and install language packs and games that come with some languages already available for you to choose.So I'm wondering, how do they implement these things? Some kind of internal database for selecting the correct strings to be displayed on the screen? Or any other technique?If someone knows, please answer. I'd be grateful.Just to be clear, I'm not talking about programming languages, I'm talking about spoken languages :DThanks!   
  The basic idea is that, rather than string literals, you use identifiers in your program which correspond to the various strings. To switch language you switch what strings those identifiers correspond to. How you set up the mapping is up to you and your requirements.   ;  This is usually called 'localization'. Database, csv file, whatever suits your needs - the core idea is the same: instead of hard-coding strings, you store them externally and refer to them, with a mechanism in place to swap the underlying strings with those of another language.There are certain issues to take into account, such as some languages taking in more screen space than others. You may want to do some research to get familiar with the subject.   ;  There was an article recently about some issues related to localizing, especially with respect to East Asian languages. The poster also talked about computer-assisted translation, which you should find useful. Keep in mind that localization and internationalization are broader than just translation - you have to consider style, number formats, local customs and sensitivities, religious issues, etc.Some things which you will also have to consider: 1) getting your font engine to deal with other alphabets (German is easy, Greek and Cyrillic are still palatable, Kanji and Kana get much more complicated (not to mention there's just too many of them), Arabic and Hangul will make you cry and are probably not worth the trouble)2) voices also have to be localized3) any images with hardcoded text (fancy buttons) have to be localized - best solution is probably not to hardcode any such text   ;  Another thing to be aware of is that there is more to localization than just language. Numeric formats, anything involving money, hardware support... not to mention the various different cultural standards for what is acceptable.In general, the best way to support different locales is to prepare for it ahead of time, and do your research.The two key search words are Internationalization (the act of making your software easy to change locales) and Localization (actually creating localized content/configuration).   ;  Thanks for all your replies!In a small project I developed a couple of months ago, I used identifiers instead of string literals, just like Colin Jeanne said above, and I read the strings from a simple text file. So I was in doubt if this approach would be valid for larger projects.And thanks for the tips about internationalization and localization. I didn't even know these were the keywords I should be looking for =D   