added basic caching and added the split_lang function that splits a string in multiple language components