I’m pretty sure “-” is the standard. If you see “_” somewhere it’s probably something some people came up with to make it a valid identifier.
Personally I’d go with “-“, just to be correct.
http://en.wikipedia.org/wiki/IETF_language_tag
https://datatracker.ietf.org/doc/html/rfc5646