CINXE.COM
Ukelele - Keyboard Layout Editor for macOS
<!doctype html> <!--[if lt IE 7]><html class="no-js ie ie6 lt-ie9 lt-ie8 lt-ie7" lang="en-US" prefix="og: https://ogp.me/ns#"> <![endif]--> <!--[if IE 7]><html class="no-js ie ie7 lt-ie9 lt-ie8" lang="en-US" prefix="og: https://ogp.me/ns#"> <![endif]--> <!--[if IE 8]><html class="no-js ie ie8 lt-ie9" lang="en-US" prefix="og: https://ogp.me/ns#"> <![endif]--> <!--[if gt IE 8]><!--><html class="no-js" lang="en-US" prefix="og: https://ogp.me/ns#"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <title> Ukelele - Keyboard Layout Editor for macOS </title> <meta name="description" content="Supporting language communities with literacy, development, and translation tools"> <link rel="stylesheet" href="https://software.sil.org/wp/wp-content/themes/web-productsites/css/style.css" type="text/css" media="screen" /> <link rel="stylesheet" href="https://software.sil.org/wp/wp-content/themes/web-productsites/vendor/fortawesome/font-awesome/css/font-awesome.min.css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="pingback" href="https://software.sil.org/wp/xmlrpc.php" /> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700,700italic' rel='stylesheet' type='text/css'> <style>#page-site-banner { background-image: url(https://software.sil.org/wp/wp-content/uploads/2024/08/banner_image-1.jpeg); }</style> <!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ --> <meta name="description" content="Ukelele is a user-friendly Unicode Keyboard Layout Editor for macOS, making the tedious, error-prone task of editing XML-based keyboard layouts a breeze."/> <meta name="robots" content="index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> <link rel="canonical" href="https://software.sil.org/ukelele/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Ukelele - Keyboard Layout Editor for macOS" /> <meta property="og:description" content="Ukelele is a user-friendly Unicode Keyboard Layout Editor for macOS, making the tedious, error-prone task of editing XML-based keyboard layouts a breeze." /> <meta property="og:url" content="https://software.sil.org/ukelele/" /> <meta property="og:site_name" content="SIL Language Technology" /> <meta property="og:updated_time" content="2025-01-20T09:18:18+00:00" /> <meta property="og:image" content="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png" /> <meta property="og:image:secure_url" content="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png" /> <meta property="og:image:width" content="1576" /> <meta property="og:image:height" content="902" /> <meta property="og:image:alt" content="keyboard layout editor for mac" /> <meta property="og:image:type" content="image/png" /> <meta property="article:published_time" content="2019-10-17T10:26:34+00:00" /> <meta property="article:modified_time" content="2025-01-20T09:18:18+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Ukelele - Keyboard Layout Editor for macOS" /> <meta name="twitter:description" content="Ukelele is a user-friendly Unicode Keyboard Layout Editor for macOS, making the tedious, error-prone task of editing XML-based keyboard layouts a breeze." /> <meta name="twitter:image" content="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png" /> <meta name="twitter:label1" content="Time to read" /> <meta name="twitter:data1" content="3 minutes" /> <script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://software.sil.org/#organization","name":"SIL Language Technology","url":"https://software.sil.org","logo":{"@type":"ImageObject","@id":"https://software.sil.org/#logo","url":"https://software.sil.org/wp/wp-content/uploads/2017/01/2014_sil_logo_80w_96h.png","contentUrl":"https://software.sil.org/wp/wp-content/uploads/2017/01/2014_sil_logo_80w_96h.png","caption":"SIL Language Technology","inLanguage":"en-US","width":"80","height":"96"}},{"@type":"WebSite","@id":"https://software.sil.org/#website","url":"https://software.sil.org","name":"SIL Language Technology","publisher":{"@id":"https://software.sil.org/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://software.sil.org/wp/wp-content/uploads/2019/10/Ukulele_80.png","url":"https://software.sil.org/wp/wp-content/uploads/2019/10/Ukulele_80.png","width":"80","height":"80","caption":"Ukelele icon","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://software.sil.org/ukelele/#webpage","url":"https://software.sil.org/ukelele/","name":"Ukelele - Keyboard Layout Editor for macOS","datePublished":"2019-10-17T10:26:34+00:00","dateModified":"2025-01-20T09:18:18+00:00","isPartOf":{"@id":"https://software.sil.org/#website"},"primaryImageOfPage":{"@id":"https://software.sil.org/wp/wp-content/uploads/2019/10/Ukulele_80.png"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://software.sil.org/author/ltuse/","name":"Language Technology","url":"https://software.sil.org/author/ltuse/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/0cd53dc386e003c827db019ee9a35714?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/0cd53dc386e003c827db019ee9a35714?s=96&d=mm&r=g","caption":"Language Technology","inLanguage":"en-US"},"worksFor":{"@id":"https://software.sil.org/#organization"}},{"@type":"Article","headline":"Ukelele - Keyboard Layout Editor for macOS","keywords":"keyboard layout editor for mac","datePublished":"2019-10-17T10:26:34+00:00","dateModified":"2025-01-20T09:18:18+00:00","author":{"@id":"https://software.sil.org/author/ltuse/","name":"Language Technology"},"publisher":{"@id":"https://software.sil.org/#organization"},"description":"Ukelele is a user-friendly Unicode Keyboard Layout Editor for macOS, making the tedious, error-prone task of editing XML-based keyboard layouts a breeze.","name":"Ukelele - Keyboard Layout Editor for macOS","@id":"https://software.sil.org/ukelele/#richSnippet","isPartOf":{"@id":"https://software.sil.org/ukelele/#webpage"},"image":{"@id":"https://software.sil.org/wp/wp-content/uploads/2019/10/Ukulele_80.png"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://software.sil.org/ukelele/#webpage"}}]}</script> <!-- /Rank Math WordPress SEO plugin --> <link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/software.sil.org\/wp\/wp-includes\/js\/wp-emoji-release.min.js?ver=1c3f99931113e4e267889c96f3b63dc5"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://software.sil.org/wp/wp-includes/css/dist/block-library/style.min.css?ver=1c3f99931113e4e267889c96f3b63dc5' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='contact-form-7-css' href='https://software.sil.org/wp/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.3' type='text/css' media='all' /> <link rel='stylesheet' id='responsive-lightbox-nivo-css' href='https://software.sil.org/wp/wp-content/plugins/responsive-lightbox/assets/nivo/nivo-lightbox.min.css?ver=2.4.8' type='text/css' media='all' /> <link rel='stylesheet' id='responsive-lightbox-nivo-default-css' href='https://software.sil.org/wp/wp-content/plugins/responsive-lightbox/assets/nivo/themes/default/default.css?ver=2.4.8' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://software.sil.org/wp/wp-includes/css/dashicons.min.css?ver=1c3f99931113e4e267889c96f3b63dc5' type='text/css' media='all' /> <link rel='stylesheet' id='to-top-css' href='https://software.sil.org/wp/wp-content/plugins/to-top/public/css/to-top-public.css?ver=2.5.4' type='text/css' media='all' /> <link rel='stylesheet' id='megamenu-css' href='https://software.sil.org/wp/wp-content/uploads/maxmegamenu/style.css?ver=2ff3b2' type='text/css' media='all' /> <link rel='stylesheet' id='select2.css-css' href='https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='bootstrap-select-theme.css-css' href='https://cdn.jsdelivr.net/npm/@ttskch/select2-bootstrap4-theme@x.x.x/dist/select2-bootstrap4.min.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='software-style-css' href='https://software.sil.org/wp/wp-content/themes/web-productsites/css/software-style.css?ver=1.0' type='text/css' media='all' /> <link rel='stylesheet' id='custom-styles-css' href='https://software.sil.org/wp/wp-content/themes/web-productsites/css/custom-style.css?ver=1c3f99931113e4e267889c96f3b63dc5' type='text/css' media='all' /> <style id='akismet-widget-style-inline-css' type='text/css'> .a-stats { --akismet-color-mid-green: #357b49; --akismet-color-white: #fff; --akismet-color-light-grey: #f6f7f7; max-width: 350px; width: auto; } .a-stats * { all: unset; box-sizing: border-box; } .a-stats strong { font-weight: 600; } .a-stats a.a-stats__link, .a-stats a.a-stats__link:visited, .a-stats a.a-stats__link:active { background: var(--akismet-color-mid-green); border: none; box-shadow: none; border-radius: 8px; color: var(--akismet-color-white); cursor: pointer; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif; font-weight: 500; padding: 12px; text-align: center; text-decoration: none; transition: all 0.2s ease; } /* Extra specificity to deal with TwentyTwentyOne focus style */ .widget .a-stats a.a-stats__link:focus { background: var(--akismet-color-mid-green); color: var(--akismet-color-white); text-decoration: none; } .a-stats a.a-stats__link:hover { filter: brightness(110%); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16); } .a-stats .count { color: var(--akismet-color-white); display: block; font-size: 1.5em; line-height: 1.4; padding: 0 13px; white-space: nowrap; } </style> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/responsive-lightbox/assets/nivo/nivo-lightbox.min.js?ver=2.4.8" id="responsive-lightbox-nivo-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/underscore.min.js?ver=1.13.4" id="underscore-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/responsive-lightbox/assets/infinitescroll/infinite-scroll.pkgd.min.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="responsive-lightbox-infinite-scroll-js"></script> <script type="text/javascript" id="responsive-lightbox-js-before"> /* <![CDATA[ */ var rlArgs = {"script":"nivo","selector":"lightbox","customEvents":"","activeGalleries":true,"effect":"fade","clickOverlayToClose":true,"keyboardNav":true,"errorMessage":"The requested content cannot be loaded. Please try again later.","woocommerce_gallery":false,"ajaxurl":"https:\/\/software.sil.org\/wp\/wp-admin\/admin-ajax.php","nonce":"808c56e0c5","preview":false,"postId":3801,"scriptExtension":false}; /* ]]> */ </script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/responsive-lightbox/js/front.js?ver=2.4.8" id="responsive-lightbox-js"></script> <script type="text/javascript" id="to-top-js-extra"> /* <![CDATA[ */ var to_top_options = {"scroll_offset":"500","icon_opacity":"50","style":"icon","icon_type":"dashicons-arrow-up-alt2","icon_color":"#ffffff","icon_bg_color":"#000000","icon_size":"32","border_radius":"20","image":"https:\/\/software.sil.org\/wp\/wp-content\/plugins\/to-top\/admin\/images\/default.png","image_width":"65","image_alt":"","location":"bottom-right","margin_x":"20","margin_y":"20","show_on_admin":"0","enable_autohide":"1","autohide_time":"2","enable_hide_small_device":"0","small_device_max_width":"640","reset":"0"}; /* ]]> */ </script> <script async type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/to-top/public/js/to-top-public.js?ver=2.5.4" id="to-top-js"></script> <link rel="https://api.w.org/" href="https://software.sil.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://software.sil.org/wp-json/wp/v2/pages/3801" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://software.sil.org/wp/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://software.sil.org/?p=3801' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://software.sil.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoftware.sil.org%2Fukelele%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://software.sil.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoftware.sil.org%2Fukelele%2F&format=xml" /> <link rel="icon" href="https://software.sil.org/wp/wp-content/uploads/2024/02/favicon.png" sizes="32x32" /> <link rel="icon" href="https://software.sil.org/wp/wp-content/uploads/2024/02/favicon.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://software.sil.org/wp/wp-content/uploads/2024/02/favicon.png" /> <meta name="msapplication-TileImage" content="https://software.sil.org/wp/wp-content/uploads/2024/02/favicon.png" /> <style type="text/css" id="wp-custom-css"> .trio-widget li { text-align: left; } /* CSS for New Software Products Catalog */ .sil-products-container { display: flex; gap: 40px; /* space between sections */ } .sil-products-section1 { flex: 2; /* 2/3 width */ font-size: 16px; color: #004789; padding: 20px; border-style: solid; border-width: 3px; border-color: #004789; border-radius: 7px; } .sil-products-section1 h2 { font-weight: bold; text-align: center; margin-top: 0em; margin-bottom: .75em; } .sil-products-section2 { display: flex; flex-direction: column; justify-content: center; flex: 1; /* 1/3 width */ padding: 10px; background-color: #e9e9e9; text-align: center; font-size: 16px; color: white; border-style: solid; border-width: 5px; border-color: #004789; border-radius: 7px; background-color: #004789; } .sil-products-section2 h2 { color: white; font-weight: bold; margin-bottom: 1em; } .sil-products-section2 p a { color: white; } .cust-card { padding-top: 30px; } h2.catalog-heading { font-weight: bold; text-align:center; margin-top: 2em; padding-top: .5em; padding-bottom: .5em; background: #EBEBEB; border-radius: 7px; } blockquote.sil-products { background-color: #e7f3ff; border-left: 4px solid #00A7E0; padding: 1em; margin: 1.5em auto -1.5em auto; max-width: 800px; font-size: 1em; font-style: normal; } .select-container { display: flex; gap: 0px 30px; flex-wrap: wrap; } .select-container>.sub-container { width: 325px; /*flex: none; */ } /* Media query to stack sections on mobile */ @media (max-width: 768px) { .sil-products-container { flex-direction: column; } .select-container { flex-direction: column; align-items: center; } .select-container>.sub-container { width: 80%; margin-bottom: 15px; } } </style> <!-- To Top Custom CSS --><style type='text/css'>#to_top_scrollup {-webkit-border-radius: 20%; -moz-border-radius: 20%; border-radius: 20%;}</style><style type="text/css">/** Mega Menu CSS: fs **/</style> <!-- BEGIN Google Analytics --> <!-- Google tag (gtag.js) --> <script async src=" https://www.googletagmanager.com/gtag/js?id=G-75WYFHYVT8"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-75WYFHYVT8'); </script> <!-- END Google Analytics --> </head> <body class="page-template-default page page-id-3801 page-parent wp-custom-logo mega-menu-max-mega-menu-1 mega-menu-max-mega-menu-2 ukelele" data-source="base.twig"> <!-- HEADER --> <header id="navbar" role="banner"> <nav role="navigation" class="navbar navbar-default"> <div class="container"> <div class="navbar-header"> <a class="logo navbar-btn pull-left" href="https://software.sil.org" title="Home"> <img src="https://software.sil.org/wp/wp-content/themes/web-productsites/images/sil_logo_glyph.png" alt="Home"> </a> <!-- .btn-navbar is used as the toggle for collapsed navbar content --> <button type="button" class="navbar-toggle main-menu-toggle-test" data-toggle="collapse" data-target="#topNavbar">☰ Menu</button> </div> <div id="topNavbar" class="collapse navbar-collapse main-menu-toggle" data-collapse="collapsed"> <div id="search-box"> <div class="donate-button"> <a class="btn btn-default btn-block btn-download btn-secondary" href="https://give.sil.org/LangTech" role="button">Donate</a> </div> <div class="search-box-form"> <!-- <div class="search form-wrapper form-group"> <form method="get" id="searchform" class="form-inline form-search" action="https://software.sil.org/"> <label for="s" class="assistive-text">Search</label> <input type="text" class="form-control" name="s" id="s" placeholder="Search..." /> </form> </div> --> <form method="get" id="searchform" role="form" class="navbar-form navbar-right" action="https://software.sil.org/"> <div class="form-group"> <div class="input-group"> <input type="text" class="form-control" name="s" id="s" placeholder="Search..." /> <span class="input-group-btn"> <button type="submit" class="btn btn-default"><i class="fa fa-search fa-fw"></i></button> </span> </div> </div> </form> </div> </div> <div id="nav-list"> <ul class="nav navbar-nav navbar-right"> <li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-12232"> <a class="nav-main-link" href="https://software.sil.org/software-products/">Software Products</a> </li> <li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-5875"> <a class="nav-main-link" href="https://software.sil.org/fonts/">Fonts</a> </li> <li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-864"> <a class="nav-main-link" href="https://software.sil.org/news/">News</a> </li> <li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-2630"> <a class="nav-main-link" href="https://software.sil.org/support/">Support</a> </li> <li class="nav-main-item menu-item menu-item-type-custom menu-item-object-custom menu-item-8685"> <a class="nav-main-link" href="https://software.sil.org/serve">Serve</a> </li> <li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-8686"> <a class="nav-main-link" href="https://software.sil.org/about/">About</a> </li> </ul> </div> </div> </div> </nav> </header> <header id="page-site-name"> <div class="container"> <h1 class="page-header"><a href="https://software.sil.org">SIL Language Technology</a></h1> </div> </header> <header id="page-breadcrumbs"> <div class="container"> <h2 class="page-header"> <ol class="breadcrumb"> <li><a href="https://software.sil.org">Home</a></li> <li><a href=""><span class="last-crumb">Ukelele</span></a></li> </ol> </h2> </div> </header> <section id="content_primary"> <div class="container"> <div class="row"> <div class="col-md-8 col-sm-8"> <article class="post-type-page" id="post-3801"> <section class="article-content"> <h1 class="article-h1"> Ukelele </h1> <div class="article-body"> <h2 class="no-toc" id="keyboard-layout-editor-for-macos">Keyboard Layout Editor for macOS</h2> <p><a href="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png" data-rel="lightbox-image-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" width="1576" height="902" class="aligncenter size-full wp-image-4354" src="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png" alt="Ukelele" srcset="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot.png 1576w, https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot-300x172.png 300w, https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot-768x440.png 768w, https://software.sil.org/wp/wp-content/uploads/2019/10/Ukelele_keyboard_screenshot-1024x586.png 1024w" sizes="(max-width: 1576px) 100vw, 1576px" /></a></p> <h2 id="about">Simplify Keyboard Layout Editing</h2> <p>Ukelele is a user-friendly Unicode Keyboard Layout Editor for macOS, making the tedious, error-prone task of editing XML-based keyboard layouts a breeze. Designed to support macOS versions 10.2 and later, Ukelele allows users to <a href="#drag-and-drop">drag and drop characters</a> directly onto keys using a graphical interface, streamlining the process of creating or modifying keyboard layouts.</p> <p>With Ukelele, you can easily assign multiple-character strings, create “dead keys” to modify subsequent keystrokes, and more. It’s an essential tool for anyone working with diverse scripts and characters, providing an intuitive solution for keyboard customization.</p> <h2 id="feature-highlights">Feature Highlights</h2> <h3>Easy-to-Use Interface</h3> <p>Ukelele’s graphical interface makes it simple to drag and drop characters onto keys, eliminating the need to manually edit complex XML files.</p> <h3>Advanced Functionality</h3> <p>Assign multiple-character strings and create “dead keys” to enhance your typing experience and meet your specific needs.</p> <h3>Seamless Integration</h3> <p>Integrate seamlessly with Keyboard Juggler to manage your keyboard layouts effortlessly, especially useful for macOS 10.10 and later versions.</p> <p>Experience the power and convenience of Ukelele, and transform how you interact with your keyboard.</p> <h2 id="downloads">Downloads</h2> <div class="announcement"><p class="bold">Note: Keyman Keyboarding Software</p><p>A more flexible, cross-platform keyboard utility for macOS 10.7 (Lion) and later is <a href="https://keyman.com/" target="_blank" rel="noopener">Keyman</a>. However, Keyman does not use the same <code>.keylayout</code> files as Ukelele and must be installed separately.</p></div> <p>Download the software from the table below. Then follow the steps in <a href="#instructions">Installation Instructions</a> to activate your <code>.keylayout</code> files.</p> <table class="download"> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_3.6b1.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 3.6b1', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 3.6b1</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 54.92 MB | 28 Feb 2025 </span> </td> </tr> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_3.5.12.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 3.5.12', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 3.5.12</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 51.72 MB | 1 Mar 2024 </span> </td> </tr> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_3.5.7.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 3.5.7', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 3.5.7</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 55.54 MB | 11 Aug 2022 </span> </td> </tr> </table> <h3 id="instructions">Installation Instructions</h3> <p>Follow these steps to install and enable the <code>.keylayout</code> files:</p> <ol> <li>Copy <code>.keylayout</code> files to <code>/Library</code> or <code>~/Library</code></li> <li>Enable the <code>.keylayout</code> files: <ol> <li>macOS 10.10 and later: <strong>System Preferences > Keyboard > Input Sources</strong></li> <li>macOS 10.6 to 10.9: <strong>System Preferences > Language & Text > Input Sources</strong></li> <li>macOS 10.5 and earlier: <strong>System Preferences > International > Input</strong></li> </ol> </li> </ol> <h3>Version Notes</h3> <ul> <li>The latest version works with macOS 10.14.6 and later.</li> <li>See <strong>Previous Versions</strong> (below) for more download options.</li> </ul> <p>Please see our <a href="https://software.sil.org/ukelele/ukelele-version-history">Release Notes</a> for a detailed version history.</p> <div id="accordion-1" class="accordion no-js"><br /> <h3 role="button" id="accordion-1-t1" class="accordion-title js-accordion-controller" aria-controls="accordion-1-c1" aria-expanded="false" tabindex="0"> Previous Versions (for older versions of macOS) </h3> <div id="accordion-1-c1" class="accordion-content" aria-hidden="true"> </p> <h3>Previous Version Notes</h3> <ul> <li>Versions 3.4.2 and 3.5.7 require macOS 10.9 (Mavericks) or above.</li> <li>Versions 3.3 and later require macOS 10.9 (Mavericks) or above.</li> <li>Version 3.2.7 requires macOS 10.8 (Mountain Lion) or above.</li> <li>Version 2.2.8 requires macOS 10.4 (Tiger) or above.</li> </ul> <p><table class="download"> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_3.2.7.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 3.2.7', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 3.2.7</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 25.94 MB | 7 Oct 2017 </span> </td> </tr> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_2.2.8.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 2.2.8', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 2.2.8</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 9.42 MB | 8 Mar 2014 </span> </td> </tr> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Ukelele_1.8.4.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 1.8.4', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Ukelele 1.8.4</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 5.65 MB | 14 Sep 2009 </span> </td> </tr> </table> </p> <h3>Keyboard Juggler</h3> <p><strong>Keyboard Juggler</strong> is a companion application to Ukelele, and allows you to move keyboard layouts in and out of the installation folders without having to use the Finder. Keyboard Juggle is available for macOS 10.10 (Yosemite) and later, but is not needed for Ukelele version 3.3 or later, as its functionality has been incorporated into Ukelele.</p> <p><table class="download"> <tr> <td> <a class="getfile" href="https://software.sil.org/downloads/r/ukelele/Keyboard_Juggler_1.0.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele Keyboard Juggler 1.0', 'download_link_type': 'table', 'product_os' : 'Mac' });"> Keyboard Juggler 1.0</a> </td> <td>for Mac</td> <td> <span class="filemeta"> DMG | 4.25 MB | 1 Oct 2017 </span> </td> </tr> </table> </p> <p> </div> <br /> </div> <h2 id="support">Support</h2> <p>Feedback about the Ukelele tool is invited (see the Read Me file for contact information). This software is provided in the hope that it may be useful, but with no warranty, expressed or implied, and with no guarantee of support or future upgrades.</p> <p>There is also a user forum available: <a href="http://groups.google.com/group/ukelele-users" target="_blank" rel="noopener">Ukelele Users Google Group</a>.</p> <h3 id="drag-and-drop">Drag-and-Drop Characters</h3> <p>To find special characters for drag-and-drop:</p> <ol> <li style="list-style-type: none"> <ol> <li>Enable the Character Viewer in <strong>System Preferences > Keyboard > Input Sources</strong></li> <li>Access the Character Viewer via <strong>Input Menu > Show Emoji & Symbols</strong>.</li> </ol> </li> </ol> <h3>License</h3> <p>Ukelele is written by John Brownie of SIL and is copyright ©2003-2022. This software is currently provided under a freeware license, but future versions will be released under an open source license.</p> <h2 id="contact">Contact</h2> <p>If you are unable to obtain support through the <a href="http://groups.google.com/group/ukelele-users" target="_blank" rel="noopener">Google group</a>, please <a href="/support">contact</a> us.</p> </div> </section> </article> </div> <div class="col-md-4 col-sm-4"> <nav id="sidebar_main" class="nav menu"> <div> <div class="textwidget"><img class="sps-sidebar-logo" src="https://software.sil.org/wp/wp-content/uploads/2019/10/Ukulele_80.png" title="Ukelele"></div> </div><div> <div class="textwidget"><p><div class="menu-single-page-site-menu-container"><ul id="menu-single-page-site-menu" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom no-toc"><a href="#keyboard-layout-editor-for-macos">Keyboard Layout Editor for macOS</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#about">Simplify Keyboard Layout Editing</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#feature-highlights">Feature Highlights</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#downloads">Downloads</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#support">Support</a></li><li class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#contact">Contact</a></li></ul></div><br /> <section class="download-section"> <h2>Current Version</h2> <a class="btn btn-default btn-block btn-download" href="https://software.sil.org/downloads/r/ukelele/Ukelele_3.6b1.dmg" onClick="gtag('event', 'SIL_DOWNLOADS', { 'product_name': 'ukelele', 'product_version': 'Ukelele 3.6b1', 'download_link_type': 'button', 'product_os' : 'Mac' });">Download Now<i class="fa fa-download fa-download-style"></i></a> <div class="download-name">Ukelele 3.6b1 for Mac</div> <div class="filemeta"> DMG | 54.92 MB | 28 Feb 2025 </div> </section> </p> </div> </div> </nav> </div> </div> </div> </section> <div class="footer-top-bg"> <aside id="license"> <div class="container fullwidth"> <div> <div class="textwidget"><p>Most SIL software is free to use, modify and redistribute according to the terms of open licenses such as the <a class="external" href="https://openfontlicense.org" target="_blank" rel="noopener">SIL Open Font License</a> and the <a class="external" href="http://en.wikipedia.org/wiki/MIT_License" target="_blank" rel="noopener">MIT License</a>. Many of our open projects are hosted on our <a class="external" href="https://github.com/sillsdev" target="_blank" rel="noopener">Language Software development</a> and <a class="external" href="https://github.com/silnrsi" target="_blank" rel="noopener">Writing Systems Technology</a> GitHub pages.</p> </div> </div> </div> </aside> <aside id="donate"> <div class="container fullwidth"> <div> <div class="textwidget"><p>Please consider supporting our software development through a <a href="https://give.sil.org/LangTech">donation</a> toward our language software or our fonts and script resources.</p> </div> </div> </div> </aside> </div> <footer class="footer-top"> <div class="container"> <div class="row"> <nav class="col-xs-7 col-md-3"> <div><h2>SIL Global</h2><div class="menu-footer_sil-container"><ul id="menu-footer_sil" class="menu"><li id="menu-item-89" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-89"><a href="http://www.sil.org/about/discover">Discover SIL</a></li> <li id="menu-item-90" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90"><a href="http://www.sil.org/langculture">Language & Culture</a></li> <li id="menu-item-91" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-91"><a href="http://www.sil.org/language-development">Language Development</a></li> <li id="menu-item-92" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-92"><a href="http://www.sil.org/about/news">SIL News</a></li> </ul></div></div> </nav> <nav class="col-xs-5 col-md-3"> <div><h2>Language Technology</h2><div class="menu-footer_software-container"><ul id="menu-footer_software" class="menu"><li id="menu-item-8687" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8687"><a href="https://software.sil.org/software-products/">Software Products</a></li> <li id="menu-item-8688" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8688"><a href="https://software.sil.org/news/">Software & Font News</a></li> <li id="menu-item-113" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-113"><a target="_blank" rel="noopener" href="http://lingtransoft.info/">LingTranSoft</a></li> <li id="menu-item-99" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-99"><a target="_blank" rel="noopener" href="http://www.ethnologue.com/">Ethnologue</a></li> <li id="menu-item-100" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100"><a href="https://iso639-3.sil.org">Language Codes (ISO 639-3)</a></li> </ul></div></div> </nav> <nav class="col-xs-7 col-md-3"> <div><h2>Fonts & Writing Systems</h2><div class="menu-footer_fonts-container"><ul id="menu-footer_fonts" class="menu"><li id="menu-item-8708" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8708"><a href="https://software.sil.org/fonts/">Font Catalog</a></li> <li id="menu-item-5204" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5204"><a href="https://software.sil.org/fonts/guides/">Font Help Guides</a></li> <li id="menu-item-94" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-94"><a target="_blank" rel="noopener" href="http://scriptsource.org">ScriptSource</a></li> <li id="menu-item-95" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-95"><a target="_blank" rel="noopener" href="http://scripts.sil.org">Computers & Writing Systems</a></li> <li id="menu-item-98" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-98"><a target="_blank" rel="noopener" href="https://openfontlicense.org">SIL Open Font License</a></li> </ul></div></div> </nav> <nav class="col-xs-5 col-md-3"> <div><h2>Contact & Support</h2><div class="menu-footer_contact-container"><ul id="menu-footer_contact" class="menu"><li id="menu-item-2631" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2631"><a href="https://community.software.sil.org/">Language Software Forum</a></li> <li id="menu-item-8690" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8690"><a href="https://community.scripture.software.sil.org">Scripture Software Forum</a></li> <li id="menu-item-2632" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2632"><a href="https://software.sil.org/support/">General Software Support</a></li> <li id="menu-item-8684" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8684"><a href="https://software.sil.org/serve">Serve with Us</a></li> <li id="menu-item-8683" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8683"><a href="https://software.sil.org/about/">About Us</a></li> <li id="menu-item-5862" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5862"><a href="https://software.sil.org/about/contact/">Contact Us</a></li> </ul></div></div> </nav> </div> </div> </footer> <script type="text/javascript"> /* <![CDATA[ */ var relevanssi_rt_regex = /(&|\?)_(rt|rt_nonce)=(\w+)/g var newUrl = window.location.search.replace(relevanssi_rt_regex, '') history.replaceState(null, null, window.location.pathname + newUrl + window.location.hash) /* ]]> */ </script> <span aria-hidden="true" id="to_top_scrollup" class="dashicons dashicons-arrow-up-alt2"><span class="screen-reader-text">Scroll Up</span></span> <!--noptimize--><script type='text/javascript'> /* <![CDATA[ */ r3f5x9JS=escape(document['referrer']); hf4N='38d77925c34601412875781879621f31'; hf4V='8e1a016fad66a16231af87b6f48f8d5e'; jQuery(document).ready(function($){var e="#commentform, .comment-respond form, .comment-form, #lostpasswordform, #registerform, #loginform, #login_form, #wpss_contact_form, .wpcf7-form";$(e).submit(function(){$("<input>").attr("type","hidden").attr("name","r3f5x9JS").attr("value",r3f5x9JS).appendTo(e);return true;});var h="form[method='post']";$(h).submit(function(){$("<input>").attr("type","hidden").attr("name",hf4N).attr("value",hf4V).appendTo(h);return true;});}); /* ]]> */ </script><!--/noptimize--> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.3" id="swv-js"></script> <script type="text/javascript" id="contact-form-7-js-before"> /* <![CDATA[ */ var wpcf7 = { "api": { "root": "https:\/\/software.sil.org\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; /* ]]> */ </script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.3" id="contact-form-7-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/themes/web-productsites/js/site.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="silps-site.js-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/themes/web-productsites/vendor/twbs/bootstrap/dist/js/bootstrap.min.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="silps-bootstrap.min.js-js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="select2.js-js"></script> <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=6LfrnMwgAAAAAFs26j2z34FZDEERn1Th5caKwvIv&ver=3.0" id="google-recaptcha-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script type="text/javascript" id="wpcf7-recaptcha-js-before"> /* <![CDATA[ */ var wpcf7_recaptcha = { "sitekey": "6LfrnMwgAAAAAFs26j2z34FZDEERn1Th5caKwvIv", "actions": { "homepage": "homepage", "contactform": "contactform" } }; /* ]]> */ </script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=6.0.3" id="wpcf7-recaptcha-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/wp-spamshield/js/jscripts-ftr2-min.js" id="wpss-jscripts-ftr-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.4.1" id="megamenu-js"></script> <script type="text/javascript" id="accordion-shortcodes-script-js-extra"> /* <![CDATA[ */ var accordionShortcodesSettings = [{"id":"accordion-1","autoClose":true,"openFirst":false,"openAll":false,"clickToClose":true,"scroll":false,"usebuttons":false}]; /* ]]> */ </script> <script type="text/javascript" src="https://software.sil.org/wp/wp-content/plugins/accordion-shortcodes/accordion.min.js?ver=2.4.2" id="accordion-shortcodes-script-js"></script> <style type="text/css" id="custom_inline_style_0"> @media (max-width: 759px) { #content_primary > .container > .row { display: flex; flex-flow: column-reverse; } }</style> <footer class="footer-bottom"> <div class="container"> <div class="row"> <nav class="col-xs-12 col-md-6"> <p>Copyright © 2025 <a href="https://www.sil.org/" title="" class="active">SIL Global</a></p> </nav> <nav class="col-xs-12 col-md-6"> <ul class="nav nav-horizontal"> <li class="first leaf active"><a href="/terms-of-use" title="" class="active">Terms of Use</a></li> <li class="last leaf active"><a href="/privacy-policy" title="" class="active">Privacy Policy</a></li> </ul> </nav> </div> </div> </footer> </body> </html> <!-- Dynamic page generated in 0.625 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2025-04-08 06:21:55 --> <!-- Compression = gzip -->