<firstterm>Locale</firstterm> support refers to an application respecting cultural preferences regarding alphabets, sorting, number formatting, etc. <productname>PostgreSQL</productname> uses the standard ISO C and <acronym>POSIX</acronym> locale facilities provided by the server operating system. For additional information refer to the documentation of your system. ロケールのサポートはアルファベット、並べ替え、数字の書式など文化的嗜好を配慮したアプリケーションを対象にします。 PostgreSQLは、サーバのオペレーティングシステムが提供する、標準ISO CとPOSIXのロケール機能を使用します。 これ以上の情報についてはお使いのシステムのドキュメントを参照してください。
Locale support is automatically initialized when a database
cluster is created using <command>initdb</command>.
<command>initdb</command> will initialize the database cluster
with the locale setting of its execution environment by default,
so if your system is already set to use the locale that you want
in your database cluster then there is nothing else you need to
do. If you want to use a different locale (or you are not sure
which locale your system is set to), you can instruct
<command>initdb</command> exactly which locale to use by
specifying the <option>--locale</option> option. For example:
ロケールのサポートは、initdb
を使用してデータベースクラスタを作成する時に自動で初期化されます。
initdb
は、デフォルトでその実行環境のロケール設定に従ってデータベースクラスタを初期化します。
そのため、システムがデータベースクラスタで使用したいロケールを使用するように既に設定してある場合は何も行う必要はありません。
違うロケールを使用したい場合(またはシステムのロケール設定が不明な場合)は、initdb
の--locale
オプションで希望のロケールを指定することができます。
以下に例を示します。
initdb --locale=sv_SE
This example for Unix systems sets the locale to Swedish
(<literal>sv</literal>) as spoken
in Sweden (<literal>SE</literal>). Other possibilities might include
<literal>en_US</literal> (U.S. English) and <literal>fr_CA</literal> (French
Canadian). If more than one character set can be used for a
locale then the specifications can take the form
<replaceable>language_territory.codeset</replaceable>. For example,
<literal>fr_BE.UTF-8</literal> represents the French language (fr) as
spoken in Belgium (BE), with a <acronym>UTF-8</acronym> character set
encoding.
Unixシステム用のこの例の設定はロケールをスウェーデン(SE
)で使用されているスウェーデン語(sv
)に合わせています。
他にもen_US
(米国英語)やfr_CA
(カナダのフランス語)などの設定もできます。
ロケールに複数の文字セットが使用可能であれば、language_territory.codeset
のように記述することができます。
例えば、fr_BE.UTF-8
はベルギー(BE)で使用されているフランス語(fr)でUTF-8の文字セットを表します。
What locales are available on your
system under what names depends on what was provided by the operating
system vendor and what was installed. On most Unix systems, the command
<literal>locale -a</literal> will provide a list of available locales.
Windows uses more verbose locale names, such as <literal>German_Germany</literal>
or <literal>Swedish_Sweden.1252</literal>, but the principles are the same.
お使いのシステムでどのロケールがどういう名前で使えるかはオペレーティングシステムのベンダがどのようなものを提供しているかと、何がインストールされているかに依存します。
ほとんどのUnixシステムでは、locale -a
というコマンドで利用可能なロケールの一覧を入手できます。
Windowsは、German_Germany
やSwedish_Sweden.1252
のようなもっと冗長なロケール名を使用しますが、原理は同じです。
Occasionally it is useful to mix rules from several locales, e.g., use English collation rules but Spanish messages. To support that, a set of locale subcategories exist that control only certain aspects of the localization rules: 英語の照合順序規則でスペイン語のメッセージを使用する時など、時として複数のロケールの規則を併用すると便利です。 これをサポートするために、ロケールには以下のようなローカライゼーション規則の特定の箇所だけを管理する一連のサブカテゴリがあります。
LC_COLLATE | 文字列の並べ替え順 |
LC_CTYPE | 文字の分類(文字とはどんなもの?大文字小文字を区別しない?) |
LC_MESSAGES | メッセージの言語 |
LC_MONETARY | 通貨書式 |
LC_NUMERIC | 数字の書式 |
LC_TIME | 日付と時刻の書式 |
The category names translate into names of
<command>initdb</command> options to override the locale choice
for a specific category. For instance, to set the locale to
French Canadian, but use U.S. rules for formatting currency, use
<literal>initdb --locale=fr_CA --lc-monetary=en_US</literal>.
これらのカテゴリの名前は、特定のカテゴリについてのロケールの選択を上書きするためのinitdb
オプションの名前としてそのまま使用できます。
例えば、ロケールをカナダのフランス語に設定しながら通貨書式については米国の規則を使用するには、initdb --locale=fr_CA --lc-monetary=en_US
とします。
If you want the system to behave as if it had no locale support,
use the special locale name <literal>C</literal>, or equivalently
<literal>POSIX</literal>.
システムがロケールをサポートしていないように動作させたい場合は、特別なロケールのC
、もしくは同等なPOSIX
を使用してください。
Some locale categories must have their values
fixed when the database is created. You can use different settings
for different databases, but once a database is created, you cannot
change them for that database anymore. <literal>LC_COLLATE</literal>
and <literal>LC_CTYPE</literal> are these categories. They affect
the sort order of indexes, so they must be kept fixed, or indexes on
text columns would become corrupt.
(But you can alleviate this restriction using collations, as discussed
in <xref linkend="collation"/>.)
The default values for these
categories are determined when <command>initdb</command> is run, and
those values are used when new databases are created, unless
specified otherwise in the <command>CREATE DATABASE</command> command.
一部のロケールカテゴリでは、その値がデータベース生成時に固定されていなければならないものがあります。
他のデータベースで他の設定を使用することができますが、一度データベースが生成されると、そのデータベースでは変更することができません。
LC_COLLATE
とLC_CTYPE
がこれらのカテゴリにあてはまります。
これらはインデックスのソート順に影響を及ぼすため、固定されていなければなりません。
さもないと、テキスト型の列上のインデックスは破壊されるでしょう。
(しかし23.2内で述べられているように、照合順序を使用することで、この制限を緩和できます)
initdb
が実行された時に、これらのカテゴリのデフォルト値は決定され、CREATE DATABASE
コマンドで他を指定しない限り、新しいデータベースが作成されるときにこの値が使用されます。
The other locale categories can be changed whenever desired
by setting the server configuration parameters
that have the same name as the locale categories (see <xref
linkend="runtime-config-client-format"/> for details). The values
that are chosen by <command>initdb</command> are actually only written
into the configuration file <filename>postgresql.conf</filename> to
serve as defaults when the server is started. If you remove these
assignments from <filename>postgresql.conf</filename> then the
server will inherit the settings from its execution environment.
その他のロケールカテゴリは、いつでも、ロケールカテゴリと同じ名前の実行時パラメータを設定することで、希望値に変更できます
(詳細は19.11.2を参照してください)。
initdb
で選択された値は、実際のところ、サーバの起動時にデフォルトとして動作するようにpostgresql.conf
設定ファイルに書き込まれるだけです。
この代入文をpostgresql.conf
から削除すると、サーバは実行環境の設定をそのまま使用します。
Note that the locale behavior of the server is determined by the environment variables seen by the server, not by the environment of any client. Therefore, be careful to configure the correct locale settings before starting the server. A consequence of this is that if client and server are set up in different locales, messages might appear in different languages depending on where they originated. サーバのロケールの動作はどのクライアントの環境にも依存せず、サーバが参照できる環境変数で決まります。 ですからサーバを稼働させる前に正しいロケール設定を行うように注意してください。 結果としてサーバとクライアントで異なるロケールが設定されていると、メッセージはそれらがどこから生じたかによって、異なる言語で表示されます。
When we speak of inheriting the locale from the execution
environment, this means the following on most operating systems:
For a given locale category, say the collation, the following
environment variables are consulted in this order until one is
found to be set: <envar>LC_ALL</envar>, <envar>LC_COLLATE</envar>
(or the variable corresponding to the respective category),
<envar>LANG</envar>. If none of these environment variables are
set then the locale defaults to <literal>C</literal>.
実行環境のロケールをそのまま使用するということは、ほとんどのオペレーティングシステムでは次のような意味を持ちます。
指定されたロケールカテゴリ(例えば照合順序)について、設定するものが見つかるまで、以下の環境変数がこの順番で調べられます。LC_ALL
、LC_COLLATE
(またはそれぞれのカテゴリに対応する変数)、LANG
。
これらのいずれの環境変数も設定されない場合に、ロケールはデフォルトでC
に設定されます。
Some message localization libraries also look at the environment
variable <envar>LANGUAGE</envar> which overrides all other locale
settings for the purpose of setting the language of messages. If
in doubt, please refer to the documentation of your operating
system, in particular the documentation about
<application>gettext</application>.
メッセージの言語を設定する目的で、メッセージローカライゼーションライブラリの中には全てのロケール設定を上書きする環境変数LANGUAGE
を検索するものがあります。
お使いのシステムでの挙動が不明ならばより詳細な情報を得るためお使いのオペレーティングシステムの文書、特にgettextの文書を参照してください。
To enable messages to be translated to the user's preferred language,
<acronym>NLS</acronym> must have been selected at build time
(<literal>configure --enable-nls</literal>). All other locale support is
built in automatically.
ユーザの選択した言語にメッセージを翻訳できるようにするためにはNLSを構築時に有効にする(configure --enable-nls
)必要があります。
他のロケールサポートはすべて自動的に構築されます。
The locale settings influence the following SQL features: ロケールの設定は以下のSQL機能に影響を与えます。
Sort order in queries using <literal>ORDER BY</literal> or the standard
comparison operators on textual data
<indexterm><primary>ORDER BY</primary><secondary>and locales</secondary></indexterm>
文字列データに対するORDER BY
または標準の比較演算子を使用した問い合わせにおける並べ替え順
The <function>upper</function>, <function>lower</function>, and <function>initcap</function>
functions
<indexterm><primary>upper</primary><secondary>and locales</secondary></indexterm>
<indexterm><primary>lower</primary><secondary>and locales</secondary></indexterm>
upper
、lower
、initcap
関数
Pattern matching operators (<literal>LIKE</literal>, <literal>SIMILAR TO</literal>,
and POSIX-style regular expressions); locales affect both case
insensitive matching and the classification of characters by
character-class regular expressions
<indexterm><primary>LIKE</primary><secondary>and locales</secondary></indexterm>
<indexterm><primary>regular expressions</primary><secondary>and locales</secondary></indexterm>
(LIKE
、SIMILAR TO
やPOSIX形式の正規表現といった)パターンマッチング演算子では
ロケールは大文字、小文字を区別せず正規表現の文字クラスによる文字の区別に影響を及ぼします。
The <function>to_char</function> family of functions
<indexterm><primary>to_char</primary><secondary>and locales</secondary></indexterm>
一群のto_char
関数
The ability to use indexes with <literal>LIKE</literal> clauses
LIKE
節が付いたインデックスを使用する性能
The drawback of using locales other than <literal>C</literal> or
<literal>POSIX</literal> in <productname>PostgreSQL</productname> is its performance
impact. It slows character handling and prevents ordinary indexes
from being used by <literal>LIKE</literal>. For this reason use locales
only if you actually need them.
C
やPOSIX
以外で、PostgreSQLでロケールを使用する際の欠点は実行速度です。
ロケールは文字の扱いを遅くし、さらにLIKE
で通常のインデックスが使用されなくなります。この理由から、本当に必要な時のみロケールを使用してください。
As a workaround to allow <productname>PostgreSQL</productname> to use indexes
with <literal>LIKE</literal> clauses under a non-C locale, several custom
operator classes exist. These allow the creation of an index that
performs a strict character-by-character comparison, ignoring
locale comparison rules. Refer to <xref linkend="indexes-opclass"/>
for more information. Another approach is to create indexes using
the <literal>C</literal> collation, as discussed in
<xref linkend="collation"/>.
C以外のロケールにおいて、PostgreSQLがLIKE
句を持つインデックスを使用できるようにする回避方法として、いくつかのカスタム演算子クラスがあります。
これらを用いると、文字と文字を厳密に比較するようなインデックスや、ロケールの比較規則を無視するようなインデックスを作成できます。
詳細は11.10を参照してください。
もうひとつの方法は、23.2内で解説されているようなC
照合順序を使用してインデックスを作成することです。
Locales can be selected in different scopes depending on requirements.
The above overview showed how locales are specified using
<command>initdb</command> to set the defaults for the entire cluster. The
following list shows where locales can be selected. Each item provides
the defaults for the subsequent items, and each lower item allows
overriding the defaults on a finer granularity.
ロケールは、要件に応じて異なる範囲で選択できます。
前述の概要では、initdb
を使用してロケールを指定し、クラスタ全体のデフォルトを設定する方法を説明しました。
次のリストは、ロケールを選択できる場所を示しています。
各項目は後続の項目のデフォルトを提供し、下位の各項目はより細かい粒度でデフォルトを上書きできます。
As explained above, the environment of the operating system provides the defaults for the locales of a newly initialized database cluster. In many cases, this is enough: if the operating system is configured for the desired language/territory, by default <productname>PostgreSQL</productname> will also behave according to that locale. 《マッチ度[84.179104]》上で説明したように、オペレーティングシステムの環境は、新しく初期化されたデータベースクラスタのロケールのデフォルトを提供します。 多くの場合、これで十分です。 オペレーティングシステムが目的の言語/地域に設定されている場合、PostgreSQLもデフォルトでそのロケールに従って動作します。 《機械翻訳》上で説明したように、オペレーティングシステムの環境は、新しく初期化されたデータベースクラスタのロケールのデフォルトを提供します。 多くの場合、これで十分です。 オペレーティングシステムが目的の言語/地域に設定されている場合、デフォルトによってPostgreSQLもそのロケールに従って動作します。
As shown above, command-line options for <command>initdb</command>
specify the locale settings for a newly initialized database cluster.
Use this if the operating system does not have the locale configuration
you want for your database system.
上記のように、initdb
のコマンドラインオプションでは、新しく初期化されたデータベースクラスタのロケール設定を指定します。
オペレーティングシステムにデータベースシステムに必要なロケール設定がない場合に使用します。
A locale can be selected separately for each database. The SQL command
<command>CREATE DATABASE</command> and its command-line equivalent
<command>createdb</command> have options for that. Use this for example
if a database cluster houses databases for multiple tenants with
different requirements.
ロケールはデータベースごとに個別に選択できます。
SQLコマンドCREATE DATABASE
とそれに相当するコマンドラインcreatedb
には、そのためのオプションがあります。
これは、データベース・クラスタに、異なる要件を持つ複数のテナントのデータベースが格納されている場合などに使用します。
Locale settings can be made for individual table columns. This uses an SQL object called <firstterm>collation</firstterm> and is explained in <xref linkend="collation"/>. Use this for example to sort data in different languages or customize the sort order of a particular table. ロケール設定は、個々のテーブル列に対して行うことができます。 これは照合順序というSQLオブジェクトを使用します。 このオブジェクトは23.2で説明されています。 たとえば、異なる言語でデータをソートしたり、特定のテーブルのソート順をカスタマイズする場合に使用します。
Finally, locales can be selected for an individual query. Again, this uses SQL collation objects. This could be used to change the sort order based on run-time choices or for ad-hoc experimentation. 最後に、個々の問い合わせに対してロケールを選択できます。 ここでも、SQL照合オブジェクトを使用します。 これは、実行時の選択に基づいて並べ替え順序を変更する場合や、アドホックな実験に使用できます。
A locale provider specifies which library defines the locale behavior for collations and character classifications. 《機械翻訳》ロケールプロバイダは、照合と文字分類のライブラリ動作を定義するロケールを指定します。
The commands and tools that select the locale settings, as described above, each have an option to select the locale provider. Here is an example to initialize a database cluster using the ICU provider: 《機械翻訳》前述のように、ロケール設定をセレクトするコマンドとツールには、それぞれロケールプロバイダをセレクトするオプションがあります。 次に、ICUプロバイダを使用してデータベースクラスタを初期化する例を示します。
initdb --locale-provider=icu --icu-locale=en
See the description of the respective commands and programs for
details. Note that you can mix locale providers at different
granularities, for example use <literal>libc</literal> by default for the
cluster but have one database that uses the <literal>icu</literal>
provider, and then have collation objects using either provider within
those databases.
詳細は、各コマンドおよびプログラムの説明を参照してください。
異なる粒度でロケール・プロバイダを混在させることもできます。
たとえば、クラスタではデフォルトでlibc
を使用しますが、icu
プロバイダを使用するデータベースが1つあり、これらのデータベース内でいずれかのプロバイダを使用する照合オブジェクトがあることに注意してください。
Regardless of the locale provider, the operating system is still used to provide some locale-aware behavior, such as messages (see <xref linkend="guc-lc-messages"/>). 《機械翻訳》ロケールプロバイダに関係なく、オペレーティングシステムは、メッセージなどのロケール認識動作を提供するために使用されます(lc_messagesを参照)。
The available locale providers are listed below: 《機械翻訳》利用可能なロケールプロバイダは次のとおりです。
builtin
The <literal>builtin</literal> provider uses built-in operations. Only
the <literal>C</literal> and <literal>C.UTF-8</literal> locales are
supported for this provider.
《機械翻訳》組み込み
プロバイダは組み込みの操作を使用します。
このプロバイダでは、C
およびC.UTF-8
ロケールのみがサポートされています。
The <literal>C</literal> locale behavior is identical to the
<literal>C</literal> locale in the libc provider. When using this
locale, the behavior may depend on the database encoding.
《機械翻訳》C
ロケールの動作は、libcプロバイダのC
ロケールと同じです。
このロケールを使用する場合、動作はデータベースエンコーディングによって異なる場合があります。
The <literal>C.UTF-8</literal> locale is available only for when the
database encoding is <literal>UTF-8</literal>, and the behavior is
based on Unicode. The collation uses the code point values only. The
regular expression character classes are based on the "POSIX
Compatible" semantics, and the case mapping is the "simple" variant.
《機械翻訳》C.UTF-8
ロケールは、データベースエンコーディングがUTF-8
であり、動作がUnicodeに基づいている場合にのみ使用できます。
照合順序はコードポイント値のみを使用します。
正規表現文字クラスは"POSIX Compatible"セマンティクスに基づいており、ケースマッピングは"シンプル"バリアントです。
icu
The <literal>icu</literal> provider uses the external
ICU<indexterm><primary>ICU</primary></indexterm>
library. <productname>PostgreSQL</productname> must have been
configured with support.
《機械翻訳》icu
プロバイダーは、外部ICUライブラリを使用します。
PostgreSQLサポートが設定されている必要があります。
ICU provides collation and character classification behavior that is
independent of the operating system and database encoding, which is
preferable if you expect to transition to other platforms without any
change in results. <literal>LC_COLLATE</literal> and
<literal>LC_CTYPE</literal> can be set independently of the ICU
locale.
《機械翻訳》ICUでは、照合順序およびデータベースエンコーディングから独立したオペレーティングシステムおよび文字の分類動作が提供されます。
これは、結果を変更せずに他のプラットフォームに移行する場合に適しています。
LC_COLLATE
およびLC_CTYPE
は、ICUロケールから独立して設定できます。
For the ICU provider, results may depend on the version of the ICU library used, as it is updated to reflect changes in natural language over time. 《機械翻訳》ICU提供者にとって、結果は、時間の経過に伴う自然言語の変化を反映するように更新されるため、使用されるICUライブラリのバージョンに依存する可能性がある。
libc
The <literal>libc</literal> provider uses the operating system's C
library. The collation and character classification behavior is
controlled by the settings <literal>LC_COLLATE</literal> and
<literal>LC_CTYPE</literal>, so they cannot be set independently.
《機械翻訳》libc
プロバイダは、オペレーティングシステムのCライブラリを使用します。
照合順序と文字の分類の動作は、LC_COLLATE
とLC_CTYPE
の設定によって制御されるため、個別に設定することはできません。
The same locale name may have different behavior on different platforms when using the libc provider. 《機械翻訳》同じロケール名前でも、libcプロバイダを使用する場合、プラットフォームによって動作が異なる場合があります。
The ICU format for the locale name is a <link linkend="icu-language-tag">Language Tag</link>. ロケール名のICU形式は言語タグです。
CREATE COLLATION mycollation1 (provider = icu, locale = 'ja-JP'); CREATE COLLATION mycollation2 (provider = icu, locale = 'fr');
When defining a new ICU collation object or database with ICU as the provider, the given locale name is transformed ("canonicalized") into a language tag if not already in that form. For instance, ICUをプロバイダとして使用して新しいICU照合順序オブジェクトまたはデータベースを定義する場合、指定されたロケール名がその形式でない場合は、言語タグに変換 ("正規化") されます。 例えば、
CREATE COLLATION mycollation3 (provider = icu, locale = 'en-US-u-kn-true'); NOTICE: using standard form "en-US-u-kn" for locale "en-US-u-kn-true" CREATE COLLATION mycollation4 (provider = icu, locale = 'de_DE.utf8'); NOTICE: using standard form "de-DE" for locale "de_DE.utf8"
If you see this notice, ensure that the <symbol>provider</symbol> and
<symbol>locale</symbol> are the expected result. For consistent results
when using the ICU provider, specify the canonical <link
linkend="icu-language-tag">language tag</link> instead of relying on the
transformation.
この通知が表示された場合は、provider
とlocale
が期待通りであることを確認してください。
ICUプロバイダを使用するときに一貫した結果を得るには、変換に依存するのではなく、標準の言語タグを指定してください。
A locale with no language name, or the special language name
<literal>root</literal>, is transformed to have the language
<literal>und</literal> ("undefined").
言語名のないロケール、または特別言語名root
は、言語und
("undefined")を持つように変換されます。
ICU can transform most libc locale names, as well as some other formats, into language tags for easier transition to ICU. If a libc locale name is used in ICU, it may not have precisely the same behavior as in libc. ICUでは、ほとんどのlibcロケール名とその他の形式を言語タグに変換して、ICUへの移行を容易にすることができます。 ICUでlibcロケール名を使用すると、libcでの動作とまったく同じであるとは限りません。
If there is a problem interpreting the locale name, or if the locale name represents a language or region that ICU does not recognize, you will see the following warning: ロケール名の解釈に問題がある場合、またはロケール名をICUが認識しない言語または地域を表す場合は、次の警告が表示されます。
CREATE COLLATION nonsense (provider = icu, locale = 'nonsense'); WARNING: ICU locale "nonsense" has unknown language "nonsense" HINT: To disable ICU locale validation, set parameter icu_validation_level to DISABLED. CREATE COLLATION
<xref linkend="guc-icu-validation-level"/> controls how the message is
reported. Unless set to <literal>ERROR</literal>, the collation will
still be created, but the behavior may not be what the user intended.
icu_validation_levelは、メッセージがどのように報告されるかを制御します。
ERROR
に設定されていない限り、照合順序は作成されますが、ユーザが意図した動作とは異なる可能性があります。
A language tag, defined in BCP 47, is a standardized identifier used to identify languages, regions, and other information about a locale. BCP 47で定義されている言語タグは、言語、識別子、およびロケールに関するその他の情報を識別するために使用される標準化された地域です。
Basic language tags are simply
<replaceable>language</replaceable><literal>-</literal><replaceable>region</replaceable>;
or even just <replaceable>language</replaceable>. The
<replaceable>language</replaceable> is a language code
(e.g. <literal>fr</literal> for French), and
<replaceable>region</replaceable> is a region code
(e.g. <literal>CA</literal> for Canada). Examples:
<literal>ja-JP</literal>, <literal>de</literal>, or
<literal>fr-CA</literal>.
基本言語タグは、単にlanguage
-
region
、または単にlanguage
です。
language
は言語コード(例:fr
はフランス語を表します)で、region
は地域コード(例:ca
はカナダを表します)です。
例:ja-JP
、de
、またはfr-CA
。
Collation settings may be included in the language tag to customize collation behavior. ICU allows extensive customization, such as sensitivity (or insensitivity) to accents, case, and punctuation; treatment of digits within text; and many other options to satisfy a variety of uses. 照合順序設定を言語タグに含めて、照合順序の動作をカスタマイズすることができます。 ICUでは、アクセント、大文字小文字、句読点に対する感度(または非感度)、テキスト内の数字の扱いなど、さまざまな用途に対応するための多くのオプションを含む、照合順序の広範なカスタマイズが可能です。
To include this additional collation information in a language tag,
append <literal>-u</literal>, which indicates there are additional
collation settings, followed by one or more
<literal>-</literal><replaceable>key</replaceable><literal>-</literal><replaceable>value</replaceable>
pairs. The <replaceable>key</replaceable> is the key for a <link
linkend="icu-collation-settings">collation setting</link> and
<replaceable>value</replaceable> is a valid value for that setting. For
boolean settings, the <literal>-</literal><replaceable>key</replaceable>
may be specified without a corresponding
<literal>-</literal><replaceable>value</replaceable>, which implies a
value of <literal>true</literal>.
言語タグにこの追加の照合順序情報を含めるには、追加の照合順序設定があることを示す-u
を追加し、その後に1つ以上の-
key
-
value
ペアを続けます。
key
は照合順序設定のキーで、value
はその設定の有効な値です。
ブール設定の場合、-
key
を指定するだけで、対応する-
value
を指定しないことができ、これはtrue
の値を意味します。
For example, the language tag <literal>en-US-u-kn-ks-level2</literal>
means the locale with the English language in the US region, with
collation settings <literal>kn</literal> set to <literal>true</literal>
and <literal>ks</literal> set to <literal>level2</literal>. Those
settings mean the collation will be case-insensitive and treat a sequence
of digits as a single number:
例えば、言語タグen-US-u-kn-ks-level2
とは、米国の英語言語を持つロケールを意味し、照合順序設定kn
はtrue
に設定され、ks
はレベル2
に設定されています。
これらの設定は、照合順序が大文字小文字を区別せず、続きの数字を単一の数値として扱うことを意味します。
CREATE COLLATION mycollation5 (provider = icu, deterministic = false, locale = 'en-US-u-kn-ks-level2'); SELECT 'aB' = 'Ab' COLLATE mycollation5 as result; result -------- t (1 row) SELECT 'N-45' < 'N-123' COLLATE mycollation5 as result; result -------- t (1 row)
See <xref linkend="icu-custom-collations"/> for details and additional examples of using language tags with custom collation information for the locale. ロケールのためのカスタム照合順序情報を持つ言語タグの使用の詳細と追加の例については、23.2.3を参照してください。
If locale support doesn't work according to the explanation above,
check that the locale support in your operating system is
correctly configured. To check what locales are installed on your
system, you can use the command <literal>locale -a</literal> if
your operating system provides it.
上記の説明に従ってロケールのサポートが正常に動作しない場合、オペレーティングシステムのロケールサポートが正確に設定されているか確認してください。
指定されたロケールがインストールされているかどうか確認するために、オペレーティングシステムが提供していれば、locale -a
コマンドを使用することができます。
Check that <productname>PostgreSQL</productname> is actually using the locale
that you think it is. The <envar>LC_COLLATE</envar> and <envar>LC_CTYPE</envar>
settings are determined when a database is created, and cannot be
changed except by creating a new database. Other locale
settings including <envar>LC_MESSAGES</envar> and <envar>LC_MONETARY</envar>
are initially determined by the environment the server is started
in, but can be changed on-the-fly. You can check the active locale
settings using the <command>SHOW</command> command.
PostgreSQLが想定しているロケールを実際に使用しているかどうかを確認してください。
LC_COLLATE
とLC_CTYPE
の設定はデータベース作成時に決定され、新しいデータベースを作成する方法以外に変更することはできません。
LC_MESSAGES
やLC_MONETARY
など他のロケール設定はサーバ起動時の環境変数によって初めに決定されますが、その場で変更することもできます。
SHOW
コマンドを使用して、使用中のロケール設定を確認できます。
The directory <filename>src/test/locale</filename> in the source
distribution contains a test suite for
<productname>PostgreSQL</productname>'s locale support.
ソース配布物のsrc/test/locale
ディレクトリには、PostgreSQLのロケールサポート用のテストスイートがあります。
Client applications that handle server-side errors by parsing the text of the error message will obviously have problems when the server's messages are in a different language. Authors of such applications are advised to make use of the error code scheme instead. エラーメッセージ内のテキストを解析してサーバ側のエラーを扱っているクライアントアプリケーションでは、サーバのメッセージが異なる言語で記載されると、明らかに問題になります。 こうしたアプリケーションの作者には、エラーコードスキームで代替させることを推奨します。
Maintaining catalogs of message translations requires the on-going efforts of many volunteers that want to see <productname>PostgreSQL</productname> speak their preferred language well. If messages in your language are currently not available or not fully translated, your assistance would be appreciated. If you want to help, refer to <xref linkend="nls"/> or write to the developers' mailing list. メッセージ翻訳のカタログのメンテナンスにはPostgreSQLに選択した言語を話させてみたいという数多くのボランティアのたゆみのない努力を必要としています。 もしあなたの言語が現在使えなかったり完全に翻訳されていない場合、助力をよろしくお願いします。 もし助力していただけるのであれば、第55章を参照するか開発グループのメーリングリストに投稿してください。