CINXE.COM

How to Create Customized Keyboard Apps - Keyboard App Builder

<!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> How to Create Customized Keyboard Apps - Keyboard App Builder</title><meta name="description" content="Create customized Android apps with Keyman keyboards for typing in other apps"><link rel="stylesheet" href="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_ab6cbedf6335655d59bc786b33a507ab.php" type="text/css" media="screen" /><link rel="stylesheet" href="https://software.sil.org/keyboardappbuilder/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/keyboardappbuilder/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/keyboardappbuilder/wp-content/uploads/sites/56/2020/04/banner_image.jpg); }</style><meta name="description" content="Keyboard App Builder is a versatile tool developed by SIL International that allows you to design and build custom keyboard apps for smartphones and tablets."/><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/keyboardappbuilder/learn/create-custom-keyboard-apps/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="How to Create Customized Keyboard Apps - Keyboard App Builder" /><meta property="og:description" content="Keyboard App Builder is a versatile tool developed by SIL International that allows you to design and build custom keyboard apps for smartphones and tablets." /><meta property="og:url" content="https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/" /><meta property="og:site_name" content="Keyboard App Builder" /><meta property="og:updated_time" content="2024-08-16T23:15:30+00:00" /><meta property="article:published_time" content="2024-08-01T20:51:56+00:00" /><meta property="article:modified_time" content="2024-08-16T23:15:30+00:00" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="How to Create Customized Keyboard Apps - Keyboard App Builder" /><meta name="twitter:description" content="Keyboard App Builder is a versatile tool developed by SIL International that allows you to design and build custom keyboard apps for smartphones and tablets." /><meta name="twitter:label1" content="Time to read" /><meta name="twitter:data1" content="2 minutes" /> <script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://software.sil.org/keyboardappbuilder/#person","name":"Keyboard App Builder"},{"@type":"WebSite","@id":"https://software.sil.org/keyboardappbuilder/#website","url":"https://software.sil.org/keyboardappbuilder","name":"Keyboard App Builder","publisher":{"@id":"https://software.sil.org/keyboardappbuilder/#person"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/#webpage","url":"https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/","name":"How to Create Customized Keyboard Apps - Keyboard App Builder","datePublished":"2024-08-01T20:51:56+00:00","dateModified":"2024-08-16T23:15:30+00:00","isPartOf":{"@id":"https://software.sil.org/keyboardappbuilder/#website"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://software.sil.org/keyboardappbuilder/author/","url":"https://software.sil.org/keyboardappbuilder/author/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/?s=96&amp;d=mm&amp;r=g","inLanguage":"en-US"}},{"@type":"Article","headline":"How to Create Customized Keyboard Apps - Keyboard App Builder","datePublished":"2024-08-01T20:51:56+00:00","dateModified":"2024-08-16T23:15:30+00:00","author":{"@id":"https://software.sil.org/keyboardappbuilder/author/"},"publisher":{"@id":"https://software.sil.org/keyboardappbuilder/#person"},"description":"Keyboard App Builder is a versatile tool developed by SIL International that allows you to design and build custom keyboard apps for smartphones and tablets.","name":"How to Create Customized Keyboard Apps - Keyboard App Builder","@id":"https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/#richSnippet","isPartOf":{"@id":"https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/#webpage"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/#webpage"}}]}</script> <script defer src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3aW5kb3cuX3dwZW1vamlTZXR0aW5ncyA9IHsiYmFzZVVybCI6Imh0dHBzOlwvXC9zLncub3JnXC9pbWFnZXNcL2NvcmVcL2Vtb2ppXC8xNS4wLjNcLzcyeDcyXC8iLCJleHQiOiIucG5nIiwic3ZnVXJsIjoiaHR0cHM6XC9cL3Mudy5vcmdcL2ltYWdlc1wvY29yZVwvZW1vamlcLzE1LjAuM1wvc3ZnXC8iLCJzdmdFeHQiOiIuc3ZnIiwic291cmNlIjp7ImNvbmNhdGVtb2ppIjoiaHR0cHM6XC9cL3NvZnR3YXJlLnNpbC5vcmdcL2tleWJvYXJkYXBwYnVpbGRlclwvd3AtaW5jbHVkZXNcL2pzXC93cC1lbW9qaS1yZWxlYXNlLm1pbi5qcz92ZXI9MWMzZjk5OTMxMTEzZTRlMjY3ODg5Yzk2ZjNiNjNkYzUifX07Ci8qISBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgKi8KIWZ1bmN0aW9uKGksbil7dmFyIG8scyxlO2Z1bmN0aW9uIGMoZSl7dHJ5e3ZhciB0PXtzdXBwb3J0VGVzdHM6ZSx0aW1lc3RhbXA6KG5ldyBEYXRlKS52YWx1ZU9mKCl9O3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0obyxKU09OLnN0cmluZ2lmeSh0KSl9Y2F0Y2goZSl7fX1mdW5jdGlvbiBwKGUsdCxuKXtlLmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KSxlLmZpbGxUZXh0KHQsMCwwKTt2YXIgdD1uZXcgVWludDMyQXJyYXkoZS5nZXRJbWFnZURhdGEoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkuZGF0YSkscj0oZS5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCksZS5maWxsVGV4dChuLDAsMCksbmV3IFVpbnQzMkFycmF5KGUuZ2V0SW1hZ2VEYXRhKDAsMCxlLmNhbnZhcy53aWR0aCxlLmNhbnZhcy5oZWlnaHQpLmRhdGEpKTtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbihlLHQpe3JldHVybiBlPT09clt0XX0pfWZ1bmN0aW9uIHUoZSx0LG4pe3N3aXRjaCh0KXtjYXNlImZsYWciOnJldHVybiBuKGUsIlx1ZDgzY1x1ZGZmM1x1ZmUwZlx1MjAwZFx1MjZhN1x1ZmUwZiIsIlx1ZDgzY1x1ZGZmM1x1ZmUwZlx1MjAwYlx1MjZhN1x1ZmUwZiIpPyExOiFuKGUsIlx1ZDgzY1x1ZGRmYVx1ZDgzY1x1ZGRmMyIsIlx1ZDgzY1x1ZGRmYVx1MjAwYlx1ZDgzY1x1ZGRmMyIpJiYhbihlLCJcdWQ4M2NcdWRmZjRcdWRiNDBcdWRjNjdcdWRiNDBcdWRjNjJcdWRiNDBcdWRjNjVcdWRiNDBcdWRjNmVcdWRiNDBcdWRjNjdcdWRiNDBcdWRjN2YiLCJcdWQ4M2NcdWRmZjRcdTIwMGJcdWRiNDBcdWRjNjdcdTIwMGJcdWRiNDBcdWRjNjJcdTIwMGJcdWRiNDBcdWRjNjVcdTIwMGJcdWRiNDBcdWRjNmVcdTIwMGJcdWRiNDBcdWRjNjdcdTIwMGJcdWRiNDBcdWRjN2YiKTtjYXNlImVtb2ppIjpyZXR1cm4hbihlLCJcdWQ4M2RcdWRjMjZcdTIwMGRcdTJiMWIiLCJcdWQ4M2RcdWRjMjZcdTIwMGJcdTJiMWIiKX1yZXR1cm4hMX1mdW5jdGlvbiBmKGUsdCxuKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGU/bmV3IE9mZnNjcmVlbkNhbnZhcygzMDAsMTUwKTppLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGE9ci5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pLG89KGEudGV4dEJhc2VsaW5lPSJ0b3AiLGEuZm9udD0iNjAwIDMycHggQXJpYWwiLHt9KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09dChhLGUsbil9KSxvfWZ1bmN0aW9uIHQoZSl7dmFyIHQ9aS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt0LnNyYz1lLHQuZGVmZXI9ITAsaS5oZWFkLmFwcGVuZENoaWxkKHQpfSJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmKG89IndwRW1vamlTZXR0aW5nc1N1cHBvcnRzIixzPVsiZmxhZyIsImVtb2ppIl0sbi5zdXBwb3J0cz17ZXZlcnl0aGluZzohMCxldmVyeXRoaW5nRXhjZXB0RmxhZzohMH0sZT1uZXcgUHJvbWlzZShmdW5jdGlvbihlKXtpLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGUse29uY2U6ITB9KX0pLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3ZhciBuPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPUpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShvKSk7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiYibnVtYmVyIj09dHlwZW9mIGUudGltZXN0YW1wJiYobmV3IERhdGUpLnZhbHVlT2YoKTxlLnRpbWVzdGFtcCs2MDQ4MDAmJiJvYmplY3QiPT10eXBlb2YgZS5zdXBwb3J0VGVzdHMpcmV0dXJuIGUuc3VwcG9ydFRlc3RzfWNhdGNoKGUpe31yZXR1cm4gbnVsbH0oKTtpZighbil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBXb3JrZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgT2Zmc2NyZWVuQ2FudmFzJiYidW5kZWZpbmVkIiE9dHlwZW9mIFVSTCYmVVJMLmNyZWF0ZU9iamVjdFVSTCYmInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iKXRyeXt2YXIgZT0icG9zdE1lc3NhZ2UoIitmLnRvU3RyaW5nKCkrIigiK1tKU09OLnN0cmluZ2lmeShzKSx1LnRvU3RyaW5nKCkscC50b1N0cmluZygpXS5qb2luKCIsIikrIikpOyIscj1uZXcgQmxvYihbZV0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSxhPW5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChyKSx7bmFtZToid3BUZXN0RW1vamlTdXBwb3J0cyJ9KTtyZXR1cm4gdm9pZChhLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtjKG49ZS5kYXRhKSxhLnRlcm1pbmF0ZSgpLHQobil9KX1jYXRjaChlKXt9YyhuPWYocyx1LHApKX10KG4pfSkudGhlbihmdW5jdGlvbihlKXtmb3IodmFyIHQgaW4gZSluLnN1cHBvcnRzW3RdPWVbdF0sbi5zdXBwb3J0cy5ldmVyeXRoaW5nPW4uc3VwcG9ydHMuZXZlcnl0aGluZyYmbi5zdXBwb3J0c1t0XSwiZmxhZyIhPT10JiYobi5zdXBwb3J0cy5ldmVyeXRoaW5nRXhjZXB0RmxhZz1uLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnJiZuLnN1cHBvcnRzW3RdKTtuLnN1cHBvcnRzLmV2ZXJ5dGhpbmdFeGNlcHRGbGFnPW4uc3VwcG9ydHMuZXZlcnl0aGluZ0V4Y2VwdEZsYWcmJiFuLnN1cHBvcnRzLmZsYWcsbi5ET01SZWFkeT0hMSxuLnJlYWR5Q2FsbGJhY2s9ZnVuY3Rpb24oKXtuLkRPTVJlYWR5PSEwfX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZX0pLnRoZW4oZnVuY3Rpb24oKXt2YXIgZTtuLnN1cHBvcnRzLmV2ZXJ5dGhpbmd8fChuLnJlYWR5Q2FsbGJhY2soKSwoZT1uLnNvdXJjZXx8e30pLmNvbmNhdGVtb2ppP3QoZS5jb25jYXRlbW9qaSk6ZS53cGVtb2ppJiZlLnR3ZW1vamkmJih0KGUudHdlbW9qaSksdChlLndwZW1vamkpKSl9KSl9KCh3aW5kb3csZG9jdW1lbnQpLHdpbmRvdy5fd3BlbW9qaVNldHRpbmdzKTsKLyogXV0+ICovCg=="></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/keyboardappbuilder/wp-includes/css/dist/block-library/style.min.css?ver=1c3f99931113e4e267889c96f3b63dc5' type='text/css' media='all' /><style id='rank-math-toc-block-style-inline-css' type='text/css'>.wp-block-rank-math-toc-block nav ol{counter-reset:item}.wp-block-rank-math-toc-block nav ol li{display:block}.wp-block-rank-math-toc-block nav ol li:before{content:counters(item, ".") ". ";counter-increment:item}</style><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/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_3fd2afa98866679439097f4ab102fe0a.php?ver=5.9.8' type='text/css' media='all' /><link rel='stylesheet' id='dashicons-css' href='https://software.sil.org/keyboardappbuilder/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/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_658ed7c8d9872eb232101d85f58c8cc5.php?ver=2.5.4' type='text/css' media='all' /><link rel='stylesheet' id='custom-styles-css' href='https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_fe1ebbbfadded6e44ec3200399d8b94f.php?ver=1c3f99931113e4e267889c96f3b63dc5' type='text/css' media='all' /> <script type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script defer id="to-top-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgdG9fdG9wX29wdGlvbnMgPSB7InNjcm9sbF9vZmZzZXQiOiIxMDAiLCJpY29uX29wYWNpdHkiOiI1MCIsInN0eWxlIjoiaWNvbiIsImljb25fdHlwZSI6ImRhc2hpY29ucy1hcnJvdy11cC1hbHQyIiwiaWNvbl9jb2xvciI6IiNmZmZmZmYiLCJpY29uX2JnX2NvbG9yIjoiIzAwMDAwMCIsImljb25fc2l6ZSI6IjMyIiwiYm9yZGVyX3JhZGl1cyI6IjUiLCJpbWFnZSI6Imh0dHBzOlwvXC9zb2Z0d2FyZS5zaWwub3JnXC9rZXlib2FyZGFwcGJ1aWxkZXJcL3dwLWNvbnRlbnRcL3BsdWdpbnNcL3RvLXRvcFwvYWRtaW5cL2ltYWdlc1wvZGVmYXVsdC5wbmciLCJpbWFnZV93aWR0aCI6IjY1IiwiaW1hZ2VfYWx0IjoiIiwibG9jYXRpb24iOiJib3R0b20tcmlnaHQiLCJtYXJnaW5feCI6IjIwIiwibWFyZ2luX3kiOiIyMCIsInNob3dfb25fYWRtaW4iOiIwIiwiZW5hYmxlX2F1dG9oaWRlIjoiMCIsImF1dG9oaWRlX3RpbWUiOiIyIiwiZW5hYmxlX2hpZGVfc21hbGxfZGV2aWNlIjoiMCIsInNtYWxsX2RldmljZV9tYXhfd2lkdGgiOiI2NDAiLCJyZXNldCI6IjAifTsKLyogXV0+ICovCg=="></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_3412a76d1309925e4c16893c6446ef4b.php?ver=2.5.4" id="to-top-js"></script> <script defer id="wpstg-global-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BzdGcgPSB7Im5vbmNlIjoiMjM4YTU2MWE0YSJ9OwovKiBdXT4gKi8K"></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/plugins/wp-staging-pro/assets/js/dist/wpstg-blank-loader.min.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="wpstg-global-js"></script> <link rel="https://api.w.org/" href="https://software.sil.org/keyboardappbuilder/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://software.sil.org/keyboardappbuilder/wp-json/wp/v2/pages/2014" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://software.sil.org/keyboardappbuilder/xmlrpc.php?rsd" /><link rel='shortlink' href='https://software.sil.org/keyboardappbuilder/?p=2014' /><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://software.sil.org/keyboardappbuilder/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoftware.sil.org%2Fkeyboardappbuilder%2Flearn%2Fcreate-custom-keyboard-apps%2F" /><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://software.sil.org/keyboardappbuilder/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoftware.sil.org%2Fkeyboardappbuilder%2Flearn%2Fcreate-custom-keyboard-apps%2F&#038;format=xml" /><style type="text/css">.broken_link, a.broken_link { text-decoration: line-through; }</style><style type="text/css" id="wp-custom-css">/* Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-Bt */</style> <script defer src=" https://www.googletagmanager.com/gtag/js?id=G-75WYFHYVT8"></script> <script defer src="data:text/javascript;base64,IHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOyBmdW5jdGlvbgpndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9IGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7IGd0YWcoJ2NvbmZpZycsICdHLTc1V1lGSFlWVDgnKTsg"></script> </head><body class="page-template-default page page-id-2014 page-child parent-pageid-22 wp-custom-logo keyboardappbuilder" data-source="base.twig"><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/keyboardappbuilder/wp-content/themes/web-productsites/images/sil_logo_glyph.png" alt="Home"> </a> <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"><form method="get" id="searchform" role="form" class="navbar-form navbar-right" action="https://software.sil.org/keyboardappbuilder/"><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-2023"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/features/">Features</a></li><li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-43"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/download/">Downloads</a></li><li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor menu-item-42"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/learn/">Learn</a></li><li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-44"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/news/">News</a></li><li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-41"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/help/">Get Help</a></li><li class="nav-main-item menu-item menu-item-type-post_type menu-item-object-page menu-item-45 menu-item-has-children"> <a class="nav-main-link" href="https://software.sil.org/keyboardappbuilder/about/">About</a><ul class="sub-menu"><li class="nav-sub-item menu-item menu-item-type-post_type menu-item-object-page menu-item-2024"> <a class="nav-sub-link" href="https://software.sil.org/keyboardappbuilder/about/">About</a></li><li class="nav-sub-item menu-item menu-item-type-post_type menu-item-object-page menu-item-674"> <a class="nav-sub-link" href="https://software.sil.org/keyboardappbuilder/developer/">Developer</a></li></ul></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/keyboardappbuilder">Keyboard App Builder</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/keyboardappbuilder">Home</a></li><li><a href="https://software.sil.org/keyboardappbuilder/learn/">Learn</a></li><li><a href=""><span class="last-crumb">How to Create Customized Keyboard Apps</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-2014"><section class="article-content"><h1 class="article-h1"> How to Create Customized Keyboard Apps</h1><div class="article-body"><p><strong>Keyboard App Builder</strong> is a versatile tool developed by SIL International that allows you to design and build custom keyboard apps for smartphones and tablets. These apps enable users to type in their language within other applications like Gmail, Facebook, and WhatsApp, helping communities maintain and flourish in their native languages.</p><h2>How To Create Customized Keyboard Apps</h2><h3>1. Install Keyboard App Builder</h3><p>To run Keyboard App Builder, you need three key components installed on your computer:</p><ul><li>Keyboard App Builder (KAB),</li><li>Java Development Kit (JDK)</li><li>Android Software Development Kit (SDK).</li></ul><h3>1.1. Installing Keyboard App Builder</h3><ol><li>Go to the <a href="http://software.sil.org/keyboardappbuilder/download">Download Page</a>.</li><li>Download the latest setup program for your operating system.</li><li>Run the setup program to install Keyboard App Builder on your computer.</li></ol><h3>1.2. Installing Java Development Kit (JDK)</h3><p>You need version 17 of JDK. You can install it using the Install JDK wizard within Keyboard App Builder <strong>or</strong> directly from the Azul website.</p><h3>Option 1: Using the Install JDK Wizard</h3><ol><li>Launch <strong>Keyboard App Builder</strong>.</li><li>Click the <strong>Install JDK</strong> button.</li><li>Follow the instructions in the wizard.</li></ol><h3>Option 2: Installing JDK from the Azul Website</h3><ol><li>Visit the <a href="https://www.azul.com/downloads/?version=java-17-lts&amp;os=windows&amp;architecture=x86-64-bit&amp;package=jdk#zulu" target="_blank" rel="noopener">Download Zulu Builds of OpenJDK</a>.</li><li>Download the .msi file.</li><li>Run the installer and follow the instructions.</li></ol><h3>1.3. Installing Android Software Development Kit (SDK)</h3><p>You can download the Android SDK files <strong>or</strong> copy them from another device</p><h3>Option 1: Downloading the SDK Online</h3><ol><li>Launch <strong>Keyboard App Builder</strong>.</li><li>Click the <strong>Install Android SDK</strong> button.</li><li>Follow the Install Android SDK wizard instructions.</li></ol><h3>Option 2: Copying the SDK Files from Another Source</h3><ol><li>Copy the Android SDK files from a colleague or another trusted source.</li><li>Ensure you have the essential folders such as <code>cmdline-tools</code>, <code>build-tools</code>, <code>platforms</code>, and <code>platform-tools</code>.</li></ol><h3>2. Build Your First App</h3><h3>2.1. Prepare Your Content</h3><p>Before you start, ensure you have:</p><ul><li>A <strong>Keyman keyboard layout file</strong> (.kmp).</li><li>Optional: A <strong>Keyman lexical model file</strong> (.model.kmp) for predictive text and autocorrect.</li></ul><h3>2.2. Steps to Build</h3><ol><li>Launch <strong>Keyboard App Builder</strong>.</li><li>Click <strong>New App</strong> on the toolbar.</li><li>Enter your <strong>App Name</strong> and <strong>Package Name</strong>.</li><li>Select the <strong>Keyboard</strong> and <strong>Lexical Model</strong> files.</li><li>Choose your <strong>Color Scheme</strong> and <strong>Default Interface Language</strong>.</li><li>Select <strong>Interface Languages</strong>.</li><li>Choose the <strong>App Icon</strong>.</li><li>Set the <strong>Signing</strong> details (keystore and alias).</li><li>Configure the <strong>Project</strong> settings.</li><li>Review and finalize your settings.</li></ol><h3>2.3. Build the App</h3><ol><li>Click the <strong>Build Android App</strong> button.</li><li>Wait for the build process to complete.</li><li>The resulting file will be an APK file.</li></ol><h3>3. Install the App on Your Phone</h3><ol><li>Connect your Android phone to your computer using a USB data cable.</li><li>Enable <strong>USB Debugging</strong> in Developer Options on your phone.</li><li>In Keyboard App Builder, click the <strong>Install APK</strong> button.</li></ol><h3>Additional Information</h3><p>For in-depth details on specific steps or troubleshooting tips, refer to the detailed PDF documents provided:</p><ul><li><a href="https://software.sil.org/downloads/r/keyboardappbuilder/Keyboard-App-Builder-01-Installation-Instructions.pdf">Installation Instructions (PDF)</a></li><li><a href="https://software.sil.org/downloads/r/keyboardappbuilder/Keyboard-App-Builder-02-Building-Apps.pdf">Building Apps (PDF)</a></li><li><a href="https://software.sil.org/downloads/r/keyboardappbuilder/Keyboard-App-Builder-03-Installing-and-Building-on-Mac.pdf">Installing and Building Apps on a Mac (PDF)</a></li></ul><p>By using Keyboard App Builder, you contribute to the mission of empowering language communities around the world, promoting linguistic diversity, and enabling people to thrive using their valued languages.</p><p></p></div></section></article></div><div class="col-md-4 col-sm-4"><nav id="sidebar_main" class="nav menu"><div><div class="textwidget"><a href="https://software.sil.org/keyboardappbuilder"><img class="sps-sidebar-logo" src="https://software.sil.org/keyboardappbuilder/wp-content/uploads/sites/56/2020/04/KAB_80.png" title="Back to Keyboard App Builder"></a></div></div><div><div class="menu-sidebarmenu-container"><ul id="menu-sidebarmenu" class="menu"><li id="menu-item-1296" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1296"><a href="https://software.sil.org/keyboardappbuilder/features/">Features</a></li><li id="menu-item-2016" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2014 current_page_item menu-item-2016"><a href="https://software.sil.org/keyboardappbuilder/learn/create-custom-keyboard-apps/" aria-current="page">How to Create Customized Keyboard Apps</a></li><li id="menu-item-629" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-page-parent menu-item-629"><a href="https://software.sil.org/keyboardappbuilder/learn/">Documentation</a></li><li id="menu-item-743" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-743"><a href="https://software.sil.org/keyboardappbuilder/download/">Downloads</a></li><li id="menu-item-704" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-704"><a href="https://software.sil.org/keyboardappbuilder/release-notes/">Release Notes</a></li><li id="menu-item-1813" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1813"><a href="https://software.sil.org/keyboardappbuilder/help/faq/">FAQ</a></li></ul></div></div></nav></div></div></div></section><div class="footer-top-bg"><aside id="license"><div class="container fullwidth"><div><div class="textwidget"><p>There is no charge for using this software. See the <a href="http://software.sil.org/keyboardappbuilder/license/">License</a>.</p><p>See the <a href="http://software.sil.org/keyboardappbuilder/developer">Developer</a> page for information on future development plans.</p></div></div></div></aside><aside id="donate"><div class="container fullwidth"><div><div class="textwidget"><p>Please also consider a <a href="http://software.sil.org/give">donation</a> to support our work.</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 International</h2><div class="menu-footer_sil-container"><ul id="menu-footer_sil" class="menu"><li id="menu-item-46" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-46"><a target="_blank" rel="noopener" href="http://www.sil.org/about/discover">Discover SIL</a></li><li id="menu-item-47" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-47"><a target="_blank" rel="noopener" href="http://www.sil.org/langculture">Language &#038; Culture</a></li><li id="menu-item-48" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-48"><a target="_blank" rel="noopener" href="http://www.sil.org/language-development">Language Development</a></li><li id="menu-item-49" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-49"><a target="_blank" rel="noopener" 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-1958" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1958"><a href="https://software.sil.org/software-products/">Software Products</a></li><li id="menu-item-1959" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1959"><a href="https://software.sil.org/news/">Software &#038; Font News</a></li><li id="menu-item-1960" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1960"><a target="_blank" rel="noopener" href="https://lingtransoft.info/">LingTranSoft</a></li><li id="menu-item-1961" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1961"><a target="_blank" rel="noopener" href="https://www.ethnologue.com/">Ethnologue</a></li><li id="menu-item-1962" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1962"><a target="_blank" rel="noopener" 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 &#038; Writing Systems</h2><div class="menu-footer_fonts-container"><ul id="menu-footer_fonts" class="menu"><li id="menu-item-57" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57"><a href="http://scriptsource.org">ScriptSource</a></li><li id="menu-item-58" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="http://scripts.sil.org">Computers &#038; Writing Systems</a></li><li id="menu-item-59" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59"><a href="https://software.sil.org/fonts/">Font Catalog</a></li><li id="menu-item-60" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="http://software.sil.org/andika">Andika</a></li><li id="menu-item-61" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-61"><a href="http://software.sil.org/annapurna">Annapurna SIL</a></li><li id="menu-item-62" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-62"><a href="https://graphite.sil.org">Graphite</a></li><li id="menu-item-63" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63"><a 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 &#038; Support</h2><div class="menu-footer_contact-container"><ul id="menu-footer_contact" class="menu"><li id="menu-item-1882" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1882"><a href="https://software.sil.org/keyboardappbuilder/about/contact/">Contact</a></li><li id="menu-item-1888" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1888"><a href="https://software.sil.org/keyboardappbuilder/help/">Get Help</a></li><li id="menu-item-1753" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1753"><a href="https://software.sil.org/keyboardappbuilder/service/">Scriptoria</a></li></ul></div></div></nav></div></div></footer> <script defer src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwoJdmFyIHJlbGV2YW5zc2lfcnRfcmVnZXggPSAvKCZ8XD8pXyhydHxydF9ub25jZSk9KFx3KykvZwoJdmFyIG5ld1VybCA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZShyZWxldmFuc3NpX3J0X3JlZ2V4LCAnJykKCWhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsIG51bGwsIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIG5ld1VybCArIHdpbmRvdy5sb2NhdGlvbi5oYXNoKQovKiBdXT4gKi8K"></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='ac724b4e58e0c4c670ab86b90236913c'; hf4V='820ad0b387c7edcdb2c732a992965669'; 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/keyboardappbuilder/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script> <script type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script defer id="wp-i18n-js-after" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp3cC5pMThuLnNldExvY2FsZURhdGEoIHsgJ3RleHQgZGlyZWN0aW9uXHUwMDA0bHRyJzogWyAnbHRyJyBdIH0gKTsKLyogXV0+ICovCg=="></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_efc27e253fae1b7b891fb5a40e687768.php?ver=5.9.8" id="swv-js"></script> <script defer id="contact-form-7-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjcgPSB7ImFwaSI6eyJyb290IjoiaHR0cHM6XC9cL3NvZnR3YXJlLnNpbC5vcmdcL2tleWJvYXJkYXBwYnVpbGRlclwvd3AtanNvblwvIiwibmFtZXNwYWNlIjoiY29udGFjdC1mb3JtLTdcL3YxIn0sImNhY2hlZCI6IjEifTsKLyogXV0+ICovCg=="></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_0b1719adf5fa7231cb1a1b54cf11a50e.php?ver=5.9.8" id="contact-form-7-js"></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_6dab2d99e19210a36d3ecf142662edb1.php?ver=1c3f99931113e4e267889c96f3b63dc5" id="silps-site.js-js"></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/themes/web-productsites/vendor/twbs/bootstrap/dist/js/bootstrap.min.js?ver=1c3f99931113e4e267889c96f3b63dc5" id="silps-bootstrap.min.js-js"></script> <script defer type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=6LfCipIUAAAAAN9mXpp-m6tKMR-Hn3lny6DTR46h&amp;ver=3.0" id="google-recaptcha-js"></script> <script type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script defer id="wpcf7-recaptcha-js-extra" src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgd3BjZjdfcmVjYXB0Y2hhID0geyJzaXRla2V5IjoiNkxmQ2lwSVVBQUFBQU45bVhwcC1tNnRLTVItSG4zbG55NkRUUjQ2aCIsImFjdGlvbnMiOnsiaG9tZXBhZ2UiOiJob21lcGFnZSIsImNvbnRhY3Rmb3JtIjoiY29udGFjdGZvcm0ifX07Ci8qIF1dPiAqLwo="></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/cache/autoptimize/56/autoptimize_single_ec0187677793456f98473f49d9e9b95f.php?ver=5.9.8" id="wpcf7-recaptcha-js"></script> <script defer type="text/javascript" src="https://software.sil.org/keyboardappbuilder/wp-content/plugins/wp-spamshield/js/jscripts-ftr2-min.js" id="wpss-jscripts-ftr-js"></script> <footer class="footer-bottom"><div class="container"><div class="row"><nav class="col-xs-12 col-md-6"><p>Copyright © 2024&nbsp;<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.528 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2024-11-23 15:38:10 --> <!-- Compression = gzip -->

Pages: 1 2 3 4 5 6 7 8 9 10