mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-07 01:15:33 +00:00
Fixes #6455. This involved adding an extra hint to the data passed into the lexical model layer, being the CasingForm that the current layer wants to use. Given there are several entry points to the lexical model layer, this meant a few places where we needed to check the current layer. I refactored the very long function `InputProcessor.processKeyEvent` to extract out the `buildAlternates` function. There should be no functional changes to the `buildAlternates` code. But it makes `processKeyEvent` significantly easier to read.
120 lines
4.8 KiB
HTML
120 lines
4.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
|
|
<!-- Set the viewport width to match phone and tablet device widths -->
|
|
<meta name="viewport" content="width=device-width,user-scalable=no" />
|
|
|
|
<!-- Allow KeymanWeb to be saved to the iPhone home screen -->
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
|
|
<!-- Enable IE9 Standards mode -->
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
|
|
<title>KeymanWeb Testing Page - Predictive Text bootstrapping</title>
|
|
|
|
<!-- Your page CSS -->
|
|
<style type='text/css'>
|
|
body {font-family: Tahoma,helvetica;}
|
|
h3 {font-size: 1em;font-weight:normal;color: darkred; margin-bottom: 4px}
|
|
.test {font-size: 1.5em; width:80%; min-height:30px; border: 1px solid gray;}
|
|
#KeymanWebControl {width:50%;min-width:600px;}
|
|
</style>
|
|
|
|
<!-- Insert uncompiled KeymanWeb source scripts -->
|
|
<script src="../../release/unminified/web/keymanweb.js" type="application/javascript"></script>
|
|
|
|
<!--
|
|
For desktop browsers, a script for the user interface must be inserted here.
|
|
|
|
Standard UIs are toggle, button, float and toolbar.
|
|
The toolbar UI is best for any page designed to support keyboards for
|
|
a large number of languages.
|
|
-->
|
|
<script src="../../release/unminified/web/kmwuitoggle.js"></script>
|
|
|
|
<!-- Initialization: set paths to keyboards, resources and fonts as required -->
|
|
<script>
|
|
var kmw=window.keyman;
|
|
kmw.init({
|
|
attachType:'auto'
|
|
}).then(function() {
|
|
kmw.addKeyboards({id:'us',name:'English',languages:{id:'en',name:'English'}, filename:'../us-1.0.js'});
|
|
kmw.addKeyboards({id:'start_of_sentence_3621',name:'Start of Sentence test',languages:{id:'en',name:'English'}, filename:'../start-of-sentence-3621/start_of_sentence_3621.js'});
|
|
kmw.addKeyboards({id:'lao_2008_basic',name:'Lao',languages:{id:'lo',name:'Lao'}, filename:'../lao_2008_basic-1.2.js'});
|
|
kmw.addKeyboards({id:'obolo_chwerty_6351',name:'obolo_chwerty_6351',languages:{id:'en',name:'English'},
|
|
filename:('../obolo_chwerty_6351.js')});
|
|
|
|
var pageRef = (window.location.protocol == 'file:')
|
|
? window.location.href.substr(0, window.location.href.lastIndexOf('/')+1)
|
|
: window.location.href;
|
|
|
|
var modelStub = {'id': 'example.en.trie',
|
|
languages: ['en'],
|
|
path: (pageRef + "simple-en-trie.js")
|
|
};
|
|
kmw.modelManager.register(modelStub);
|
|
});
|
|
|
|
function togglePredictions() {
|
|
let newVal = !keyman.modelManager.mayPredict;
|
|
keyman.osk.banner.setOptions({'mayPredict': newVal});
|
|
|
|
let btnPredict = document.getElementById("btnPredict");
|
|
btnPredict.value = (newVal ? "Disable" : "Enable") + " predictions";
|
|
}
|
|
|
|
function toggleCorrections() {
|
|
let newVal = !keyman.modelManager.mayCorrect;
|
|
keyman.osk.banner.setOptions({'mayCorrect': newVal});
|
|
|
|
let btnCorrect = document.getElementById("btnCorrect");
|
|
btnCorrect.value = (newVal ? "Disable" : "Enable") + " corrections";
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<!-- Sample page HTML -->
|
|
<body>
|
|
<h2>KeymanWeb Sample Page - Predictive Text UI (bootstrapping rig)</h2>
|
|
<p>As we're currently developing the predictive text feature, this page is subject to break as model
|
|
specifications change and new features are added. Please update the backing model file as necessary.
|
|
</p>
|
|
<div>
|
|
<!--
|
|
The following DIV is used to position the Button or Toolbar User Interfaces on the page.
|
|
If omitted, those User Interfaces will appear at the top of the document body.
|
|
(It is ignored by other User Interfaces.)
|
|
-->
|
|
<div id='KeymanWebControl'></div>
|
|
|
|
<h3>Type in your language in this text area:</h3>
|
|
<textarea id='ta1' class='test' placeholder='Type here'></textarea>
|
|
|
|
<h3>or in this input field:</h3>
|
|
<input class='test' value='' placeholder='or here'/>
|
|
|
|
<h3><a href="../">Return to testing home page</a></h3>
|
|
<input id="btnPredict" type="button" onclick="togglePredictions();" value="Disable predictions"/>
|
|
<input id="btnCorrect" type="button" onclick="toggleCorrections();" value="Disable corrections"/>
|
|
</div>
|
|
|
|
</body>
|
|
|
|
<!--
|
|
*** DEVELOPER NOTE -- FIREFOX CONFIGURATION FOR TESTING ***
|
|
*
|
|
* If the URL bar starts with <b>file://</b>, Firefox may not load the font used
|
|
* to display the special characters used in the On-Screen Keyboard.
|
|
*
|
|
* To work around this Firefox bug, navigate to <b>about:config</b>
|
|
* and set <b>security.fileuri.strict_origin_policy</b> to <b>false</b>
|
|
* while testing.
|
|
*
|
|
* Firefox resolves website-based CSS URI references correctly without needing
|
|
* any configuration change, so this change should only be made for file-based testing.
|
|
*
|
|
***
|
|
-->
|
|
</html>
|