More generic way to determine if a field is multilingual

By keeping a list of known language prefixes we can hopefully detect
when a field has been translated by checking if all of the keys are
valid language codes, then translating the keys based on the provided
languages.