Another option is to use a single Dialog array object with multiple instances. Just like you have multiple sprite instance, you can create multiple array instances. Then use the same trick of picking the right instance by comparing the instance variable.
I would then need 4 axis, something construct doesnt support
1. For dialog (the entire conversation)
2. For current dialog (the part it is upto)
3. For language
4. For owner
Also that was more original plan back when I had 1 and 2 as the same thing, however I figured it would be easier to organize this way.