So-net無料ブログ作成
検索選択

Firefox のプリントダイアログの日本語化 [Xcode]

ちょっと一休み。と言うほど、ハイペースでやってる訳じゃあない(と言うか、むしろ超スローペースな)んですが、今回は他の話題を・・。

と言うことで、Macで何かを印刷する時に表示されるプリントダイアログ。 Firefox で実行すると下記の様に表示されます。見ての通り、設定項目は日本語化されていません。

print_dialog.png
英語


まあ、私はいいんですが、「何が書いてあるんかさっぱりわからん」と言う人がいたので、日本語化してみることにしました。

とりあえず、ネットで検索してみたんですが、うまく情報がひっかかりません。誰もやってないのか、キーワードの選択が悪かったのかよくわかりませんが、仕方が無いので、自分でトライしてみました。ここでの方法は Interface Builder を利用しています。Interface Builder は、Xcode Toolsに含まれていて、Xcode Tools をインストールすれば、一緒にインストールされています。なお、Xcode Tools は MacOS X のインストール DVD に添付されていますし、最新版はApple Developer Conectionでダウンロードできます(要登録・無料)。

さて、何からすればいいかが良くわかりませんが、手がかりとしては、ダイアログに表示されている文字列です。まあ、ファイル名のことも考えて、「Print」と言う文字列で Firefox.app の中を検索しました。

0905_search_result.png
これか!?


4つのファイルがひっかかりましたが、該当するものが入っていたのは選択している「PrintPDE.nib」でした。このファイルが含まれていたフォルダのパスは「Firefox.app/Contents/Plug-Ins/PrintPDE.plugin/Contents/Resources/English.lproj/」です。

MacOS X ではアプリケーション上で表示されている文字列は基本的にリソースとしてソースとは別管理されていて、言語毎に用意することができます。なので、おそらく自分で追加が可能なはずです。このフォルダを開いてみると中には「PrintPDE.nib」の他に「Localizable.strings」が入っていました。

0905_english_lproj.png
ファイルが2つ


まず、「Localizable.strings」をテキストエディタで見たところ、ダイアログで表示されている様な文字列が含まれていました。これらの文字列を日本語に変えていけばいいはずですが、先ほども書きました通り言語毎にリソースを作成することができます。これらのファイルが入っているフォルダの名前は「English.lproj」。まあ、英語のリソースなんでしょう。英語のリソースを日本語に変えるのはお行儀が悪いので、このフォルダを複製して「Japanese.lproj」とリネームし、日本語のリソースを作成してしまいます。ちなみに、言語毎のリソースの内、英語はたぶん必須で、現在設定されている言語(私の場合「日本語」で設定)のリソースが無い場合は、そちらが選択されるものと思われます。

0905_japanese_lproj.png
「複製」で作成


まずは、「Localizable.strings」の方を編集します。これはテキストファイルなので、テキストエディタ(私はCotEditorを利用させていただいています。って、今調べたらバージョンがあがってる!)で開いて編集を行います。文字コードは「UTF-16」、改行は「LF」の様です。

各項目は例えば、次の様に左辺にキーワード、右辺に表示文字列となっている様です。

"As laid out on the screen" = "As laid out on the screen";


これを次の様に右辺のみ日本語に変更します。(私が訳してるので、合ってるかどうか微妙かも・・)

"As laid out on the screen" = "画面表示に従う";


で、ここで変えた内容は「一覧」の所で表示されるものの様です。私は中途半端にしか変えていませんが、全ての文字列が変更できる様です。

0905_summary.png
「一覧」表示


さて、肝心のトップページ(?)の部分です。Finderで先ほどの「PrintPDE.nib」をダブルクリックするとInterface Builderが立ち上がり、次の様な画面が表示されます。

0905_print_pde.png
プリントダイアログの定義ファイル


この状態でメニューバーの「Tools」→「Strings」を選択すると文字列定義の一覧が表示されます。

0905_strings.png
わからないところは触らない


ここで、「Value」の項目を日本語に変えていくのですが、各項目がどこに影響するのかが良くわかっていないので、冒頭のプリントダイアログで表示されている文字列(例えば、「Print Selection Only」とか)のみを変更しました。下手して動かなくなったら嫌ですからね・・。

と言うことで、日本語化した結果がこちら。

0905_print_dialog_ja.png
一応、読めます


まあ、これで一応、日本語化できました。一応、こちらに結果のファイルを公開しておきます。全ての動作確認をしたわけではないので、動作が変なところと、また、訳に変なところがあったとしたら、ご容赦を。この記事にコメントを入れていただけるとありがたいです。

ウィジェットプロパティリスト [Dashboardウィジェット]

前回の続きで、「Widget Basics」と言う項目を読んでいます。その中の「Widget Property Lists」と言うところから。

前回読んだ通り、DashboardウィジェットはHTMLファイルを基本として構成させる様ですが、HTMLファイルとは別に information property list (Info.plist)と言うファイルも必須ファイルである様です。このファイルは Dashboard がウィジェットを利用できる様にするために使用するそうです。ちなみに、ここでは明記されていませんが、ファイル名は「Info.plist」固定の様に見えます。

property list に含めるキーは下記の9種類(必須5、オプション4)だとのこと。下表中の設定例は、Dashboard Programming Topicsで取り上げられている「HelloWorld.wdgt」の場合の設定値です。

KeyM/O内容・例
CFBundleIdentifierMウィジェットを識別するためのユニークな文字列。ドメインフォーマットの逆順で表記。
例:com.apple.widget.HelloWorld
CFBundleNameMウィジェットの名前の文字列。ウィジェットバンドルのフォルダ名から拡張子(.wdgt)を抜いた文字列を設定する。
例:HelloWorld
CFBundleDisplayNameMウィジェットの実際の名前の文字列。DashboardのウィジェットバーやFinder上で表示される名前となる。(Finderではフォルダとしてではなく、バンドルファイルとして表示される模様)
例:HelloWorld
CFBundleVersionMウィジェットのバージョン番号を示す文字列。無い様に特に規定はない様子。
例:1.0
CloseBoxInsetXOウィジェットのクローズする時の「X」のボタンのX座標上の表示位置を示す数字。0-100の整数で設定。
例:16
CloseBoxInsetYOウィジェットのクローズする時の「X」のボタンのY座標上の表示位置を示す数字。0-100の整数で設定。
例:14
HeightOウィジェットの高さを示す数字。単位はピクセル。設定されていない場合は、Default.pngの高さが使用される。
例:126
MainHTMLMウィジェットの実装が書かれているHTMLファイルのファイル名を示す文字列。
例:HelloWorld.html
WidthOウィジェットの幅を示す数字。単位はピクセル。設定されていない場合は、Default.pngの幅が使用される。
例:235
・CloseBoxInsetX、CloseBoxInsetYはボタンがウィジェットの左上にセンタリングされる様に設定すること。


ウィジェットの高さと幅の設定ができる様ですが、ウィジェットサイズが変更できる様にする場合は、どのようにするんでしょうね? 背景に固定のPNGファイル(Default.png)を使う様ですし、その辺りもちょっと疑問がわいてきました。と思ったら、「Dashboard Reference > Dashboard Info.plist Keys」と言う文書と、この文書の「Specifying Access Keys」と言う項目に追加のキーが記載されています。これだけなんでしょうか・・? 一通り、読み終わったら、わかってるキーをもう一度まとめ直したい気もしますね。

で、実際に設定した Info.plist の中身の例が書かれていましたので、下記に引用しておきます。ファイルはテキストファイルでXML形式になっていますね。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

<dict>
    <key>CFBundleDisplayName</key>
    <string>Hello World</string>
    <key>CFBundleIdentifier</key>
    <string>com.apple.widget.helloworld</string>
    <key>CFBundleName</key>
    <string>Hello World</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>CloseBoxInsetX</key>
    <integer>16</integer>
    <key>CloseBoxInsetY</key>
    <integer>14</integer>
    <key>MainHTML</key>
    <string>HelloWorld.html</string>
</dict>
</plist>


ちなみに、Xcodeをインストールしていると「/Developer/Applications/Utilities/」にある「Property List Editor.app」でプロパティリストは編集できる様なので、こちらを使えば楽だと思われます。その前に、Dashcode を使えば、統合環境の中に簡単に編集できる要素が入っている様な気もしますけどね。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

ウィジェットバンドル [Dashboardウィジェット]

さて、Dashboard Programming Topicsを読み始めました。前回、心配していたローカルへのデータの保存についてですが、とりあえずPreference の保存はできる様子。また、コマンドラインユーティリティにもアクセスできる様子。そして、ネイティブコードプラグインの作成Objective-C へのブリッジもある様子・・・。と、まあ、一応なんでもありの様ですが、やり過ぎると複雑になりそうですね。

読み進んでいるうちに、ウィジェットの中身の構成について書かれていました。必要なのは、プロパティリストのファイル、スタイルシート、HTMLファイル(と、この中に JavaScript のコードが含まれる?)だとのこと。とりあえずは、サンプルコードが用意されている様なので、そちらも参考にとのことです。(※ADCの中がややこしくて、普通に頭からたどったら、簡単にはこのサンプルコードのページには行けなさそうな雰囲気です・・)

ウィジェットの配布はバンドル形式で行われます。「バンドル」とは単純なフォルダであるらしいです。例えば、「HelloWorld.wdgt」と言うウィジェットの中身は下記の通りになる様です。

HelloWorld.wdgt/
Icon.pngMPNG形式画像ファイル。ウィジェットバーに表示されるアイコン画像。ボディは75×75pixel。ドロップシャドウは透過度50%、光源上方90°、オフセット3pixel、Gaussian blur使用でサイズ3pixel。詳細はこちら
Info.plistMInformation property listファイル
Default.pngMPNG形式画像ファイル。ウィジェットのロード中に表示される画像。動作中の背景としても使用可。デザインに関する詳細はこちら
HelloWorld.htmlMHTMLファイル。アプリの実装を記述する。ファイル名は、「Info.plist」でMainHTMLに指定したものを使用する。また、バンドルのルートレベルに配置されなければならない。
HelloWorld.cssOスタイルシート。アプリの実装の一部。アプリの見た目を記述。
HelloWorld.jsOJavaScript。アプリの実装の一部。アプリのロジックを記述。
・「Icon.png」「Info.plist」「Default.png」はファイル名固定。
・「Icon.png」のドロップシャドウは自前でつける必要がある様子。


表中、「M」は必須ファイル、「O」は任意ファイルを示しています。

ちなみに、アイコンファイルは影を自分でつける必要がある様子です。影のつけ方について、書いている内容がよく理解できていません。めんどくさそう。Dashcodeにアイコン作成のツールはついてるんでしょうか?

表にも記載していますが、アプリケーションはHTML、CSS、JavaScriptで実装し、その内容については普通のWebページの作成と同様で特に制限は無いそうです。ただし、Flashを使うのは避けた方がいいとのこと。ウィジェットはできるだけ軽く作るのがいいからだとのことで、別に不可能な訳ではない様ですね。(使わんけど・・)

また、CSSとJavaScriptのファイルがオプションになっているのは、それが無くても表現できるからでしょう。たぶん。なお、それらの要素を含む場合でも、別ファイルにせずに、HTMLファイル内に記載してしまうこともできるからと言うことの様です。

通常のWebページの作成と同じ様にできるとのことなので、HTMLファイルは複数あっても大丈夫な様です。また、CSS、JavaScriptのファイルも同様ですね。書かれていませんが、さらにサブフォルダを作成して、その中にファイルを入れていくことも可能な様に思えます。何でもありの様ですが、これらも「軽く作る」と言うのとのバランスと言うことでしょうね・・。

なお、バンドルを手動で作る場合、まず「HelloWorld」と言うフォルダを作成し、必要なファイルをそのフォルダの中にコピー。その後、フォルダ名を「HelloWorld.wdgt」に変更すれば、Finder上でウィジェットとして見える様になるとのことです。最初に書きましたが、ウィジェットバンドルは本当に単純なフォルダということですね。(名前だけで区別している様子)


と言うことで、ウィジェットバンドルの中身についてでした。


※「以下も見とけ」と書いてありました。
Dashboard Reference →より詳しいことが書いているらしい。
Leopard Reference Library: Apple Applications Dashboard
 →Dashboard関連のドキュメントとサンプルコードの目次。
Dynamic HTML and XML: The XMLHttpRequest Object
 →XML解析のための XMLHttpRequestの解説らしい。

Dashboardウィジェット [Dashboardウィジェット]

先日書いた「いろいろと興味がある」ものの一つに Mac の Dashboardウィジェットがあります。この機能が搭載されてから、かなり経つんですが、全く使っていません。ところが最近、Dashboard に少し興味が出てきたので、せっかくなのでウィジェットの作り方を覚えたいなぁと思っています。

ちなみに作ってみたいのは、こちらのpNotePad(現在、ダウンロード不能な様子)の様なメモ帳です。現在は、こちらのソフトを利用させていただいているんですが、Dashboardで使えれば、より便利かもと・・欲しくなってしまいました。

さて、とりあえずネットでいろいろと情報をあさって予備知識は入れました。大体は、下記のような感じでしょうか。

  • 開発は「Dashcode」と言う開発環境で行う。
  • ウィジェットの見た目はHTML、CSS等、通常のWebページの記述で表現する。
  • ロジックの開発言語は JavaScript。


後、ウィジェット開発とは関係ないですが、下記もわかりました。

  • 全利用者が利用できるウィジェットは「/Library/Widgets/」フォルダに格納されている。
  • インストールした本人のみが利用できるウィジェットは「~/Library/Widgets/」フォルダに格納されている。


メモ帳を作りたいのですが、言語が JavaScript だとのことで、データが保存できるかどうかが不安です。確か、JavaScriptはローカルファイルにアクセスできなかったと思います。それに関する情報が見つけられなかったので、とりあえずアップルのページから情報を探すことにしました。アップルの公式な情報としては、こちらにまとめられているものから読むのがいいのでしょうか? 概要が書かれているっぽい「Dashboard Programming Topics」から読むことにしました。読んだ内容は次回から書いていきましょう。

なお、いろいろ調べたり、試したりしているうちに追加情報が出た場合は、全く新しい記事を作成する場合もありますが、このページを含めて、既存の記事に追記した方が良さそうな内容は、既存の記事に追記・修正していく予定です。各記事の「更新日時」は最初に公開した日で最終更新日時ではありません。としておきます。


「Dashcode」で検索してみると、下記のページが引っかかりました。後で役立ちそうなので、メモっておきます。

Dashcodeをはじめよう - ASCII.jp
Apple Dashcodeで楽々Widget - マイコミジャーナル
Dashcodeでウィジェットを作成する方法 - throw Life


ブログを作る(無料) powered by So-netブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。