初めに
※ こちらは古い仕組みでの方法です。新しい仕組みでの方法は Windowsのフォントの英語名を調べる(2) に記述しました。
アプリケーションの設定でフォントを設定できるものがあります。
プルダウンやリストボックスから選択するものは良いのですが、設定ファイルを直接書き換えるようなものの場合はフォント名を直接記述する必要があります。
Windowsの場合インストールされたフォントは[設定]>[個人用設定]>[フォント]で見ることができますが、日本語Windowsの場合ここで表示されるフォント名は日本語名です。
日本語名で指定しても大丈夫な場合もありますが、時々英語名で指定しないとだめなアプリケーションがあったりします。
同様に、プログラム中でフォントを指定する際、英語名での指定が必要な場合があります。
ここでは、Windowsにインストールされたフォントの 日本語名 - 英語名 の対応リストを作る方法を記述します。
PowerShellコンソールで調べる方法
基本的には参考にした
→日本語Windowsでフォントの英語名を調べる
に従いますが、日本語名と英語名の対応付けを行います。
スクリプト
& {
$le = [System.Globalization.CultureInfo]::new("en-US").LCID
$lj = [System.Globalization.CultureInfo]::new("ja-JP").LCID
"|日本語名|英語名|"
"|-------|------|"
Add-type -AssemblyName System.Drawing
$ifc = [System.Drawing.Text.InstalledFontCollection]::new()
$ifc.Families | ForEach-Object {
$info = "|" + $_.GetName($lj) + " | " + $_.GetName($le) +"|"
$info
}
}
出力結果(抜粋)
日本語名 | 英語名 |
---|---|
Arial | Arial |
Arial Black | Arial Black |
Comic Sans MS | Comic Sans MS |
Consolas | Consolas |
IPA Pゴシック | IPAPGothic |
IPA P明朝 | IPAPMincho |
IPAexゴシック | IPAexGothic |
IPAex明朝 | IPAexMincho |
IPAKielSeven | IPAKielSeven |
IPAゴシック | IPAGothic |
IPA明朝 | IPAMincho |
Meiryo UI | Meiryo UI |
Microsoft Himalaya | Microsoft Himalaya |
Microsoft JhengHei | Microsoft JhengHei |
Microsoft JhengHei Light | Microsoft JhengHei Light |
Microsoft JhengHei UI | Microsoft JhengHei UI |
Microsoft JhengHei UI Light | Microsoft JhengHei UI Light |
Microsoft New Tai Lue | Microsoft New Tai Lue |
Microsoft PhagsPa | Microsoft PhagsPa |
Microsoft Sans Serif | Microsoft Sans Serif |
Microsoft Tai Le | Microsoft Tai Le |
Microsoft YaHei | Microsoft YaHei |
Microsoft YaHei Light | Microsoft YaHei Light |
Microsoft YaHei UI | Microsoft YaHei UI |
Microsoft YaHei UI Light | Microsoft YaHei UI Light |
Microsoft Yi Baiti | Microsoft Yi Baiti |
MS UI Gothic | MS UI Gothic |
Yu Gothic UI | Yu Gothic UI |
Yu Gothic UI Light | Yu Gothic UI Light |
Yu Gothic UI Semibold | Yu Gothic UI Semibold |
Yu Gothic UI Semilight | Yu Gothic UI Semilight |
メイリオ | Meiryo |
游ゴシック | Yu Gothic |
游ゴシック Light | Yu Gothic Light |
游ゴシック Medium | Yu Gothic Medium |
游明朝 | Yu Mincho |
游明朝 Demibold | Yu Mincho Demibold |
游明朝 Light | Yu Mincho Light |
MS ゴシック | MS Gothic |
MS 明朝 | MS Mincho |
MS Pゴシック | MS PGothic |
MS P明朝 | MS PMincho |
[設定]>[個人用設定]>[フォント]では、Arial
は Normal
Cursiva
Negreta
Negreta cursiva
Black
の 5 フォント フェイス がありますが、こちらのリストではArial
とArial Black
の2種類に分かれています。
どうやら歴史的な理由(元々はBoldとItalicしかサポートしておらず1つのフォントファミリーに4つのフォントフェイスしか入らない)で、Arial
フォントファミリとしてRegular/Italic/Bold/BoldItalicのフォントフェイスがまとめられ、Arial Black
は別のフォントファミリにするしかなく、それらをまとめて大きなArial
フォントファミリーとしているようです。
余談
参考にしたサイトの記述を見て、「CurrentUICultureを切り替えなくても日本語名と英語名を取得する方法はないか」と調べたのがこの記事のきっかけです。
FontFamily.GetName(int language)
に指定する番号がわからなくて苦戦しました。
恐らくですが、1033(en-US)が英語名な他は、それ以外の番号はどれを指定しても同じ名称になるようです。ここまでずっと「日本語名」と呼んできましたが、英語名に対する「代替名称」といった扱いと思われます。
英語名と日本語名が同じであるフォントも多く、代替名称をつける文化は日本語以外ではあまり無いのかもしれません。