彷徨えるフジワラ

年がら年中さまよってます

i18n

システムワイドなロケール設定 〜 Cygwin

Cygwin でのシステムワイドなロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。表題で「システムワイド」と謳いつつ「ユーザ毎」の設定について書いている点は、前回のWindows のエントリと同様です(笑)。 設定更新方法 Cygwin…

システムワイドなロケール設定 〜 Windows

Windows でのシステムワイドなロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。なお、表題で「システムワイド」と謳いつつ、本エントリで扱うロケール設定は、Mac OS X (その1) と同様に、「ユーザ毎」の設定だったりしますが…

システムワイドなロケール設定 〜 Mac OS X (その2)

その1では、「ターミナル」や、SSH 経由でのアクセスなど、主にCUI系アクセスでのロケール設定に関してまとめました。本エントリでは、主に GUI 経由で起動されるアプリに対して、ロケール設定を反映させる方法についてまとめます。 GUI 経由で起動されるア…

システムワイドなロケール設定 〜 Mac OS X (その1)

Mac OS X でのロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。なお、私自身がもっぱら「Mac mini に SSH 経由でアクセス」をメインとする、相当な「ニワカ Mac ユーザ」なので、本エントリの情報精度は、他のエントリに輪を…

システムワイドなロケール設定 〜 Solaris

Solaris でのシステムワイドなロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。"Solaris" と表記してはいますが、基本的に OpenIndiana 等の OpenSolaris 系環境を対象としています。Solaris 10 やそれ以前の Solaris 環境で…

システムワイドなロケール設定 〜 Debian GNU/Linux

Debian GNU/Linux でのシステムワイドなロケール設定の取り扱いに関して、調べた結果を備忘録代わりにまとめておきます。 設定格納先 Debian GNU/Linux の場合、システムワイドなロケール設定は /etc/default/locale ファイルに、以下のような形式で記述され…

非 ASCII 文字出力により、Windows 上での Mercurial 実行が中断される問題

時間の無い方向けに、先に要点をまとめておきます(笑)。Windows 環境で以下の条件が成立する場合、 Mercurial が非 ASCII 文字列を表示しようとすると、『表示失敗』扱いでコマンド実行が中断されます。 Windows 標準のコマンドプロンプト(cmd.exe)を使用…

OpenSolaris 勉強会 2013.09

日本OpenSolarisユーザーグループ主催の Tokyo OpenSolaris 勉強会 2013.09に参加してきた。参加記録のブログエントリを書くのは、すごく久しぶりなのだけれど、一応5〜8月にかけても毎月参加 (っつーか開催) はしていたりする。ls本の執筆作業が佳境だっ…

Mercurial の Subversion 連携における問題の調査 〜 その2

※ 修正が取り込まれた 2.2. 版以降であれば、言語設定に起因する変換失敗は発生しません。それ以前の版を利用する場合は、"LC_ALL=en_US.utf-8; export LC_ALL" 等により、言語設定を無効にしてください。なお、convert エクステンションでは、内部処理が全…

Mercurial の Subversion 連携における問題の調査

※ 修正が取り込まれた 2.2. 版以降であれば、言語設定に起因する変換失敗は発生しません。それ以前の版を利用する場合は、"LC_ALL=en_US.utf-8; export LC_ALL" 等により、言語設定を無効にしてください。なお、convert エクステンションでは、内部処理が全…

aspell に使用言語を強制する

いわゆる『ドックフード喰い』として、日本語設定を有効にした状態で Mercurial の hg コマンドを使うために、LANGUAGE 環境変数に ja を設定。しかし、この設定を常用すると、思わぬ所から頭を引っ叩かれる事態が。Mercurial の開発 ML に修正パッチを投函…

Mercurial の文字コード設定説明ページを更新した

TokyoMercurial #1 参加の際に気になったトピックについて、詳細を書こうとおもったのだが、そういえば『日本語の取り扱いってどうなってるんでしょう?』という質問があったなぁ、と思い出した。職場とかでの導入/普及の際に、やっぱり日本語の取り扱いの…

Mac OS HFS+ におけるファイル名文字コード

Mercurial で case insensitive filesystem 周りの修正をする際に仕込んだ知識のまとめエントリその5。またもや case insensitive とは関係の無い話。"\xc4\xb0" というバイト列を名前に持つファイルを生成する状況を想定する。Windows において、Python の…

Python のファイル I/O API と文字コード

Mercurial で case insensitive filesystem 周りの修正をする際に仕込んだ知識のまとめエントリその3。でも case insensitive とは関係の無い話を。今回の作業で知ったのだけれど、Python のファイル I/O 系 API では、引数が Unicode かバイト列かに応じて…

トルコ文字と case insensitive filesystem

Mercurial で case insensitive filesystem 周りの修正をする際に仕込んだ知識のまとめエントリその2。トルコ語 (Turkish) の文字には、『アイ』(I) の文字のバリエーションに以下の4つがあるらしい。 U+0049: LATIN CAPITAL LETTER I U+0069: LATIN SMALL …

グルジア文字と case insensitive filesystem

Mercurial で case insensitive filesystem 周りの修正をする際に仕込んだ知識のまとめエントリその1。グルジア語 (Georgian) の文字 U+10A0 と U+2D00 は、Unicode 仕様上は大文字/小文字の関係にあるので、例えば最新の Python 処理系で以下のような条件…

Mercurial の文字コード設定

※ 2012年までの「追記」の表示を破棄/IntelliJ IDEA に関する注記を追加(@2013-12-30)このエントリは、Mercurial Advent Calendar 2011 の 15 日目です。相変わらず話が長くなってしまって御免なさい .... orz追記でではありますが、一応『ここまで読め…

リリース間際の滑り込み修正

Mercurial 2.0 版のリリース直前になって、日本語設定 ("export LANG=ja") 時にコマンドのオンラインヘルプを表示させると、成功するケースと失敗するケースがあることが判明。リリース予定がアメリカ時間の 11/01 なのに、判明したのが日本時間の 10/31 の…

空白詰めと符号化方式

CP932 (Shift-JIS ね) に関するバグを滑り込みで直すことができて、やれやれ危ういところだった、とホッとしながら、Mercurial 1.6 版を仕事で使っている環境に入れて help 出力を確認してみたら....: -A --addremove コミット前に、新規/不在ファイルを登…

滑り込みで文字化けの修正

Mercurial の主要なコマンド/エクステンション/ヘルプトピックのメッセージを概ね翻訳し終えた。今回のリリースでは、新機能としてリビジョン指定言語("hg help revsets")が追加された他に、用語集("hg help glossary")も追加されているため、段落分割で共…

段落分割に伴うメッセージ翻訳

2010/07/01 前後にリリースされる Mercurial 1.6 版から、メッセージの翻訳単位が段落毎に変更となる。従来は、コマンドの説明文原文に一文字でも変更があると、当該コマンドのヘルプドキュメントが丸々未翻訳な状態になっていたのだけれど、この変更により…

MBCS 文字列の折り返し - 最終回

修正方法等でリテイクがあったけど、無事本家のリポジトリに取り込まれたので一安心。TextWrap の派生クラスから更で実装するような状況だったら、途中でうんざりしてたかも(笑)。大変助かりました > 伊藤さんさて、7月頭のリリースに向けて、もう一つのパ…

MBCS 文字列の折り返し - その 3

Mercurial のヘルプ表示に関しては、まずは「文字化けを無くす」ことが優先なのだけど、Python 標準の textwrap を使う限りでは(少なくとも日本語は)綺麗な行折り返しは実現できそうにないから、いずれは独自の行折り返し実装が必要になる感じ。標準 textwra…

MBCS 文字列の折り返し - その 2

文字の表示桁取得処理に関して気になることが。dayflower 氏の実装では、unicodedata.east_asian_width() の戻り値が F/W/A のいずれかなら 2 桁とみなしているけど、Mercurial の colwidth()@encoding.pyでは F/W の場合だけ 2 桁とみなしている。ふーむ、…

MBCS 文字列の折り返し - その 1

Mercurial の 1.4 版から、端末表示幅にあわせてヘルプテキストが折り返されるようになったのだけど、案の定というか、言語設定を日本語にしてある(LANGUAGE=ja 等)場合、折り返された行末で表示が乱れるケースがちらほらと。ぱっと見、複数バイトで構成され…

Cygwin のパス名符号化が UTF-8 化

Emacs(Meadow) 経由で "hg commit" しようとしたら、何故かエラーで中断される。あれ?何がまずいんだ? "hg status" してみると、最近全く触った覚えの無いファイルが missing("!") 扱いになっている。おまけに、これまた全く身に覚えの無いファイルが unkn…

端末の文字コード

OpenSolaris デスクトップでは、ターミナルソフトとして gnome-terminal を使うのだけれど、どういうわけか gnome-terminal が対応している文字コードは基本 UTF-8 一択。標準テキストエディタの gedit は相当数の文字コードに対応しているのに…。仕事/環境…

Mercurial のメッセージ日本語化〜その2

その1から一週間ぶりに作業を再開。結局、予想通りというかなんと言うか: internationalized messages should not contain the `\r' escape sequence は、hgext/chrun.py がモロに "\r" を使っていたのが原因の模様。なんだ、つまらん。

Mercurial のメッセージ日本語化

開発者 ML で見て気になっていたMercurial国際化の枠組みでの日本語化に手を出してみた。