Dictionary.app

提供: MacWiki
移動: 案内検索

辞書.app とは?[編集]

Mac OS X 10.4(Tiger)以降にバンドルされている辞書アプリケーション

環境設定で辞書ソースを選択したり、順序をカスタマイズできる。

  • New Oxford American Dictionary
  • Oxford American Writer's Thesaurus

Tips[編集]

  • Cocoaアプリケーションで、単語を選択あるいはポインタで指して ⌃⌘D (Ctrl+Command+D)とするとポップアップで意味が表示される
  • コンテクストメニューで「“検索語”を調べる」を選んでもいい
  • 適当なアプリケーションで検索語を選択し、サービスメニューの「辞書で調べる」を選ぶと辞書.appが起動して調べられる
  • dict: や x-dictionary: というURIスキームで辞書.appを起動できる。例えばターミナル.appopen dict://検索語 あるいは open x-dictionary:検索語 と入力すると辞書.appが起動して調べられる。

プログラミング[編集]

  • Dictionary.app で指定単語を調べた結果を取得する。APIは、
CFStringRef DCSCopyTextDefinition (
DCSDictionaryRef dictionary,
CFStringRef textString,
CFRange range
);
/* compile with:
    gcc -o dictionary -framework CoreServices -framework Foundation dictionary.m
*/
#import <Foundation/Foundation.h>
#include <CoreServices/CoreServices.h>
#include <string.h>
int main(int argc, char *argv[]) {
 int i;
 char *dic="";
 NSString *word;
 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
 NSMutableDictionary *dictionaryPrefs =
   [[userDefaults persistentDomainForName:@"com.apple.DictionaryServices"] mutableCopy];
 NSArray *activeDictionaries = [dictionaryPrefs objectForKey:@"DCSActiveDictionaries"];
 NSString *dicpath = @"/Library/Dictionaries/";
 NSString *dicname = @"";
 for (i=1;i<argc;i++) {
   if (!strcmp(argv[i],"-d")&&i+1<argc) {
     dic=argv[++i];
     if (!strcmp(dic,"thesaurus"))
       dicname = @"Oxford American Writer's Thesaurus.dictionary";
     else if (!strcmp(dic,"oxford"))
       dicname = @"New Oxford American Dictionary.dictionary";
   }
   else
     word = [NSString stringWithUTF8String:argv[i]];
 }
 NSArray *useDictionaries = activeDictionaries;
 if (![dicname isEqualToString:@""])
   useDictionaries =
     [NSArray arrayWithObject:[dicpath stringByAppendingString:dicname]];
 [dictionaryPrefs setObject:useDictionaries forKey:@"DCSActiveDictionaries"];
 [userDefaults setPersistentDomain:dictionaryPrefs forName:@"com.apple.DictionaryServices"];
 puts([(NSString *)DCSCopyTextDefinition(NULL, (CFStringRef)word,
                                         CFRangeMake(0, [word length])) UTF8String]);
 [dictionaryPrefs setObject:activeDictionaries forKey:@"DCSActiveDictionaries"];
 [userDefaults setPersistentDomain:dictionaryPrefs forName:@"com.apple.DictionaryServices"];
 return 0;
}

Wiki内の関連ページ[編集]