<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'function.setlocale.php',
    1 => 'setlocale',
    2 => 'ロケール情報を設定する',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'String 関数',
  ),
  'prev' => 
  array (
    0 => 'function.rtrim.php',
    1 => 'rtrim',
  ),
  'next' => 
  array (
    0 => 'function.sha1.php',
    1 => 'sha1',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/strings/functions/setlocale.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.setlocale" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">setlocale</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">setlocale</span> &mdash; <span class="dc-title">ロケール情報を設定する</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.setlocale-description">
  <h3 class="title">説明</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>setlocale</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$category</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$locales</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">...$rest</code></span>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="simpara">代替のシグネチャ (名前付き引数をサポートしていません):</p>
  <div class="methodsynopsis dc-description"><span class="methodname"><strong>setlocale</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$category</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$locale_array</code></span>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   ロケール情報を設定します。
  </p>
  <div class="warning"><strong class="warning">警告</strong>
   <p class="para">
    ロケール情報は、スレッド毎ではなくプロセス毎に維持されます。
    もし PHP を マルチスレッドサーバーAPI 上で動作させている場合、
    スクリプトを実行している間にロケールの設定が突然変わるのを
    経験するかも知れませんが、スクリプト自身は決して
    <span class="function"><strong>setlocale()</strong></span> 自身をコールしていません。
    これは同時に同一プロセスの異なるスレッドで実行されている他のスクリプトが
    <span class="function"><strong>setlocale()</strong></span>
    を使用してプロセスワイドなロケールを変更する事により発生します。
    Windows では、PHP 7.0.5 以降、
    ロケール情報はスレッド単位で維持されるようになっています。
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.setlocale-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">category</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">category</code>は、名前付きの定数(または文字列)であり、
       ロケール設定により影響を受ける関数のカテゴリを指定します。
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-all">LC_ALL</a></code></strong> 以下のものすべて
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-collate">LC_COLLATE</a></code></strong> 文字列の比較用。<span class="function"><a href="function.strcoll.php" class="function">strcoll()</a></span> も参照
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-ctype">LC_CTYPE</a></code></strong> 文字の分類と変換。たとえば <span class="function"><a href="function.ctype-alpha.php" class="function">ctype_alpha()</a></span>
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-monetary">LC_MONETARY</a></code></strong> <span class="function"><a href="function.localeconv.php" class="function">localeconv()</a></span> 用
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-numeric">LC_NUMERIC</a></code></strong> 数字の区切り文字用(<span class="function"><a href="function.localeconv.php" class="function">localeconv()</a></span>
          も参照ください)
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-time">LC_TIME</a></code></strong> 日時。<span class="function"><a href="function.strftime.php" class="function">strftime()</a></span>でフォーマットに使用
         </span>
        </li>
        <li class="listitem">
         <span class="simpara">
          <strong><code><a href="string.constants.php#constant.lc-messages">LC_MESSAGES</a></code></strong> システムの応答用(PHP が <code class="literal">libintl</code>
          とともにコンパイルされている場合のみ使用可能)
         </span>
        </li>
       </ul>
      </p>
     </dd>
    
    
     <dt><code class="parameter">locales</code></dt>
     <dd>
      <p class="para">
       <code class="parameter">locales</code>が空の文字列
       <code class="literal">&quot;&quot;</code> または <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> の場合、
       ロケール名は上記のカテゴリと同じ名前の環境変数の値、
       または環境変数 &quot;LANG&quot; からセットされます。
      </p>
      <p class="para">
       <code class="parameter">locales</code> が <code class="literal">&quot;0&quot;</code> の場合、
       ロケール設定は適用されず、単に現在の設定が返されます。
      </p>
      <p class="para">
       <code class="parameter">locales</code> に追加のパラメータが続く場合、
       それぞれのパラメータは成功するまで新規ロケールとしてセットされます。
       これは、ロケールが異なるシステムで異なる名前を持っている、
       もしくはロケールが利用できない場合のフォールバックを提供するといった場合に有用です。
      </p>
     </dd>
    
    
     <dt><code class="parameter">rest</code></dt>
     <dd>
      <p class="para">
       オプションの文字列。ロケール設定が成功するまで設定を試みます。
      </p>
     </dd>
    
    
     <dt><code class="parameter">locale_array</code></dt>
     <dd>
      <p class="para">
       それぞれの配列の要素が、
       新しいロケールとして設定が成功するまで設定を試みます。
       これは、異なるシステムでロケールが違う名前として認識されたり、
       ロケールが利用できない可能性がある場合にフォールバックさせる目的で使うと便利です。
      </p>
     </dd>
    
   </dl>
   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <p class="para">
     Windows では、setlocale(LC_ALL, &#039;&#039;) を使用するとシステムの
     地域と言語の設定の値を使用します (コントロールパネルで確認できます)。
    </p>
   </p></blockquote>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.setlocale-returnvalues">
  <h3 class="title">戻り値</h3>
  <p class="para">
   現在の新しいロケールを返します。ロケール機能が未実装、
   指定されたロケールが存在しない、カテゴリ名が無効などの場合は
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返します。
  </p>
  <p class="para">
   また、カテゴリ名が無効の場合は警告メッセージが発生します。
   カテゴリやロケール名は、
   <a href="https://datatracker.ietf.org/doc/html/rfc1766" class="link external">&raquo;&nbsp;RFC 1766</a>
   や <a href="http://www.loc.gov/standards/iso639-2/php/code_list.php" class="link external">&raquo;&nbsp;ISO 639</a> にあります。
   ロケールの命名方式は、システムによって異なります。
  </p>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    <span class="function"><strong>setlocale()</strong></span> の戻り値は、
    PHP が実行されているシステムに依存します。
    システムの <code class="literal">setlocale</code> 関数が返す値を返すためです。
   </p>
  </p></blockquote>
 </div>

 <div class="refsect1 changelog" id="refsect1-function.setlocale-changelog">
  <h3 class="title">変更履歴</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>バージョン</th>
      <th>説明</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.5.0</td>
      <td>
       <code class="parameter">locales</code> 引数に整数 <code class="literal">0</code>
       を渡すことはサポートされなくなり、
       <span class="classname"><a href="class.typeerror.php" class="classname">TypeError</a></span> がスローされるようになりました。
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="refsect1 examples" id="refsect1-function.setlocale-examples">
  <h3 class="title">例</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>例1 <span class="function"><strong>setlocale()</strong></span> の例</strong></p>
    <div class="example-contents">
<div class="annotation-non-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* ロケールをオランダ語に設定 */<br /></span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">, </span><span style="color: #DD0000">'nl_NL'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* 出力: vrijdag 22 december 1978 */<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">strftime</span><span style="color: #007700">(</span><span style="color: #DD0000">"%A %e %B %Y"</span><span style="color: #007700">, </span><span style="color: #0000BB">mktime</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">12</span><span style="color: #007700">, </span><span style="color: #0000BB">22</span><span style="color: #007700">, </span><span style="color: #0000BB">1978</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/* ドイツに対して利用可能な異なるロケール名を使用する */<br /></span><span style="color: #0000BB">$loc_de </span><span style="color: #007700">= </span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">, </span><span style="color: #DD0000">'de_DE@euro'</span><span style="color: #007700">, </span><span style="color: #DD0000">'de_DE'</span><span style="color: #007700">, </span><span style="color: #DD0000">'de'</span><span style="color: #007700">, </span><span style="color: #DD0000">'ge'</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Preferred locale for german on this system is '</span><span style="color: #0000BB">$loc_de</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>例2 <span class="function"><strong>setlocale()</strong></span> で現在の設定を取得する</strong></p>
    <div class="example-contents">
<div class="annotation-non-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Retrieve current setting */<br /></span><span style="color: #0000BB">$current </span><span style="color: #007700">= </span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">, </span><span style="color: #0000BB">null</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Current locale '</span><span style="color: #0000BB">$current</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>例3 Windows での <span class="function"><strong>setlocale()</strong></span> の例</strong></p>
    <div class="example-contents">
<div class="annotation-non-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* ロケールをオランダ語に設定 */<br /></span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">, </span><span style="color: #DD0000">'nld_nld'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* 出力: vrijdag 22 december 1978 */<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">strftime</span><span style="color: #007700">(</span><span style="color: #DD0000">"%A %d %B %Y"</span><span style="color: #007700">, </span><span style="color: #0000BB">mktime</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">12</span><span style="color: #007700">, </span><span style="color: #0000BB">22</span><span style="color: #007700">, </span><span style="color: #0000BB">1978</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/* ドイツに対して利用可能な異なるロケール名を使用する */<br /></span><span style="color: #0000BB">$loc_de </span><span style="color: #007700">= </span><span style="color: #0000BB">setlocale</span><span style="color: #007700">(</span><span style="color: #0000BB">LC_ALL</span><span style="color: #007700">, </span><span style="color: #DD0000">'de_DE@euro'</span><span style="color: #007700">, </span><span style="color: #DD0000">'de_DE'</span><span style="color: #007700">, </span><span style="color: #DD0000">'deu_deu'</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Preferred locale for german on this system is '</span><span style="color: #0000BB">$loc_de</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.setlocale-notes">
  <h3 class="title">注意</h3>
  <div class="tip"><strong class="tip">ヒント</strong>
   <p class="para">
    Windows ユーザーは Microsoft の <abbr title="Microsoft Developer Network">MSDN</abbr> の Web サイトに
    <code class="parameter">locales</code>
    文字列に関する有用な情報を見つけることができるでしょう。
    サポートしている言語文字列は
    <a href="http://msdn.microsoft.com/en-us/library/39cwe7zf.aspx" class="link external">&raquo;&nbsp;言語文字列のドキュメント</a>、
    そしてサポートしている国/地域文字列は
    <a href="http://msdn.microsoft.com/en-us/library/cdax410z.aspx" class="link external">&raquo;&nbsp;国/地域文字列のドキュメント</a>
    にあります。
   </p>
  </div>
 </div>


</div><?php manual_footer($setup); ?>