This is actually pretty well documented by Apple. Basically you don't hardcode strings in your program. You put them in a separate file (in a particular format) and use NSLocalisedString
in your code. You can also localise your NIB files if you need to. Date handling is pretty much automatic if you use the correct APIs.
You submit a single application. The app bundle can contain many localisations.
iTunes Connect allows you to write a different page in each store/language.
The "best practice," I guess, is to follow Apple's guide. The only piece of advice I would add is don't rely on computer translation; get a real person to do it if you can't do it yourself. Google is pretty good but you don't want anything embarrassing slipping through!