PageSourceSearch

https://www.codeandweb.com/component---src-templates-doc-ext-templ…on-spellchecker-mdx-1adc5870ed7684166d9b.js

js codeandweb.com collected 2026-09-24 19:37:26 UTC 27,155 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkcodeandweb=self.webpackChunkcodeandweb||[]).push([[12736],{11401:function(e,t,n){n.d(t,{C:function(){return w}});var a=n(96540),l=n(95853),i=n(98701),r=n(46942),c=n.n(r),s=n(90074),o=n(33149),m=n(24012),d=n(16668),u=n(87839),p=n(88564);const f=e=>{let{sectionItem:t}=e;return a.createElement(u.N_,{to:t.url,activeClassName:"font-bold",className:"block py-1 px-1 lg:px-2 rounded-sm lg:py-1 hover:bg-gray-50"},t.title)},h=e=>{var t;let{sectionItem:n,currentPath:l}=e;const{getExpanded:i,setExpanded:r}=(0,p.py)(),s=n.title,o=i(s),m=null!==(t=n.childItems)&&void 0!==t?t:[],u=m.some((e=>e.url===l));(0,a.useEffect)((()=>{r(s,u)}),[n,l]);return a.createElement(a.Fragment,null,a.createElement("button",{className:"py-1 px-1 lg:px-2 rounded-sm lg:py-1 hover:bg-gray-50 flex justify-between w-full",onClick:()=>{r(s,!o)}},a.createElement("span",{className:c()({"font-semibold":u})},n.title),a.createElement(d.A,{className:c()("transform transition-transform w-4 h-4",{"rotate-90":o})})),a.createElement("div",{className:c()("border-l lg:pl-4 border-gray-200 mx-1",{hidden:!o})},m.map((e=>a.createElement(f,{key:e.url,sectionItem:e})))))},g=e=>{let{sectionItem:t}=e;return a.createElement(u.N_,{to:t.url,activeClassName:"font-bold",className:"block py-1 px-1 lg:px-2 rounded-sm lg:py-1 hover:bg-gray-50"},t.title)},b=e=>{let{sectionItem:t,currentPath:n}=e;return t.url?a.createElement(g,{sectionItem:t}):a.createElement(h,{sectionItem:t,currentPath:n})};var E=e=>{let{docNavConfig:t,currentPath:n}=e;return a.createElement(a.Fragment,null,t.items.map(((e,t)=>a.createElement("div",{className:"mb-2 text-xs lg:text-base",key:e.url||"section-"+t},a.createElement(b,{sectionItem:e,currentPath:n})))))};const v=e=>{let{onClick:t}=e;return a.createElement("button",{className:"lg:hidden flex flex-row items-center justify-center mt-4 bg-gray-200 text-gray-700 rounded-md px-2 space-x-1 py-0.5 text-xs",onClick:t},a.createElement(s.A,{className:"text-gray-600 h-3 w-3"}),a.createElement("span",null,"Hide"))},x=e=>{let{onClick:t,menuHidden:n}=e;return a.createElement(a.Fragment,null,n&&a.createElement("div",{className:c()("z-2 w-6 hidden sm:block lg:hidden")},a.createElement("button",{className:"sticky inset-y-20 transform origin-bottom-left rotate-90 text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 hover:text-gray-900 z-20 px-4 py-0.5 rounded-t-md flex flex-col items-center justify-center",onClick:t},"Navigation")))},w=e=>{let{product:t,currentPath:n,onPageItems:r=[],children:s,relatedArticles:d}=e;const u=i.A[t],{0:f,1:h}=(0,a.useState)(!1),g=()=>{h(!f)};return a.createElement(a.Fragment,null,a.createElement("div",{className:""},a.createElement("div",{className:"flex break-words sm:break-normal"},a.createElement("aside",{className:c()("z-10 lg:block border-r border-gray-200",f?"hidden":"hidden sm:block")},a.createElement("div",{className:"w-48 lg:w-64 pl-2 pt-12 sticky top-0 -mt-8"},a.createElement(v,{onClick:g}),a.createElement("nav",{"aria-label":"Documentation chapters",className:"max-h-screen overflow-y-auto mt-4 w-full"},a.createElement(p.Lp,{page:t},a.createElement(E,{docNavConfig:u,currentPath:n}))))),a.createElement(x,{onClick:g,menuHidden:f}),a.createElement("div",{className:"mx-auto flex overflow-hidden xl:overflow-visible"},a.createElement("div",{className:"md:max-w-2xl lg:max-w-3xl xl:max-w-5xl overflow-hidden min-w-0"},a.createElement("main",{id:"main-content"},a.createElement("div",{className:"px-4 mt-8 prose max-w-4xl break-words sm:break-normal mb-12"},s)),a.createElement(l.A,{docNavConfig:u,currentPath:n})),a.createElement("aside",{className:"order-2 hidden xl:block"},a.createElement("div",{className:"sticky top-0 pt-16 -mt-8"},a.createElement("div",{className:"h-screen justify-between flex flex-col lg:w-64"},a.createElement("div",{className:"overflow-y-auto"},!!r.length&&a.createElement(o.A,{items:r,title:"On this page",maxDepth:3,firstLevelBold:!0})),a.createElement(m.K,{related:d}))))))))}},16668:function(e,t,n){var a=n(98587),l=n(96540);const i=["className"];t.A=e=>{let{className:t}=e,n=(0,a.A)(e,i);return l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},n,{className:t||"inline-block h-4"}),"  ",l.createElement("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"}))}},24012:function(e,t,n){n.d(t,{K:function(){return i}});var a=n(90177),l=n(96540);const i=e=>{let{related:t}=e;return t&&l.createElement("nav",{"aria-label":"Related pages",className:"py-4 px-2 bg-gray-100 text-xs"},l.createElement("h2",{className:"font-bold pr-0 uppercase text-gray-600 my-1 pb-2 border-l-4 border-transparent"},"Related Pages"),l.createElement("ul",{className:"border-l-4 border-transparent"},t.map((e=>{let{title:t,url:n}=e;return l.createElement("li",{key:t,className:"pb-2"},l.createElement(a.A,{to:n,className:"text-gray-700 hover:text-gray-900 hover:underline"},t))}))))}},33149:function(e,t,n){n.d(t,{A:function(){return p},w:function(){return u}});var a=n(54506),l=n(98587),i=n(96540),r=n(46942),c=n.n(r);const s=["to","children"];function o(e){let{to:t,children:n}=e,a=(0,l.A)(e,s);return i.createElement("a",Object.assign({href:t,onClick:e=>{e.preventDefault();const n=t.startsWith("#")?t.slice(1):t,a=document.getElementById(n);window.history.pushState(null,"","#"+n),a&&a.scrollIntoView({behavior:"smooth",block:"start"})}},a),n)}var m=e=>{let{items:t,title:n,maxDepth:a,activeItemHash:l,firstLevelBold:r}=e;const s=e=>{if(!e||0===e.length)return 0;let t=0;for(const n of e)t++,n.items&&n.items.length>0&&(t+=s(n.items));return t},m=(e,t)=>
1e&&e.filter((e=>e.url===t||m(e.items,t))).length>0,d=(e,t,n,a,l)=>e&&e.map(((e,r)=>{const s="NONE"===a?0===r&&1===t:e.url===a;return i.createElement("li",{key:"toc-"+(e.url||t+"-"+r)},e.url&&((e,t,n,a)=>{const l=c()("block py-1 pr-2 md:text-xs lg:text-sm border-l-4","hover:bg-gray-50 hover:text-gray-800 hover:border-gray-200",{"border-gray-300 text-gray-900 bg-gray-50":e,"text-gray-600 border-gray-50":!e},{"pl-0":1===t,"font-semibold":a&&1===t,"pl-4":2===t,"pl-8":3===t}),{title:r,url:s}=n;return i.createElement(o,{className:l,to:s||"#"},i.createElement("span",{className:"block pl-2"},r))})(s,t,e,l),e.items&&((e,t)=>null===t||e<t)(t,n)&&(u||s||m(e.items,a))&&i.createElement("ul",null,d(e.items,t+1,n,a,l)))})),u=s(t)<20;return t?i.createElement("nav",{"aria-label":n||"On this page"},n&&i.createElement("h2",{className:"font-bold px-0 uppercase text-gray-800 mb-4 pl-2 border-l-4 border-transparent"},n),i.createElement("ul",null,d(t,1,a-1,l,r))):null};const d=["items","maxDepth"],u=e=>e.map((e=>Object.assign({},(e=>{let{url:t,title:n}=e;if(!n)return;const a=n.match(/(.*){(#.*)}/);return a&&(n=a[1],t=a[2]),n=n.replace(/<.*>/,""),{url:t,title:n}})(e),{items:e.items?u(e.items):void 0})));var p=e=>{let{items:t=[],maxDepth:n}=e,a=(0,l.A)(e,d);const{0:r,1:c}=(0,i.useState)(0),{0:s,1:o}=(0,i.useState)("NONE"),{0:p,1:g}=(0,i.useState)([]),{0:b}=(0,i.useState)(u(t)),E=()=>{const e=f(b,1,n),t=h(e);g(t)};(0,i.useEffect)((()=>{const e=p.find(((e,t)=>{const n=p[t+1];return n?window.scrollY>=e.offsetTop&&window.scrollY<n.offsetTop:window.scrollY>=e.offsetTop}));o(e?e.hash:"NONE")}),[p,r]);const v=(0,i.useCallback)((()=>{E()}),[E]),x=()=>c(window.scrollY);return(0,i.useEffect)((()=>(E(),window.addEventListener("resize",v),window.addEventListener("scroll",x),()=>{window.removeEventListener("resize",v),window.removeEventListener("scroll",x)})),[]),i.createElement(m,Object.assign({maxDepth:n,activeItemHash:s,items:b},a))};function f(e,t,n){return e.reduce(((e,l)=>{if(l.url){const t=l.url;e=[].concat((0,a.A)(e),[t])}return l.items&&t<n&&(e=[].concat((0,a.A)(e),(0,a.A)(f(l.items,t+1,n)))),e}),[])}const h=e=>{var t;const n=(null===(t=document.getElementsByTagName("header")[0])||void 0===t?void 0:t.offsetHeight)||75;return e.map((e=>{const t=document.getElementById(e.replace("#",""));return t?{hash:e,offsetTop:t.offsetTop-n}:null})).filter((e=>e))}},58510:function(e,t,n){n.r(t),n.d(t,{Head:function(){return u},default:function(){return d}});var a=n(28453),l=n(96540);function i(e){const t=Object.assign({h1:"h1",a:"a",span:"span",p:"p",h2:"h2",strong:"strong",code:"code",ul:"ul",li:"li",pre:"pre"},(0,a.R)(),e.components);return l.createElement(l.Fragment,null,l.createElement(t.h1,{id:"spell-checker",style:{position:"relative"}},"Spell checker",l.createElement(t.a,{href:"#spell-checker","aria-label":"spell checker permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}))),"\n",l.createElement(t.p,null,"BabelEdit's spell checker comes with a bunch of bundled languages, but it supports way more.\nFor us it's not possible to put all of them in the download because of ",l.createElement(t.a,{href:"#licenses"},"license restrictions"),".\nIt would also not make much sense to increase the download size with languages you most likely\nwon't need."),"\n",l.createElement(t.h2,{id:"installing-dictionaries",style:{position:"relative"}},"Installing dictionaries",l.createElement(t.a,{href:"#installing-dictionaries","aria-label":"installing dictionaries permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}))),"\n",l.createElement(t.p,null,"To make it as easy as possible for you to add new language, BabelEdit asks if you want to download\nadditional spell checkers:"),"\n",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<span\n      class="gatsby-resp-image-wrapper"\n      style="position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 832px; "\n    >
1\n      <span\n    class="gatsby-resp-image-background-image"\n    style="padding-bottom: 12.5%; position: relative; bottom: 0; left: 0; display: block;"\n  ></span>\n  <picture>\n          <source\n              srcset="/static/55f249d0bb809eabd93f55c077224ed0/b4f21/install-dictionaries%402x.avif 208w,\n/static/55f249d0bb809eabd93f55c077224ed0/a7f15/install-dictionaries%402x.avif 416w,\n/static/55f249d0bb809eabd93f55c077224ed0/01fa0/install-dictionaries%402x.avif 832w,\n/static/55f249d0bb809eabd93f55c077224ed0/acbef/install-dictionaries%402x.avif 1248w,\n/static/55f249d0bb809eabd93f55c077224ed0/cebdc/install-dictionaries%402x.avif 1370w"\n              sizes="(max-width: 832px) 100vw, 832px"\n              type="image/avif"\n            /><source\n              srcset="/static/55f249d0bb809eabd93f55c077224ed0/6abcd/install-dictionaries%402x.webp 208w,\n/static/55f249d0bb809eabd93f55c077224ed0/69edf/install-dictionaries%402x.webp 416w,\n/static/55f249d0bb809eabd93f55c077224ed0/da8f3/install-dictionaries%402x.webp 832w,\n/static/55f249d0bb809eabd93f55c077224ed0/28eb2/install-dictionaries%402x.webp 1248w,\n/static/55f249d0bb809eabd93f55c077224ed0/c73e1/install-dictionaries%402x.webp 1370w"\n              sizes="(max-width: 832px) 100vw, 832px"\n              type="image/webp"\n            />\n          <source\n            srcset="/static/55f249d0bb809eabd93f55c077224ed0/3697c/install-dictionaries%402x.png 208w,\n/static/55f249d0bb809eabd93f55c077224ed0/e3e0f/install-dictionaries%402x.png 416w,\n/static/55f249d0bb809eabd93f55c077224ed0/283d3/install-dictionaries%402x.png 832w,\n/static/55f249d0bb809eabd93f55c077224ed0/b19d7/install-dictionaries%402x.png 1248w,\n/static/55f249d0bb809eabd93f55c077224ed0/51ec7/install-dictionaries%402x.png 1370w"\n            sizes="(max-width: 832px) 100vw, 832px"\n            type="image/png"\n          />\n          <img\n            class="gatsby-resp-image-image"\n            src="/static/55f249d0bb809eabd93f55c077224ed0/283d3/install-dictionaries%402x.png"\n            alt="Installing spell checker dictionaries in BabelEdit"\n            title=""\n            loading="lazy"\n            decoding="async"\n            style="width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;"\n          />\n        </picture>\n    </span>'}}),"\n",l.createElement(t.p,null,"Click ",l.createElement(t.strong,null,"Install..."),". Next read the license agreement for the dictionary.\nClick ",l.createElement(t.strong,null,"Agree + Install")," to install the dictionary if you agree with the dictionary's license terms:"),"\n",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<span\n      class="gatsby-resp-image-wrapper"\n      style="position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 832px; "\n    >
1\n      <span\n    class="gatsby-resp-image-background-image"\n    style="padding-bottom: 61.53846153846154%; position: relative; bottom: 0; left: 0; display: block;"\n  ></span>\n  <picture>\n          <source\n              srcset="/static/07f17c76a48a47696009048eaa305eb3/b4f21/confirm-dictionary-license%402x.avif 208w,\n/static/07f17c76a48a47696009048eaa305eb3/a7f15/confirm-dictionary-license%402x.avif 416w,\n/static/07f17c76a48a47696009048eaa305eb3/01fa0/confirm-dictionary-license%402x.avif 832w,\n/static/07f17c76a48a47696009048eaa305eb3/acbef/confirm-dictionary-license%402x.avif 1248w,\n/static/07f17c76a48a47696009048eaa305eb3/d511f/confirm-dictionary-license%402x.avif 1510w"\n              sizes="(max-width: 832px) 100vw, 832px"\n              type="image/avif"\n            /><source\n              srcset="/static/07f17c76a48a47696009048eaa305eb3/6abcd/confirm-dictionary-license%402x.webp 208w,\n/static/07f17c76a48a47696009048eaa305eb3/69edf/confirm-dictionary-license%402x.webp 416w,\n/static/07f17c76a48a47696009048eaa305eb3/da8f3/confirm-dictionary-license%402x.webp 832w,\n/static/07f17c76a48a47696009048eaa305eb3/28eb2/confirm-dictionary-license%402x.webp 1248w,\n/static/07f17c76a48a47696009048eaa305eb3/00ee2/confirm-dictionary-license%402x.webp 1510w"\n              sizes="(max-width: 832px) 100vw, 832px"\n              type="image/webp"\n            />\n          <source\n            srcset="/static/07f17c76a48a47696009048eaa305eb3/3697c/confirm-dictionary-license%402x.png 208w,\n/static/07f17c76a48a47696009048eaa305eb3/e3e0f/confirm-dictionary-license%402x.png 416w,\n/static/07f17c76a48a47696009048eaa305eb3/283d3/confirm-dictionary-license%402x.png 832w,\n/static/07f17c76a48a47696009048eaa305eb3/b19d7/confirm-dictionary-license%402x.png 1248w,\n/static/07f17c76a48a47696009048eaa305eb3/c08f5/confirm-dictionary-license%402x.png 1510w"\n            sizes="(max-width: 832px) 100vw, 832px"\n            type="image/png"\n          />\n          <img\n            class="gatsby-resp-image-image"\n            src="/static/07f17c76a48a47696009048eaa305eb3/283d3/confirm-dictionary-license%402x.png"\n            alt="Installing spell checker dictionaries in BabelEdit"\n            title=""\n            loading="lazy"\n            decoding="async"\n            style="width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;"\n          />\n        </picture>\n    </span>'}}),"\n",l.createElement(t.h2,{id:"supported-languages",style:{position:"relative"}},"Supported languages",l.createElement(t.a,{href:"#supported-languages","aria-label":"supported languages permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}))),"\n",l.createElement(t.p,null,"BabelEdit uses Hunspell dictionaries, compatible with OpenOffice and LibreOffice.\nThe following languages are supported:"),"\n",l.createElement("div",{className:"flex flex-wrap "},l.createElement("div",{className:"md:w-1/4 pr-4 pl-4 w-1/2"},l.createElement("ul",{className:"list-none"},l.createElement("li",null,"Afrikaans"),l.createElement("li",null,"Albanian"),l.createElement("li",null,"Arabic"),l.createElement("li",null,"Belarusian"),l.createElement("li",null,"Breton"),l.createElement("li",null,"Bulgarian"),l.createElement("li",null,"Catalan"),l.createElement("li",null,"Croatian"),l.createElement("li",null,"Czech"),l.createElement("li",null,"Danish"),l.createElement("li",null,"Dutch"))),l.createElement("div",{className:"md:w-1/4 pr-4 pl-4 w-1/2"},l.createElement("ul",{className:"list-none"},l.createElement("li",null,"English"),l.createElement("li",null,"Estonian"),l.createElement("li",null,"French"),l.createElement("li",null,"Galician"),l.createElement("li",null,"German"),l.createElement("li",null,"Greek"),l.createElement("li",null,"Gujarati"),l.createElement("li",null,"Hebrew"),l.createElement("li",null,"Hindi"),l.createElement("li",null,"Hungarian"),l.createElement("li",null,"Icelandic"))),l.createElement("div",{className:"md:w-1/4 pr-4 pl-4 w-1/2"},l.createElement("ul",{className:"list-none"},l.createElement("li",null,"Indonesian"),l.createElement("li",null,"Italian"),l.createElement("li",null,"Latvian"),l.createElement("li",null,"Lithuanian"),l.createElement("li",null,"Norweg
1ian (Bokmål)"),l.createElement("li",null,"Norwegian (Nynorsk)"),l.createElement("li",null,"Polish"),l.createElement("li",null,"Portuguese"),l.createElement("li",null,"Romanian"),l.createElement("li",null,"Russian"))),l.createElement("div",{className:"md:w-1/4 pr-4 pl-4 w-1/2"},l.createElement("ul",{className:"list-none"},l.createElement("li",null,"Serbian (Latin)"),l.createElement("li",null,"Slovak"),l.createElement("li",null,"Slovenian"),l.createElement("li",null,"Spanish"),l.createElement("li",null,"Swahili"),l.createElement("li",null,"Swedish"),l.createElement("li",null,"Telugu"),l.createElement("li",null,"Thai"),l.createElement("li",null,"Ukrainian"),l.createElement("li",null,"Vietnamese")))),"\n",l.createElement(t.h2,{id:"licenses",style:{position:"relative"}},"Licenses",l.createElement(t.a,{href:"#licenses","aria-label":"licenses permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}))),"\n",l.createElement(t.p,null,"Most dictionaries are licensed under GPL or LGPL. License details can be found in the folder of\neach dictionary.\nThe GPL license makes it unfortunately impossible for us to directly bundle the dictionaries\nwith BabelEdit's installer."),"\n",l.createElement(t.p,null,"The language pack is also available from ",l.createElement(t.a,{href:"https://github.com/CodeAndWeb/dictionaries"},"GitHub"),"."),"\n",l.createElement(t.h2,{id:"additional-dictionaries",style:{position:"relative"}},"Additional dictionaries (LibreOffice / OpenOffice)",l.createElement(t.a,{href:"#additional-dictionaries","aria-label":"additional dictionaries permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}))),"\n",l.createElement(t.p,null,"More dictionaries are available from\nthe ",l.createElement(t.a,{href:"https://extensions.openoffice.org/en/search?f%5B0%5D=field_project_tags%3A157"},"OpenOffice Extensions repository"),"\nor ",l.createElement(t.a,{href:"https://extensions.libreoffice.org/extensions?getCategories=Dictionary&getCompatibility=any"},"LibreOffice repository"),".\nYou can download them as .otx files."),"\n",l.createElement(t.p,null,"Open BabelEdit's preferences and click the ",l.createElement("em",null,"Open")," button in the ",l.createElement("em",null,"Spell checking")," tab.\nThe opens a file system folder containing the installed dictionaries."),"\n",l.createElement(t.p,null,"Change the downloaded .oxt extension to .zip and extract the contents to the ",l.createElement(t.code,null,"dictionaries"),".\nRestart BabelEdit — the new dictionary should now be available."),"\n",l.createElement(t.h2,{id:"custom-dictionaries",style:{position:"relative"}},"Custom dictionaries",l.createElement(t.a,{href:"#custom-dictionaries","aria-label":"custom dictionaries permalink",className:"anchor after"},l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<svg aria-hidden="true" focusable="false" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>'}}
1))),"\n",l.createElement(t.p,null,"BabelEdit uses Hunspell, and you can use any compatible dictionary.\nA dictionary for BabelEdit must consist of at least 3 files:"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"dictionary.xcu - Description file"),"\n",l.createElement(t.li,null,"dictionary.aff - Affix file"),"\n",l.createElement(t.li,null,"dictionary.dic - Dictionary file"),"\n"),"\n",l.createElement(t.p,null,"This is a template for a minimalistic .xcu file that can be loaded by BabelEdit:"),"\n",l.createElement(t.pre,null,l.createElement(t.code,{className:"language-xml"},'<?xml version="1.0" encoding="UTF-8"?>\n<oor:component-data>\n    <node oor:name="ServiceManager">\n        <node oor:name="Dictionaries">\n            <node oor:name="dictionary">\n                <prop oor:name="Locations">\n                    <value>%origin%/dictionary.aff %origin%/dictionary.dic</value>\n                </prop>\n                <prop oor:name="Format">\n                    <value>DICT_SPELL</value>\n                </prop>\n                <prop oor:name="Locales">\n                    <value>xx-XX</value>\n                </prop>\n            </node>\n        </node>\n    </node>\n</oor:component-data>\n')),"\n",l.createElement(t.p,null,"The ",l.createElement(t.code,null,"<value>")," field inside the ",l.createElement(t.code,null,"Locations")," ",l.createElement(t.code,null,"<prop>")," must\ncontain the file names of the dictionary's affix and dictionary file.\nThe ",l.createElement(t.code,null,"Locales")," value must contain a list of locales for which the dictionary is activated."))}var r=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,a.R)(),e.components);return t?l.createElement(t,e,l.createElement(i,e)):i(e)},c=n(11042),s=n(77891),o=n(11401);function m(e){let{data:t,pageContext:n,children:a,location:i}=e;const r=i.pathname,c=t.mdx.tableOfContents.items[0].items,m=n.pageData.relatedArticles;return l.createElement(s.W,null,l.createElement(o.C,{product:n.pageData.product,currentPath:r,onPageItems:c,relatedArticles:m},a))}function d(e){return l.createElement(m,e,l.createElement(r,e))}const u=e=>{let{pageContext:t}=e;return l.createElement(l.Fragment,null,l.createElement(c.A,{pageData:t.pageData}))}},90074:function(e,t,n){var a=n(98587),l=n(96540);const i=["className"];t.A=e=>{let{className:t}=e,n=(0,a.A)(e,i);return l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},n,{className:t||"inline-block h-4"}),"  ",l.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"}))}},95853:function(e,t,n){n.d(t,{A:function(){return u}});var a=n(96540),l=n(90177),i=n(46942),r=n.n(i),c=n(98587);const s=["className"];var o=e=>{let{className:t}=e,n=(0,c.A)(e,s);return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},n,{className:t||"inline-block h-4"}),"  ",a.createElement("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"}))},m=n(16668);const d=e=>{let{link:t,direction:n}=e;const i="right"===n,c=r()("py-2 flex items-center text-gray-600 hover:text-gray-700 hover:bg-gray-100","border border-gray-300 shadow-xs rounded-lg",i?"test-right":""),s="inline-block h-8 w-8 text-gray-400 hover:text-gray-500";return a.createElement("div",null,t&&a.createElement(l.A,{to:t.url,className:c},!i&&a.createElement(o,{className:s}),a.createElement("div",{className:"pl-2 pr-4"},a.createElement("div",{className:"text-xs text-gray-500 hover:text-gray-600"},i?"Next chapter":"Previous chapter"),t.title),i&&a.createElement(m.A,{className:s})))};var u=e=>{let{currentPath:t,docNavConfig:n}=e;const{previous:l,next:i}=(()=>{let e=null,a=null;const l=n.items;return l.forEach(((n,i)=>{n.url===t&&(e=i-1>=0?l[i-1]:null,a=i+1<l.length?l[i+1]:null)})),{previous:e,next:a}})();return l||i?a.createElement("nav",{"aria-label":"Previous and next chapter",className:"not-prose flex justify-between mt-12 space-x-8"},a.createElement(d,{link:l,direction:"left"}),a.createElement(d,{link:i,direction:"right"})):null}},98701:function(e,t,n){n.d(t,{A:function(){return s}});var a=n(41176),l=n(77557);var i={items:[{url:"/texturepacker3d/documentation",title:"Quickstart"},{url:"/texturepacker3d/documentation/eula",title:"License agreement"}]},r=n(72952),c=n(58209),s={texturepacker:a.A,texturepacker3d:i,spriteilluminator:r.A,physicseditor:l.A,babeledit:c.A}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.