" 사전(으)로 태그된 글들"

iPad의 iBooks에 사전 추가하기

2012-07-24   //   alexken작성   //   기술  //  3 Comments

지난글 “MacOSX용 대한민국 우편번호 사전 만들기“에서 재미삼아 만들어본 사전을 iPad의 iBooks에서 띄우고 싶어서, 순정주의자인 내가 이것 땜에 iPad를 탈옥했다.

MacOSX처럼 /Library/Dictionaries에 복사만 하면 될 줄 알았는데, 복사해도 아무런 반응이 없음.

그래서 포기하고 있었는데, iBooks Dictionaries In Other Languages?에서 방법을 찾음.

MacOSX와 다르게 iOS에서는 앱별로 사전을 등록해 줘야함.

iBooks.app에 있는 BKDictionaryManager_LanguageToOrder.plist 파일에 위와 같이
사전마다 고유한 Bundle identifer값을 등록해주면, iBooks에서 사용자 사전이 활성화 됨.
일본어의 경우 고퀄의 사전이 기본 3개나 탑재되어 있음. 부러븐 것들.
한국어 사전도 넣어달란 얘긴 안할테니, 애플은 사용자가 사전을 JB없이도 추가할 수 있는 방법을 제공하라~~(방법 존재)

iPad에서 내가만든 사전을 띄운건 자랑
이것 땜에 jailbreak한건 안 자랑

MacOSX용 대한민국 우편번호 사전 만들기

2012-07-17   //   alexken작성   //   기술  //  2 Comments

binWord/blog Leopardの「辞書」アプリで郵便番号辞書を使う란 MacOS용 시스템 사전을 응용한 일본 우편번호 사전 만들기 포스트를 보고 한국어 버전으로 만들어 보았음.

우정사업본부에서도 우편번호 데이터를 얻을 수 있지만,
인터넷에서 아래와 같이 정리된 데이터를 이용하였음.(2012년5월, 51,989항목)

135-806 서울  강남구 개포1동    경남아파트                      1
135-807 서울  강남구 개포1동    우성3차아파트    (1∼6동)         2
135-806 서울  강남구 개포1동    우성9차아파트    (901∼902동)     3
135-770 서울  강남구 개포1동    주공아파트       (1∼16동)        4

아래와 같이 작성한 ruby 코드로 데이터를 사전용 xml 포맷으로 변환하고, XCode에 있는 사전 도구를 이용해서 make 한방 때리면 사전이 튀어 나옴.

#!/usr/bin/env ruby

puts < <XML_HEAD
<?xml version="1.0" encoding="UTF-8"?>
<d:dictionary xmlns="http://www.w3.org/1999/xhtml"
              xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">
XML_HEAD

class File
  def File.open_and_process(*args)
    f = File.open(*args)
    yield f
    f.close
  end
end

File.open_and_process(ARGV[0],'r') do |file|
  while line = file.gets
    line.gsub(/\s+/,' ').scan(/^(\S+)\s+(.*)\s+(\d+)\s+$/).each{|zip,index,id|
      puts "<d:entry d:title='#{index}' id='#{id}' from=''>"
      index.split(' ').each{ |x|
        puts "\t<d:index d:value='#{x}'></d:index>"
      }
      puts "<section><b>#{zip}</b> #{index}</section>"
      puts "</d:entry>"
    }
  end
end

puts < <XML_TAIL
</d:dictionary>
XML_TAIL
</d:dictionary>

원래 txt 데이터는 3MB
MacOSX 사전용 xml로 변환하면 5MB
사전으로 컴파일하면 28MB
Zip으로 압축해서 5.7MB

7월19일 추가사항

배포를 하려해도 호스팅비용이 부담되어 어찌할까 하다가,
요번 참에 github 가입하고, 소스채 올림.

소스: https://github.com/alexken/korzipcode
컴파일된 사전: https://github.com/alexken/korzipcode/downloads

설치방법?
zip 파일을 다운받아 압축을 풀면 ‘한국 우편번호.dictionary’가 나오고 이것을 ~/Library/Dictionaries에 복사하면 끝.
(~/Library/Dictionaries을 파인더로 가기 힘들다면 Terminal.app에서 cd ~/Library/Dictionaries 하고 open . 으로 열 수 있음.)