Well, regarding your code:
Debug.Log ("languages : " + Localization.knownLanguages.ToString ());
You are getting exactly what you're asking. KnownLanguages is an array. Using ToString() on it is not going to give you any meaningful info.
As for the rest... Awake() is the wrong place to do anything other than initialize local script values. Never use Awake() unless you know exactly what it's for. Use Start() instead.
UILocalize should work however. Assuming the chosen language is valid and the Localization.csv is present in the resources folder. Note that if you have your own Localization.csv, you must make sure that you delete NGUI's.