Ubuntu 18.04以降のトップバーやロック画面の時計の区切り文字 ∶ の幅が太すぎるので、細くしてほしい

Bug #1864297 reported by id:sicklylife
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ubuntu Japanese Kaizen Project
Fix Released
Undecided
Mitsuya Shibata

Bug Description

Ubuntu 18.04のトップバーの時計の ∶ の幅が太い
https://bugs.launchpad.net/ubuntu-jp-improvement/+bug/1744102

↑この件の続きです。
Ubuntu 19.10 を使用されている方は気づいておられると存じますが、
Ubuntu 19.10 ではトップバーやロック画面の時計の : は半角幅になっています (私が GNOME 側の翻訳を変更したため)。

が、開発者の方が元に戻されたため、Ubuntu 20.04 では 18.04 と同じく全角幅になります。
https://github.com/GNOME/gnome-desktop/commit/744d62cd880ea2583499bd85b7af0357a985ef9f
(他のディストリへの影響もありますし gnome-desktop の訳を弄ったのはやはりマズかったかなあと…)

この ∶ の幅が全角幅になっている件に関して私が確認できたことを箇条書きでまとめますと、

・GNOME Shell のトップバーとロック画面の時計の文字列は gnome-desktop パッケージを参照している。
・gnome-desktop パッケージでは時計の区切り文字は原文・翻訳共に半角コロン : が使用されており、おそらく GNOME Shell の内部で RATIO ∶ (U+2236) に変換されている。
・gnome-desktop の翻訳側で半角コロンを別の文字に置き換えると、RATIO ∶ (U+2236) への変換処理は行われない (GNOME 3.34 の翻訳では ꓽ (U+A4FD) に置き換えました)。
・Ubuntu の日本語環境ではフォントの優先順位により Noto Sans CJK JP の RATIO ∶ (U+2236) が使用されるため、時計の区切り文字が全角幅になっている。

といった感じです。
∶ が全角幅になってしまうのを回避するための方法としては、

・gnome-desktop の日本語訳を translations.launchpad.net 上で変更する
・fonts-cantarell をインストールする (Noto Sans CJK JP よりも優先順位が高いため cantarell の ∶ が使用されます)
・fonts-takao をインストールする (Noto Sans CJK JP よりも優先順位が高いため fonts-takao-pgothic の ∶ が使用されます)
・DejaVu フォントの優先順位を上げる (Ubuntu の英語環境では、トップバー等の時計の区切り文字はおそらく DejaVu の ∶ が使用されていると思われます)

などが挙げられます。

DejaVu フォントの優先順位を上げるのはどういう影響が出るのか検証が大変でしょうし、gnome-desktop の日本語訳を translations.launchpad.net で変更する場合は gnome-desktop のパッケージが更新されるタイミングを監視する手間がいります (Ubuntu 19.10 の時は gnome-desktop 3.34 がアップロードされるのがかなり遅めでした)。

fonts-cantarell のデフォルトインストールも DejaVu フォントの場合と同様検証が必要でしょうし、fonts-takao は Noto Sans CJK JP がデフォルトに変更された意味がなくなるような気がします (後から fonts-takao を手動でインストールされている人は結構いるような気もしますが)。

現状では、この ∶ が全角幅になってしまう件に関して不満を唱えている Ubuntu ユーザーは私しかいないようですので、修正されないのは仕方のないことだと存じますが、私のように全角幅の ∶ に違和感を覚える方が他にもおられる可能性はゼロではないはずですので、改めて投稿させていただきました (以前の投稿は Won't Fix からステータスを変更できないようなので)。

Revision history for this message
id:sicklylife (sicklylife) wrote :
Changed in ubuntu-jp-improvement:
status: New → Opinion
Changed in ubuntu-jp-improvement:
status: Opinion → New
description: updated
description: updated
Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

> GNOME 3.34 の翻訳では ꓽ (U+A4FD) に置き換えました

U+A4FDはリス語用に作られたフレイザー文字のうち声調を示すものなので、この文脈で使うのは明らかにおかしいです。

それはそれとして、ひとつ確認させてください。

> ・gnome-desktop パッケージでは時計の区切り文字は原文・翻訳共に半角コロン : が使用されており、おそらく GNOME Shell の内部で RATIO ∶ (U+2236) に変換されている。

これは真でしょうか。gettextの仕組みを考えると、最優先は「moファイルの訳語」のはずなので、GNOME ShellがU+2236に置き換える余地がないような気がするのです。

原文・翻訳ともにU+003aになっているのであれば、半角コロンの表示になるはずというのが柴田の見解で、かつ手元のfocal環境だと半角コロンになっているように見えます。

(ただ翻訳のタイミングの都合でU+A4FDが表示されている可能性は否めません)

「変換されている」と判断した根拠か環境をもう少し詳しく教えていただけると助かります。一応こちらのスクリーンショットも添付しておきます。

> 以前の投稿は Won't Fix からステータスを変更できないようなので

すみません、誰でもできると思ってました。

Revision history for this message
id:sicklylife (sicklylife) wrote :

ご返答いただきありがとうございます。

> 一応こちらのスクリーンショットも添付しておきます。

そのスクリーンショット、半角コロンに見えますよね?それ、リス文字なんです。
色々まとめますので、しばらくお待ちいただけますか。

Revision history for this message
id:sicklylife (sicklylife) wrote :

> これは真でしょうか。

ソースを実際に確認したわけではないのですが、そうとしか思えない挙動です。

> かつ手元のfocal環境だと半角コロンになっているように見えます

現在の focal の gnome-desktop3 は eoan と同じ 3.34.2 ですよね。

3.34
https://l10n.gnome.org/POT/gnome-desktop.gnome-3-34/gnome-desktop.gnome-3-34.ja.po

3.36
https://l10n.gnome.org/POT/gnome-desktop.master/gnome-desktop.master.ja.po

この二つの %R:%S の訳を見て頂きたいのですが、

3.34
msgid "%R:%S"
msgstr "%Hꓽ%Mꓽ%S"

3.36
msgid "%R:%S"
msgstr "%H:%M:%S"

3.34 ではリス文字、3.36 では開発者の方に戻されてコロンになっています。

現在の Ubuntu 20.04 上で gnome-desktop の .mo ファイルを msgunfmt コマンドで元に戻し、
リス文字を半角コロンに置換して再度 .mo 化した後、
既存の gnome-desktop-3.0.mo を上書きして GNOME Shell を再起動したスクリーンショットがこちらになります。

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

あぁ、"%H:%m"ではなく"%R"である以上、通常のU+003aは確定で、その後フォーマット文字列を変換したあとに、再度replaceしているんですね。

https://gitlab.gnome.org/GNOME/gnome-desktop/blob/master/libgnome-desktop/gnome-wall-clock.c#L253

うーん、やっかいですね……

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

> 現在の focal の gnome-desktop3 は eoan と同じ 3.34.2 ですよね。

おっと、失礼いたしました。gnome-desktop-3.0.moじゃなくてgnome-shell.moを見ていました。

確かにfocalだとU+A4FDですね。

$ grep msgstr.*%H gnome-desktop.po | hd
00000000 6d 73 67 73 74 72 20 22 25 48 ea 93 bd 25 4d 22 |msgstr "%H...%M"|
00000010 0a 6d 73 67 73 74 72 20 22 25 48 ea 93 bd 25 4d |.msgstr "%H...%M|
00000020 ea 93 bd 25 53 22 0a 6d 73 67 73 74 72 20 22 25 |...%S".msgstr "%|
00000030 41 20 25 48 ea 93 bd 25 4d 22 0a 6d 73 67 73 74 |A %H...%M".msgst|
00000040 72 20 22 25 41 20 25 48 ea 93 bd 25 4d ea 93 bd |r "%A %H...%M...|
00000050 25 53 22 0a 6d 73 67 73 74 72 20 22 25 42 25 2d |%S".msgstr "%B%-|
00000060 65 e6 97 a5 20 28 25 61 29 5f 25 48 ea 93 bd 25 |e... (%a)_%H...%|
00000070 4d 22 0a 6d 73 67 73 74 72 20 22 25 42 25 2d 65 |M".msgstr "%B%-e|
00000080 e6 97 a5 20 28 25 61 29 5f 25 48 ea 93 bd 25 4d |... (%a)_%H...%M|
00000090 ea 93 bd 25 53 22 0a 6d 73 67 73 74 72 20 22 25 |...%S".msgstr "%|
000000a0 42 25 2d 65 e6 97 a5 5f 25 48 ea 93 bd 25 4d 22 |B%-e..._%H...%M"|
000000b0 0a 6d 73 67 73 74 72 20 22 25 42 25 2d 65 e6 97 |.msgstr "%B%-e..|
000000c0 a5 5f 25 48 ea 93 bd 25 4d ea 93 bd 25 53 22 0a |._%H...%M...%S".|

$ printf "\ua4fd"|hd
00000000 ea 93 bd |...|

Changed in ubuntu-jp-improvement:
status: New → Confirmed
Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

翻訳する際にみんなU+2236にしているから、英語(訳語がない言語)やU+003aを使っている訳語でも自動的にU+2236にしてしまおう!という修正っぽいですね。乱暴だなぁ。

https://bugzilla.gnome.org/show_bug.cgi?id=726232
https://gitlab.gnome.org/GNOME/gnome-desktop/-/commit/665125ef9d26cd47f9438a2b5212806137a373e9

もし変えるとしたら、方向性としては現状の英語圏の挙動を維持しつつ、各言語の翻訳をリスペクトするようなコードにしてもらうことだと思います。

とりあえずconfirmedのままにしておきます。

Revision history for this message
id:sicklylife (sicklylife) wrote :

> https://gitlab.gnome.org/GNOME/gnome-desktop/blob/master/libgnome-desktop/gnome-wall-clock.c#L253

GNOME Shell ではなく libgnome-desktop の方だったんですね、すみません。

> もし変えるとしたら、方向性としては現状の英語圏の挙動を維持しつつ、各言語の翻訳をリスペクトするようなコードにしてもらうことだと思います。

この ∶ が全角幅になる件は Ubuntu、Fedora (CentOS)、Mageia だけに見られる現象で、Debian や Manjaro など他の GNOME 採用ディストリビューションでは ∶ は普通に半角幅ですし、ユーザーが比較的多いであろう Ubuntu でも私以外誰も気にしていなかったことを考えると、何となく気が引けますね…

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

> Debian や Manjaro など他の GNOME 採用ディストリビューションでは ∶ は普通に半角幅ですし

これらのディストリビューションは「U+2236だけど使っているフォントの都合上半角で表示される」と理解したのですが、それで正しいでしょうか?

(他のディストリビューションまでは試せていません、すみません)

もしそうだとすると「たまたま起きていない」って解釈で良いと思います。

いずれにせよコードを修正するにしても、うまい変更案が思いつかないんですよね…

Revision history for this message
Jun Kobayashi (jkbys) wrote :

Noto Sans CJK JP の U+2236 だけ幅が広くて、他のフォントのU+2236 は幅が狭いということなら、Noto Sans CJK JPのバグと言える気もします。

Revision history for this message
id:sicklylife (sicklylife) wrote :

> これらのディストリビューションは「U+2236だけど使っているフォントの都合上半角で表示される」と理解したのですが、それで正しいでしょうか?

はい、そうです。

> Noto Sans CJK JP の U+2236 だけ幅が広くて、他のフォントのU+2236 は幅が狭いということなら、Noto Sans CJK JPのバグと言える気もします。

私が確認した範囲では広いのは Noto Sans CJK JP だけですね。

U+2236 の幅が広いフォント
・Noto Sans CJK JP

U+2236 の幅が狭いフォント
・Takao P ゴシック
・DejaVu Sans
・Cantarell
・Segoe UI (Windows のフォントですけど)

といった感じです。Debian は確か VL ゴシックがデフォルトの日本語フォントだったと思うのですが、VL ゴシックには U+2236 が含まれていないようなので DejaVu Sans の U+2236 がトップバーに表示されているのだと思われます。

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

> Noto Sans CJK JPのバグと言える気もします。

U+2236はEast Asian Ambigousな文字なので、一概にバグとも言えないなぁという印象です。

同じ数学記号ブロックに配置している、U+2234(∴)やU+2235(∵)が日本語フォントでは全角幅なのを考えると、
Noto CJK JPなら全角のほうが「合っている」のではないでしょうか。

> 私が確認した範囲では広いのは Noto Sans CJK JP だけですね。

リュウミンとか新UD、ヒラギノ角ゴ、M+ Type-2 RegularにはU+2236のグリフはなさそうです

ちなみにfontforgeで見る限りは、IPAexゴシックもIPA PゴシックもTakao Pゴシックも
U+2236を持ってなさそうに見えます。

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

それはそれとして、gnome-desktop3のほうで、U+2236を翻訳可能にしたパッケージを作ってみました。

https://launchpad.net/~cosmos-door/+archive/ubuntu/gome-desktop3

テストパッケージのインストール(focal専用です)

$ sudo add-apt-repository ppa:cosmos-door/gome-desktop3
$ sudo apt upgrade
$ apt policy gnome-desktop3-data

  => PPA側が使われていることを確認する

moファイルとpoファイルのアーカイブを以下にアップロードしてあります。

https://nc.dogezalien.org/index.php/s/5aXzfF592pTPKYs

テスト方法は次のとおりです:

$ sudo mv /usr/share/locale-langpack/ja/LC_MESSAGES/gnome-desktop-3.0.mo{,.bak}

$ sudo cp gd3.orig.mo /usr/share/locale/ja/LC_MESSAGES/gnome-desktop-3.0.mo
  => RATIOが表示されるはず

$ sudo cp gd3.ratio.mo /usr/share/locale-langpack/ja/LC_MESSAGES/gnome-desktop-3.0.mo
  => RATIOが表示されるはず

$ sudo cp gd3.colon.mo /usr/share/locale-langpack/ja/LC_MESSAGES/gnome-desktop-3.0.mo
  => COLONが表示されるはず

一度試していただけないでしょうか。

Revision history for this message
id:sicklylife (sicklylife) wrote :

> https://launchpad.net/~cosmos-door/+archive/ubuntu/gome-desktop3
> https://nc.dogezalien.org/index.php/s/5aXzfF592pTPKYs

試してみました。
仰る通り gd3.orig.mo と gd3.ratio.mo では RATIO が、
gd3.colon.mo のみ COLON が表示されました!

スクリーンショットを添付します。

> Takao PゴシックもU+2236を持ってなさそうに見えます。

え、無いんですか。となると同梱されている 65-fonts-takao-pgothic.conf の影響でしょうか…?

Revision history for this message
id:sicklylife (sicklylife) wrote :

ちょっと気になったのですが、

1. sudo cp gd3.colon.mo /usr/share/locale-langpack/ja/LC_MESSAGES/gnome-desktop-3.0.mo

トップバーに COLON が表示される

2. sudo cp gd3.orig.mo /usr/share/locale/ja/LC_MESSAGES/gnome-desktop-3.0.mo

トップバーに COLON が表示されたまま (GNOME Shell や Ubuntu 自体を再起動しても)

3. sudo cp gd3.ratio.mo /usr/share/locale-langpack/ja/LC_MESSAGES/gnome-desktop-3.0.mo

トップバーに RATIO が表示される

といった具合に gd3.orig.mo で上書きした場合は COLON のままになっているように見えます。

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

ちょっぱやでの対応ありがとうございます!
この方向でGNOMEに修正依頼かけてみるつもりです。

> sudo cp gd3.colon.mo /usr/share/locale-langpack...

あぁ、すみません、テスト方法の説明が間違っていました。

1. moファイルは/usr/share/locale/と/usr/share/locale-langpack/の2種類がある

2. Launchpadで翻訳するものは後者にインストールされる

3. 手動でビルドしたものは前者が使われる

みたいな仕組みになっているように見受けられます(技術的にどうやっているかは未確認です)。

よってテストするには以下の対応が必要です。

1. locale-langpack/以下の該当ファイルを削除しておく(念のため)

2. テスト版のmoはlocale/以下にコピーする

前のコメントで提示した手順は1./2.がごっちゃになってしまっていました。

> え、無いんですか。となると同梱されている 65-fonts-takao-pgothic.conf の影響でしょうか…?

どうやって確認されたかにも依るんですけど、たとえば単純に表示しただけだと、fontconfigによってU+2236だけ、代替フォントにフォールバックした可能性があります。

Revision history for this message
Mitsuya Shibata (cosmos-door) wrote :

GNOME側に報告してMRを送っておきました。

https://gitlab.gnome.org/GNOME/gnome-desktop/issues/135

Changed in ubuntu-jp-improvement:
assignee: nobody → Mitsuya Shibata (cosmos-door)
status: Confirmed → In Progress
Revision history for this message
id:sicklylife (sicklylife) wrote :

> どうやって確認されたかにも依るんですけど、たとえば単純に表示しただけだと、fontconfigによってU+2236だけ、代替フォントにフォールバックした可能性があります。

私の勘違いですね、すみません、失礼いたしました。

> GNOME側に報告してMRを送っておきました。

ありがとうございます!

Revision history for this message
id:sicklylife (sicklylife) wrote :

反応が遅くなってしまってすみません。
ご対応いただきありがとうございました。

summary: - Ubuntu 20.04/18.04 のトップバーやロック画面の時計の区切り文字 ∶ の幅が太すぎるので、細くしてほしい
+ Ubuntu 18.04以降のトップバーやロック画面の時計の区切り文字 ∶ の幅が太すぎるので、細くしてほしい
Changed in ubuntu-jp-improvement:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.