Strings setlocale

(PHP 4, PHP 5, PHP 7, PHP 8)

setlocale — Set locale information


설명

setlocale(int $category, string $locales, string ...$rest): string|false

대체 서명(명명된 인수에서는 지원되지 않음):

setlocale(int $category, array $locale_array): string|false

로케일 정보를 설정합니다.

경고 로케일 정보는 스레드가 아닌 프로세스별로 유지됩니다. 다중 스레드 서버 API에서 PHP를 실행하는 경우 스크립트 자체가 setlocale()을 호출한 적이 없지만 스크립트가 실행되는 동안 로케일 설정이 갑자기 변경될 수 있습니다. 이것은 동일한 프로세스의 다른 스레드에서 동시에 실행되는 다른 스크립트로 인해 발생하며, setlocale()을 사용하여 프로세스 전체의 로케일을 변경합니다. Windows에서 로케일 정보는 PHP 7.0.5부터 스레드별로 유지됩니다.


매개변수

category
category는 로케일 설정의 영향을 받는 함수의 범주를 지정하는 명명된 상수입니다.
  • 아래 모든 항목에 대한 LC_ALL
  • 문자열 비교를 위한 LC_COLLATE, strcoll() 참조
  • 문자 분류 및 변환을 위한 LC_CTYPE(예: strtoupper())
  • localeconv()LC_MONETARY
  • 소수점 구분 기호용 LC_NUMERIC(localeconv() 참조)
  • strftime()을 사용한 날짜 및 시간 형식의 LC_TIME
  • 시스템 응답을 위한 LC_MESSAGES(PHP가 libintl로 컴파일된 경우 사용 가능)
locales
locales이 빈 문자열 ""인 경우 로케일 이름은 위의 범주와 동일한 이름을 가진 환경 변수 값 또는 "LANG"에서 설정됩니다.

locales"0"이면 로케일 설정은 영향을 받지 않고 현재 설정만 리턴됩니다.

locales 다음에 추가 매개변수가 있는 경우 성공할 때까지 각 매개변수를 새 로케일로 설정하려고 시도합니다. 이것은 로케일이 다른 시스템에서 다른 이름으로 알려진 경우 또는 사용할 수 없는 로케일에 대한 대체를 제공하는 경우에 유용합니다.

rest
성공할 때까지 로케일 설정으로 시도할 선택적 문자열 매개변수입니다.
locale_array
각 배열 요소는 성공할 때까지 새 로케일로 설정하려고 합니다. 이것은 로케일이 다른 시스템에서 다른 이름으로 알려진 경우 또는 사용할 수 없는 로케일에 대한 대체를 제공하는 경우에 유용합니다.

메모: Windows에서 setlocale(LC_ALL, '')은 시스템의 지역/언어 설정(제어판을 통해 액세스 가능)에서 로케일 이름을 설정합니다.


반환 값

새로운 현재 로케일을 리턴하거나 로케일 기능이 플랫폼에 구현되지 않았거나 지정된 로케일이 존재하지 않거나 카테고리 이름이 유효하지 않은 경우 false를 리턴합니다.

잘못된 범주 이름으로 인해 경고 메시지도 표시됩니다. 카테고리/로케일 이름은 » RFC 1766» ISO 639에서 찾을 수 있습니다. 시스템마다 로케일에 대한 명명 체계가 다릅니다.

메모: setlocale()의 반환 값은 PHP가 실행 중인 시스템에 따라 다릅니다. 시스템 setlocale 함수가 반환하는 것을 정확히 반환합니다.


Examples

예제 #1 setlocale() 예제

                  
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nl_NL');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>
                  
                

예제 #2 Windows용 setlocale() 예제

                  
<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>
                  
                

메모

Windows 사용자는 Microsoft의 MSDN 웹 사이트에서 locales 문자열에 대한 유용한 정보를 찾을 수 있습니다. 지원되는 언어 문자열은 » language strings documentation에서, 지원되는 국가/지역 문자열은 » country/region strings documentation에서 찾을 수 있습니다.