In my system I've been developing I do as Zipster says. There is no reason for the native code to deal with specific resources - it's all routed through script. Since I'm implementing a sort of Scheme dialect, I have hashed keywords out of the box, which work just fine. I limit the use of strings strictly to user interfaces.
My reinterpretation of Zipster's example would be:
(entity gigantopithicus (attack-sound :gigantopithicus-attack.wav))