Ответ 1
Подождите, подождите, подождите. Ребята, я уверен, что "-" - это стандарт. Если вы видите "_" где-то, возможно, что-то некоторые люди придумали, чтобы сделать его действительным идентификатором.
Лично я бы пошел с "-", чтобы быть прав.
Предположим, что вы хотите сохранить локаль пользовательских предпочтений в базе данных, какое значение вы будете использовать?
ru_US или en-US
Это два стандарта, но какой из них вы предпочитаете использовать как часть своего собственного приложения?
Обновлено. Кажется, что многие веб-сайты используют тире вместо подчеркивания, например.
http://zh.wikipedia.org/zh-tw http://www.google.com.hk/search?hl=zh-TW
Подождите, подождите, подождите. Ребята, я уверен, что "-" - это стандарт. Если вы видите "_" где-то, возможно, что-то некоторые люди придумали, чтобы сделать его действительным идентификатором.
Лично я бы пошел с "-", чтобы быть прав.
Если вы работаете с Java, вы можете также использовать языковой формат Java (en_US
).
В документах BCP 47 действительно указывается формат en-US
, и он так же распространен, если не более распространен, чем имена языкового стиля в стиле Java, Но на практике вы увидите форму с подлодкой совсем немного. Например, Java и большинство платформ POSIX используйте подставку для своего разделителя языка/региона.
Таким образом, вы не можете ошибиться ни с одним из вариантов. Но учитывая, что вы пишете на Java и, возможно, нацеливаете на платформу Unix, возможно, en_US
.
В Java 7 существует новый метод Locale.forLanguageTag(String)
, который принимает дефис как разделитель. Я считаю это нормативным.
Подробнее см. документацию Locale.
en_US. Это очень полезно прочитать.
Я не думаю, что en-US
является стандартом для Java. (Если вы видите его где-нибудь, вы можете добавить ссылку).
Поэтому просто используйте en_US
.