Word 2013で、文字列を選択して校閲タブの文章校正グループから「定義」をクリックすると(もしくはCtrl + F7キーを押すか、右クリックメニューの「定義(D)」から)、作業ウィンドウに辞書のインストール画面が表示されます(※ 要サインイン)。
![Office2013_47_01]()
![Office2013_47_02]()
この画面を見て分かる方もいるかもしれませんが、ここで使われる辞書はOffice用アプリです。
今回はこの辞書アプリを作成する方法を紹介します。
といっても、辞書アプリは実質作業ウィンドウアプリで、異なるのは下記のようにマニフェストファイルだけです(もちろん、辞書としての機能を実装する必要はありますが)。
・dictionary.xml(マニフェストファイル)
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
<Id>c8fb039c-af50-4eb3-8b5b-3b29697bb8ae</Id>
<Version>1.0</Version>
<ProviderName>きぬあさ</ProviderName>
<DefaultLocale>JA-JP</DefaultLocale>
<DisplayName DefaultValue="サンプル辞書アプリ" />
<Description DefaultValue="選択した文字列を辞書検索します。"/>
<Capabilities>
<Capability Name="Document" />
</Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="http://localhost/afo/dictionary.html" />
</DefaultSettings>
<Permissions>ReadDocument</Permissions>
<Dictionary>
<TargetDialects>
<TargetDialect>JA-JP</TargetDialect>
</TargetDialects>
<QueryUri DefaultValue="http://www.bing.com/search?q=" />
<CitationText DefaultValue="Results by:" />
<DictionaryName DefaultValue="Bing" />
<DictionaryHomePage DefaultValue="http://www.bing.com/" />
</Dictionary>
</OfficeApp>
- Dictionary要素:辞書アプリの設定を記述
- TargetDialects、TargetDialect要素:辞書がサポートする言語(必須)
- QueryUri要素:辞書のクエリサービスのエンドポイント(必須)
- CitationText要素:引用で使用するテキスト(必須)
- DictionaryName要素:辞書名(必須)
- DictionaryHomePage要素:辞書のホームページのURL(必須)
※ 各要素の詳細な説明は「辞書の作業ウィンドウ アプリを作成する」参照。
・dictionary.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.1.min.js"></script>
<script src="https://appsforoffice.microsoft.com/lib/1.0/hosted/office.js"></script>
<script>
Office.initialize = function (reason) {
$(document).ready(function () {
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, document_SelectionChange);
Office.context.document.getSelectedDataAsync(Office.CoercionType.Text, function(asyncResult) {
if (asyncResult.status !== Office.AsyncResultStatus.Failed) {
var s = asyncResult.value;
if (s) {$("#ifr").attr("src", "http://www.bing.com/search?q=" + encodeURIComponent(s));}
}
});
});
}
function document_SelectionChange(eventArgs) {
eventArgs.document.getSelectedDataAsync(Office.CoercionType.Text, function(asyncResult) {
if (asyncResult.status !== Office.AsyncResultStatus.Failed) {
var s = asyncResult.value;
if (s) {$("#ifr").attr("src", "http://www.bing.com/search?q=" + encodeURIComponent(s));}
}
});
}
</script>
<style>
html,body {
margin:0;
padding:0;
overflow:hidden;
height:100%;
font-family:Arial,sans-serif;
font-size:0.9em;
}
iframe {
/* width:100%; */
width:600px;
height:100%;
border:none;
}
</style>
</head>
<body>
<iframe id="ifr" src=""></iframe>
</body>
</html>
上記は共有フォルダー形式での配布を想定したものなので、インストールは「
挿入」タブの「
Office 用アプリ」から手動で行う必要があります。
一度インストールを行うと、あとは文字列を選択して「
定義」を呼び出すだけで、自動的に辞書が立ち上がるようになります(
「定義」の呼び出し方は上記参照)。
本来ならば下記のようにちゃんと辞書として機能するようにアプリを実装しなければいけないのですが、上記はiframeに
Bingの検索結果を表示するだけの手抜きアプリです(あくまでも動作確認用ということで…)。
辞書の Office 用アプリは、標準的な作業ウィンドウ アプリを基盤として、辞書の XML Web サービスに対するクエリの機能と、取得した定義を Office アプリケーションの UI 上の別の場所に表示する機能が追加されたものです。
辞書の作業ウィンドウ アプリでは、一般に、ユーザーがドキュメント上で選択した語句を、アプリの JavaScript のロジックを使用して辞書プロバイダーの XML Web サービスに渡します。これにより、辞書プロバイダーの Web ページが更新され、選択範囲に対応する定義をユーザーに表示できます。
XML Web サービス コンポーネントは、OfficeDefinitions XML スキーマが定める形式で、最大 3 つの定義を返します。アプリはこれを、ホストの Office アプリケーションの UI 上の別の場所に表示します。
辞書の作業ウィンドウ アプリを作成する より
“辞書”として利用出来得るコンテンツをお持ちの方は、是非お試しください。