I am looking for opinions from experts that have written software consumed internationally. I would like to understand the best practices people have employeed at each logic
If you're using .Net, The Resource files (.resx) system is very flexible.
Look up usages of ResourceManager.GetString("string name", CultureInfo).
We use this system to flip between English, German, French, Spanish, Russian and Arabic quite successfully.
Also when considering usage in foreign locales, spend some time looking at Input as well as output; the Turkish problem is a good example of how different inputs can cause problems.