{"id":107,"date":"2006-07-26T01:01:33","date_gmt":"2006-07-26T05:01:33","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/2006-07-26\/dictionaries-in-firefoxthunderbird-2\/"},"modified":"2006-07-26T01:01:33","modified_gmt":"2006-07-26T05:01:33","slug":"dictionaries-in-firefoxthunderbird-2","status":"publish","type":"post","link":"https:\/\/benjamin.smedbergs.us\/blog\/2006-07-26\/dictionaries-in-firefoxthunderbird-2\/","title":{"rendered":"Dictionaries in Firefox\/Thunderbird 2"},"content":{"rendered":"<p>I recently committed a patch which <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=216382\">allows spellchecker dictionaries to be packaged up as extensions<\/a> in Firefox 2. To test this patch, I created (by hand) a French dictionary extension, but never really posted how to create this kind of extension in general. To rectify this, and promote creating this new kind of extension for inclusion on <a href=\"https:\/\/addons.mozilla.org\/\">addons.mozilla.org<\/a>, I have created a simple webtool that will create an extension from uploaded dictionary files: <a href=\"http:\/\/benjamin.smedbergs.us\/dictionary-packager\/\">dictionary-packager<\/a>. <a href=\"http:\/\/svn.smedbergs.us\/dictionary-packager\/trunk\/\">Source is available<\/a> if you want to run it on your own server.<\/p>\n<p>I chose to write this as a webtool instead of a XULRunner app because we don&#8217;t have zipwriting capabilities yet in the Mozilla platform, and I was lazy and knew how to do this easily in PHP ;-).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently committed a patch which allows spellchecker dictionaries to be packaged up as extensions in Firefox 2. To test this patch, I created (by hand) a French dictionary extension, but never really posted how to create this kind of extension in general. To rectify this, and promote creating this new kind of extension for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-mozilla"],"_links":{"self":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":0,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"wp:attachment":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}