Yes there is a standard way for doing this (actually it's the standard iPhone way):
So add an .lproj folder for every language you want localization:
let's assume you added the folders:
en.lproj (english) it.lproj (italian) de.lproj (german), usw...
To each folder add a file called Localizable.strings (set as content!)
These Localizable.strings files have following content (showing the DE-version):
// comment
"House" = "Haus";
"Tree" = "Baum";
Make sure that the left-hand side is equal in all Localizable.strings-files, it's actually the keyword that you access like that:
string nameForTree = NSBundle.MainBundle.LocalizedString ("Tree", "", "");
Instead of "Tree" you could of course also use something like "treelabel.text". But Apple recommends to use non-technical word or sentence.
Since I had a lot to localize I made the code easier to read with an extra class:
using System;
using MonoTouch.Foundation;
namespace FSE.Localization
{
public static class Loc
{
public static string t(string toTranslate) {
return NSBundle.MainBundle.LocalizedString(toTranslate,"","");
}
}
}
So the line gets much shorter:
string nameForTree = Loc.t("Tree");