setlocale
  Set locale information
  
 
 
  Description
  
   stringfalse setlocale(int $category, stringnull $locales, string ...$rest)
  Alternative signature (not supported with named arguments):
  stringfalse setlocale(int $category, array $locale_array)
  
  Warning
   
    The locale information is maintained per process, not per thread. If you
    are running PHP on a multithreaded server API
    , you may experience sudden changes in locale settings while a
    script is running, though the script itself never called 
    setlocale. This happens due to other scripts
    running in different threads of the same process at the same time,
    changing the process-wide locale using setlocale.
    On Windows, locale information is maintained per thread as of PHP 7.0.5.
   
   
  
 
  Parameters
  
   
    
     - 
category
- 
      
       categoryis a named constant specifying the
       category of the functions affected by the locale setting:
 
        - 
         
          LC_ALLfor all of the below
- 
         
          LC_COLLATEfor string comparison, see
          strcoll
- 
         
          LC_CTYPEfor character classification and conversion, for
          example ctype_alpha
- 
         
          LC_MONETARYfor localeconv
- 
         
          LC_NUMERICfor decimal separator (See also
          localeconv)
- 
         
          LC_TIMEfor date and time formatting with
          strftime
- 
         
          LC_MESSAGESfor system responses (available if PHP was compiled withlibintl)
 
- 
locales
- 
      
       If localesis the empty string""or isnull, the locale names will be set from the
       values of environment variables with the same names as the above
       categories, or from "LANG".
 
       If localesis"0",
       the locale setting is not affected, only the current setting is returned.
 
       If localesis followed by additional
       parameters then each parameter is tried to be set as
       new locale until success. This is useful if a locale is known under
       different names on different systems or for providing a fallback
       for a possibly not available locale.
 
- 
rest
- 
      
       Optional string parameters to try as locale settings until
       success.
       
- 
locale_array
- 
      
       Each array element is tried to be set as
       new locale until success. This is useful if a locale is known under
       different names on different systems or for providing a fallback
       for a possibly not available locale.
       
Note: 
    
     On Windows, setlocale(LC_ALL, '') sets the locale names from the
     system's regional/language settings (accessible via Control Panel).
    
   
  
  
 
  Return Values
  
   Returns the new current locale, or false if the locale functionality is
   not implemented on your platform, the specified locale does not exist or
   the category name is invalid.
  
  
   An invalid category name also causes a warning message. Category/locale
   names can be found in » RFC 1766
   and » ISO 639.
   Different systems have different naming schemes for locales.
  
  Note: 
   
    The return value of setlocale depends
    on the system that PHP is running.  It returns exactly
    what the system setlocale function returns.
   
  
  
 
  Examples
  
   
    Example #1 setlocale Examples
    
<?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'";
?>
 
    
  
  
   
    Example #2 setlocale Retrieve current setting
    
<?php
/* Retrieve current setting */
$current = setlocale(LC_ALL, null);
echo "Current locale '$current'";
?>
 
    
  
  
   
    Example #3 setlocale Examples for Windows
    
<?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'";
?>