Я бегу PHP
на windows vista
. Итак, я пытаюсь узнать, как работают языковые функции. Я начал сКак использовать функции PHP Locale
setlocale(LC_ALL, $locale)
и localeconv()
Сначала работал с идентификаторами локали CLDR (я думаю .., только начал изучать PHP локали), как «en_US», «en_UK», и т.д., в результате чего, как показано в Примеры документации PHP. Но теперь setlocale()
и localeconv()
работают только с $locale
значениями, такими как "English_United Kingdom.1252"
и "English_United States.1252"
, которые, я считаю, являются идентификаторами локали Windows.
Так что, когда я делаю:
var_dump(setlocale(LC_ALL, "en_US"));
var_dump(localeconv());
я получаю эти результаты:
boolean false
array (size=18)
'decimal_point' => string '.' (length=1)
'thousands_sep' => string '' (length=0)
'int_curr_symbol' => string '' (length=0)
'currency_symbol' => string '' (length=0)
'mon_decimal_point' => string '' (length=0)
'mon_thousands_sep' => string '' (length=0)
'positive_sign' => string '' (length=0)
'negative_sign' => string '' (length=0)
'int_frac_digits' => int 127
'frac_digits' => int 127
'p_cs_precedes' => int 127
'p_sep_by_space' => int 127
'n_cs_precedes' => int 127
'n_sep_by_space' => int 127
'p_sign_posn' => int 127
'n_sign_posn' => int 127
'grouping' =>
array (size=0)
empty
'mon_grouping' =>
array (size=0)
empty
Как мне сделать мои скрипты реагируют на CLDR региональные идентификаторы?
Значит ли это, что функция 'setlocale()' фактически находится в операционной системе и что 'PHP' просто называет ее? Это значит, что аргументы должны быть такими же, как определено/установлено на 'windows'? –
Я так думаю. Попробуйте использовать имя локали из приведенной выше ссылки, это должно работать на окнах. –