When translating Arabic poetry and fiction into English (Arabic being a language that uses a vocative particle as a matter of course), my internally imposed rule is to use “O” to express the vocative particle (which is usually only necessary in poetry) and “Oh” for exclamation. Why I settled on that I couldn’t say.