Win32::OLE::NLSモジュール(日本語チョウ訳) Ver. 0.14対応

by Hippo2000(2001/2/20)

Jan Duboisさんにはメールで了解をいただきました。

Tangun Era = 檀紀 でよいのでしょうか?ちょっと心配...

内容等が間違っていたら修正します。ご連絡ください。



名前

Win32::OLE::NLS - OLE 各国語サポート


概要

   ありません


説明

このモジュールはOLENLS.DLL.の各国語サポート機能へのアクセスを提供します。

関数

CompareString(LCID,FLAGS,STR1,STR2)
LCIDロケールで STR1 と STR2 を比較します。 FLAGS は2つの文字列を比較するさいに、使用されるあるいは無視される文字の特徴を示します。
    NORM_IGNORECASE     大文字と小文字を区別しない
    NORM_IGNOREKANATYPE ひらがなとカタカナを区別しない
    NORM_IGNORENONSPACE 非スペース文字を無視する(Ignore accents, diacritics, and vowel marks)
    NORM_IGNORESYMBOLS  記号を無視する
    NORM_IGNOREWIDTH    ANSI と UNICODE を区別しない(Ignore character width)

可能な戻り値は以下の通り:

   0   関数が失敗
    1   STR1 は STR2よりも小さい
    2   STR1 は STR2と同じ
    3   STR1 は STR2よりも大きい

cmp演算子と比較できる値を取得するために、戻り値から2を引くことができることに注意。

LCMapString(LCID,FLAGS,STR)
LCMapString はLCIDに依存した変換でSTRを変換します。 Flags には以下のオプションの組み合わせが入ります:
    LCMAP_LOWERCASE     小文字化
    LCMAP_UPPERCASE     大文字化
    LCMAP_HALFWIDTH     半角化
    LCMAP_FULLWIDTH     大文字化
    LCMAP_HIRAGANA      ひらなが化
    LCMAP_KATAKANA      カタカナ化
    LCMAP_SORTKEY       正規化されたワイド文字のソート キーを作成します

以下の正規化オプションはLCMAP_SORTKEYに組み合わせることができます:

    NORM_IGNORECASE     大文字小文字を区別しない
    NORM_IGNOREKANATYPE ひらがなとカタカナを区別しません
    NORM_IGNORENONSPACE 送りのない文字を無視します。(Ignore accents, diacritics, and vowel marks)
    NORM_IGNORESYMBOLS  記号を無視します。 
    NORM_IGNOREWIDTH    ANSI と UNICODE を区別しない(Ignore character width)

戻り値は変換された文字列です。

GetLocaleInfo(LCID,LCTYPE)
ロケール設定lCTYPEをLCIDで指定されたロケールから取り出します。ロケール・データベースに問い合わせるためには常にLOCALE_NOUSEROVERRIDE | LCTYPEを使ってください。そうでなければ値を取り出すさいに、Windowsコントロール・パネルを通じてユーザによるwin.iniに変更が、システム・デフォルト・ロケールよりも優先されます。下記の適切なLCTYPE値のリストについてのドキュメントをご覧ください。
 
戻り値は要求されたロケール設定の内容です。
GetStringType(LCID,TYPE,STR)
ロケールLCIDからSTRにある各文字についての型情報を取り出します。要求されるTYPEは以下の3つのレベルのいずれかにすることができます:
    CT_CTYPE1       ANSI C と POSIX 型情報
    CT_CTYPE2       テキスト・ライアウト型情報
    CT_CTYPE3       テキスト処理型情報

戻り値は、下記の対応テーブルからの適応できるタイプビットのORによる値のリスト:

   @ct = GetStringType(LOCALE_SYSTEM_DEFAULT, CT_CTYPE1, "String");

ANSI C と POSIX 文字型情報:

    C1_UPPER        大文字(Uppercase)
    C1_LOWER        小文字(Lowercase)
    C1_DIGIT        数字(Decimal digits)
    C1_SPACE        空白文字(Space characters)
    C1_PUNCT        句読点(Punctuation)
    C1_CNTRL        制御文字(Control characters)
    C1_BLANK        ブランク文字(Blank characters)
    C1_XDIGIT       16進数字Hexadecimal digits
    C1_ALPHA        なんらかの文字(Any letter)

テキスト・レイアウト型情報:

    C2_LEFTTORIGHT      左から右(Left to right)
    C2_RIGHTTOLEFT      右から左(Right to left)
    C2_EUROPENUMBER     ヨーロッパ数字, (European number, European digit)
    C2_EUROPESEPARATOR  ヨーロッパ数字 区切り(European numeric separator)
    C2_EUROPETERMINATOR ヨーロッパ数字 終端 (European numeric terminator)
    C2_ARABICNUMBER     アラブ数字(Arabic number)
    C2_COMMONSEPARATOR  共通数字区切り (Common numeric separator)
    C2_BLOCKSEPARATOR   ブロック区切り (Block separator)
    C2_SEGMENTSEPARATOR セグメント区切り (Segment separator)
    C2_WHITESPACE       空白 (White space)
    C2_OTHERNEUTRAL     他の中立文字(Other neutrals)
    C2_NOTAPPLICABLE    暗黙の方効無し (例えば制御コード) (No implicit direction (e.g. ctrl codes)

テキスト処理型情報:

    C3_NONSPACING       非空白符 (Nonspacing mark)
    C3_DIACRITIC        読み分け発音符 (Diacritic nonspacing mark)
    C3_VOWELMARK        母音非空白符 (Vowel nonspacing mark)
    C3_SYMBOL           記号 (Symbol)
    C3_KATAKANA         カタカナ文字 (Katakana character)
    C3_HIRAGANA         ひらがな文字 (Hiragana character)
    C3_HALFWIDTH        半角文字 (Narrow character)
    C3_FULLWIDTH        全角文字 (Wide character)
    C3_IDEOGRAPH        表意文字 (Ideograph)
    C3_ALPHA            すべての文字 (Any letter)
    C3_NOTAPPLICABLE    不適当 (Not applicable)
GetSystemDefaultLangID()
システム・デフォルト言語IDを返します。
GetSystemDefaultLCID()
システム・デフォルト・ロケールIDを返します。
GetUserDefaultLangID()
ユーザ・デフォルト言語IDを返します。
GetUserDefaultLCID()
ユーザ・デフォルト言語IDを返します。
SendSettingChange()
すべてのトップ・レベル・ウィンドウにWM_SETTINGCHANGE メッセージを送ります。
SetLocaleInfo(LCID, LCTYPE, LCDATA)
ロケール設定LCIDのユーザ上書き部分での要素を変更します。システム・デフォルト・データベースは変更しません。以下のLCTYPEが変更可能です:
    LOCALE_ICALENDARTYPE     LOCALE_SDATE
    LOCALE_ICURRDIGITS          LOCALE_SDECIMAL
    LOCALE_ICURRENCY            LOCALE_SGROUPING
    LOCALE_IDIGITS              LOCALE_SLIST
    LOCALE_IFIRSTDAYOFWEEK      LOCALE_SLONGDATE
    LOCALE_IFIRSTWEEKOFYEAR     LOCALE_SMONDECIMALSEP
    LOCALE_ILZERO               LOCALE_SMONGROUPING
    LOCALE_IMEASURE             LOCALE_SMONTHOUSANDSEP
    LOCALE_INEGCURR             LOCALE_SNEGATIVESIGN
    LOCALE_INEGNUMBER           LOCALE_SPOSITIVESIGN
    LOCALE_IPAPERSIZE           LOCALE_SSHORTDATE
    LOCALE_ITIME                LOCALE_STHOUSAND
    LOCALE_S1159                LOCALE_STIME
    LOCALE_S2359                LOCALE_STIMEFORMAT
    LOCALE_SCURRENCY            LOCALE_SYEARMONTH

サブシステムはロケール情報をキャッシュしているようなので、後のWin32::OLE::Variantオブジェクトの書式設定のために、これらの変更を有効にするためにはSendSettingChange()を呼び出さなければなりません。

MAKELANGID(LANG,SUBLANG)
プライマリ言語とサブ言語から言語IDを作成します。
PRIMARYLANGID(LANGID)
言語IDからプライマリ言語を取り出します。
SUBLANGID(LANGID)
言語IDからサブ言語を取り出します。
MAKELCID(LANGID)
言語IDからロケールIDを作成します。
LANGIDFROMLCID(LCID)
ロケールIDから言語IDを取り出します。

ロケール・タイプ

LOCALE_ILANGUAGE
言語ID (16進数).
LOCALE_SLANGUAGE
ローカライズされた言語名
LOCALE_SENGLANGUAGE
言語のISO標準 639 英語名
LOCALE_SABBREVLANGNAME
言語名の3文字の省略形。ISO 標準 639 の 2 文字の言語簡略名を使用し、3番目の文字はサブ言語タイプを示します。
LOCALE_SNATIVELANGNAME
言語のネィティブな名前
LOCALE_ICOUNTRY
国際電話コードをベースとした国コード
LOCALE_SCOUNTRY
国のローカライズドされた名前
LOCALE_SENGCOUNTRY
国の英語名
LOCALE_SABBREVCTRYNAME
国のISO 標準 3166 省略名
LOCALE_SNATIVECTRYNAME
国のネィティブな名前
LOCALE_IDEFAULTLANGUAGE
このロケールで話されている主要な言語のための言語ID
LOCALE_IDEFAULTCOUNTRY
このロケールでの主要な国のための国コード
LOCALE_IDEFAULTANSICODEPAGE
このロケールに関連付けられたANSIコードページ。書式: 4 Unicode 数字 プラス Unicode null 終端子。

XXX これはGetLocaleInofoによって変換されるべきです XXX

LOCALE_IDEFAULTCODEPAGE
国に関連付けれられたOEMコードページ
LOCALE_SLIST
リスト要素を区切るために使われる文字(よくカンマが使われる)
LOCALE_IMEASURE
デフォルトの計測方式:
 0   メートル法式(metric system (S.I.))
 1   アメリカ式 (U.S. system)

LOCALE_SDECIMAL
小数点のための文字(よく点が使われる)
LOCALE_STHOUSAND
数値の左側の数字のグループの間を区切るために使われる文字(桁区切り文字)
LOCALE_SGROUPING
数字の左側の数字のグループの大きさ(区切る桁数)。各グループのために明確な大きさが必要とされます。大きさはセミコロンで区切られます。もし最後の値が0であれば、前の値が繰り返されます。1000単位でグループにするには、3;0を指定してください。
LOCALE_IDIGITS
小数点以下の桁数
LOCALE_ILZERO
10進数のフィールドで前につけるかどうか。0を設定すると0はつきません、1は0をつけます。
LOCALE_SNATIVEDIGITS
ASCII0-9とネィティブな同じな10文字。(0から9の表記)
LOCALE_INEGNUMBER
負の数値のモード
    0   (1.1)
    1   -1.1
    2   -1.1
    3   1.1
    4   1.1

LOCALE_SCURRENCY
ローカルな通貨記号として使われる文字列
LOCALE_SINTLSYMBOL
3文字はISO 4217 Codes for the Representation of Currency and Fundsで指定された国際通貨記号。その後にこの文字列と数量を区切る文字がつく
LOCALE_SMONDECIMALSEP
通貨での小数を区切るために使われる文字
LOCALE_SMONTHOUSANDSEP
通貨での数字の桁を区切るために使われる文字
LOCALE_SMONGROUPING
通貨での数字の桁を区切る桁数。各グループのために明確な大きさが必要とされます。大きさはセミコロンで区切られます。もし最後の値が0であれば、前の値が繰り返されます。1000単位でグループにするには、3;0を指定してください。
LOCALE_ICURRDIGITS
ローカルな通貨フォーマットのための小数点以下の桁数
LOCALE_IINTLCURRDIGITS
国際通貨フォーマットのための小数点以下の桁数
LOCALE_ICURRENCY
正の通貨モード
    0   前につける、区切り無し
    1   後ろにつける、区切り無し
    2   前につける, 1文字の区切り
    3   後ろにつける、1文字の区切り

LOCALE_INEGCURR
負の通貨モード
    0   ($1.1)
    1   -$1.1
    2   $-1.1
    3   $1.1-
    4   $(1.1$)
    5   -1.1$
    6   1.1-$
    7   1.1$-
    8   -1.1 $ ($の前に空白)
    9   -$ 1.1 ($の後に空白)
    10  1.1 $- ($の前に空白)

LOCALE_ICALENDARTYPE
現在使われているカレンダーの種類
    1   グレゴリオ歴 (アメリカでのような)
    2   グレゴリオ歴 (常に英語の文字列)
    3   元号: (日本)Year of the Emperor (Japan)
    4   元号: 中華民国
    5   檀紀 (朝鮮)

LOCALE_IOPTIONALCALENDAR
このLCIDで利用できる追加のカレンダーの種類。ヌルで区切ってオプションのカレンダがすべて入ったリストにすることができます。何もなければ値は0、あるいはLOCALE_ICALENDARTYPE文字列のいずれか。

XXX ヌル区切りのリストはGetLocaleInfoで変換されるべき XXX

LOCALE_SDATE
日付区切りに使われる文字
LOCALE_STIME
時刻区切りに使われる文字
LOCALE_STIMEFORMAT
時刻書式設定文字列
LOCALE_SSHORTDATE
このロケールでの短い日付時刻書式設定文字列
LOCALE_SLONGDATE
このロケールでの長い日付時刻書式設定文字列
LOCALE_IDATE
短い長い日付書式の順序指定子
    0   月 - 日 - 年
    1   日 - 月 - 年
    2   年 - 月 - 日

LOCALE_ILDATE
長い日付書式の順序指定子。LOCALE_IDATE設定のための適切な値のいずれにもすることができます。
LOCALE_ITIME
時刻書式設定指定子
    0   AM/PM 12時間形式
    1   24時間 形式

LOCALE_ITIMEMARKPOSN
時刻マーカー文字列(AM|PM)が時刻文字列の前につくか後につくか。0は後ろ(9:15 AM)、1は前(AM 9:15)。
LOCALE_ICENTURY
全4桁の年を使うかどうか
    0   2桁
    1   年全体

LOCALE_ITLZERO
ジコクフィールドで0が前につくかどうか
    0   前に0をつけない
    1   時間の前に0をつける

LOCALE_IDAYLZERO
日のフィールドで0をつけるかどうか。値はLOCALE_ITLZEROと同じ。
LOCALE_IMONLZERO
月のフィールドで0をつけるかどうか。値はLOCALE_ITLZEROと同じ。
LOCALE_S1159
午前を表すための文字列
LOCALE_S2359
午後を表すための文字列
LOCALE_IFIRSTWEEKOFYEAR
その年のどの週を最初と考えるかを指定する。
    0   1/1が含まれる週をその年の最初の週とする
    1   1/1の後の1週間をその年の最初の週とする
    2   少なくとも4日ある最初の週をその年の最初の週とする

LOCALE_IFIRSTDAYOFWEEK
週の最初の日と考えられる日を指定する。値"0"はSDAYNAME1そして値"6"はSDAYNAME7を意味します。
LOCALE_SDAYNAME1 .. LOCALE_SDAYNAME7
月曜日から日曜日のための長い名前
LOCALE_SABBREVDAYNAME1 .. LOCALE_SABBREVDAYNAME7
月曜日から日曜日のための省略名
LOCALE_SMONTHNAME1 .. LOCALE_SMONTHNAME12
1月から12月のための長い名前
LOCALE_SMONTHNAME13
もしあれば13番目の月のネィティブな名前
LOCALE_SABBREVMONTHNAME1 .. LOCALE_SABBREVMONTHNAME12
1月から12月のための省略名
LOCALE_SABBREVMONTHNAME13
もしあれば13番目の月のネィティブな省略名
LOCALE_SPOSITIVESIGN
正の記号のための文字列
LOCALE_SNEGATIVESIGN
負の記号のための文字列
LOCALE_IPOSSIGNPOSN
正の値のための書式インデックス
    0 通貨記号も含めた全体を括弧で囲む
    1 符号文字列を全体と通貨記号の前につける
    2 符号文字列を全体と通貨記号の後につける
    3 符号文字列を通貨記号の前につける
    4 符号文字列を通貨記号の後につける

LOCALE_INEGSIGNPOSN
負の値のための書式インデックス。値はLOCALE_IPOSSIGNPOSN.と同じ。
LOCALE_IPOSSYMPRECEDES
もし通貨記号が前につくのであれば1.それが正の数値の後に続くのであれば0
LOCALE_IPOSSEPBYSPACE
正の数値から空白によって区切られるのであれば1、そうでなければ0
LOCALE_INEGSYMPRECEDES
もし通貨記号が前につくのであれば1.それが負の数値の後に続くのであれば0
LOCALE_INEGSEPBYSPACE
負の数値から空白によって区切られるのであれば1、そうでなければ0

作者/著作権(AUTHORS/COPYRIGHT)

このモジュールはWin32::OLEディストリビューションの一部です。


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。