WO2017003384A1 - Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry - Google Patents

Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry Download PDF

Info

Publication number
WO2017003384A1
WO2017003384A1 PCT/TH2015/000041 TH2015000041W WO2017003384A1 WO 2017003384 A1 WO2017003384 A1 WO 2017003384A1 TH 2015000041 W TH2015000041 W TH 2015000041W WO 2017003384 A1 WO2017003384 A1 WO 2017003384A1
Authority
WO
WIPO (PCT)
Prior art keywords
language
user
keyboard
character
characters
Prior art date
Application number
PCT/TH2015/000041
Other languages
French (fr)
Inventor
Vasan SUN
Original Assignee
Sun Vasan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Vasan filed Critical Sun Vasan
Priority to SG11201704826YA priority Critical patent/SG11201704826YA/en
Priority to PCT/TH2015/000041 priority patent/WO2017003384A1/en
Publication of WO2017003384A1 publication Critical patent/WO2017003384A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus

Definitions

  • the present disclosure relates generally to methods for multi-language interactions using a processor, and systems and computing devices for multi-language interactions.
  • a user may interact with computing devices.
  • a user may interact using integrated keyboards, keyboards in wired or wireless communications with the computing device, and virtual or soft keyboards.
  • Interactions with a key (or button) of a keyboard may include any action, such as typing, pressing, entering, inputting, pressing-and-holding, sliding, gliding, tapping, and/or rotating, and such interactions with a key may result in, among other things, a character entered (or displayed or inputted) into one or more editable sections or areas displayed on the computing device.
  • Editable sections or areas may include, but are not limited to, those found in an electronic document, such as Microsoft Office products and cloud-based documents such as Google Docs documents; an executable application, such as a computer program or software application; a chat or messaging application (or functionality on a website or application), such as email, SMS, MMS, iMessage by Apple, or those offered by Google, WhatsApp, LINE, Skype, Facebook, WeChat, Yahoo, Blackberry, and Linkedin; and any other character input fields generally known by persons of ordinary skill in the art.
  • an electronic document such as Microsoft Office products and cloud-based documents such as Google Docs documents
  • an executable application such as a computer program or software application
  • a chat or messaging application or functionality on a website or application
  • Computing devices may include, but are not limited to, mobile phones, PDAs, tablets, phablets, wearable computing devices (such as watches, glasses, etc.), computing devices for transportation (such as those in cars, motorcycles, bicycles, airplanes, trains, etc.), laptops, desktops, smart appliances, servers, and those associated with cloud computing.
  • manufacturers and developers are increasingly manufacturing, developing, and/or offering hardware, software, and/or services, including those described above and herein, that can be configured for use in specific languages desired by each user.
  • example embodiments may be operable to improve data entry and/or user experience for users who sometimes, routinely, and/or often switch languages (or language modes or language configurations) of a keyboard (either physical keyboard or virtual keyboard) associated with their computing device to enter characters in more than one language (such as between the English language and Thai language).
  • languages or language modes or language configurations
  • Present example embodiments relate generally to methods, systems, devices, and computer-readable medium for interacting with a computing device.
  • a method for processing multi-language data entry using a processor.
  • the method comprises comprising identifying an active language of a keyboard as a first language.
  • the method may further comprise receiving a sequence of user actions performed on the keyboard.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character.
  • the first counterpart character may be determined as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character.
  • the second counterpart character may be determined as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the method may further comprise returning the first and second counterpart characters.
  • the method may further comprise identifying other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise identifying other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not result in any of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise determining other first counterpart characters.
  • the other first counterpart characters may be determined as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard.
  • the method may further comprise determining other second counterpart characters.
  • the other second counterpart characters may be determined as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard.
  • the returning may include returning one or more of the other first and second counterpart characters.
  • the method may further comprise, prior to the returning, arranging the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions.
  • the returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • Each area of the touchscreen may represent a character key.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • a system for processing multi-language data entry.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not display one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user- editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the processor may be further operable to return the first and second counterpart characters.
  • the processor may be further operable to identify other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to determine other first counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard.
  • the processor may be further operable to determine other second counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard.
  • the returning may include returning one or more of the other first and second counterpart characters.
  • the processor may be further operable to, prior to the returning, arrange the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions.
  • the returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • Each area of the touchscreen may represent a character key.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • a method for processing multi-language interactions using a processor.
  • the method comprises identifying an active language of a keyboard as a first language.
  • the method may further comprise receiving a sequence of user actions performed on the keyboard.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the method may further comprise identifying a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section.
  • the method may further comprise, responsive to the identifying the first set of user actions, determining a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second set of user actions, determining a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard.
  • the method may further comprise returning one or more characters of the first and second set of counterpart characters.
  • the method may further comprise, prior to the returning, arranging the characters of the first and second set of counterpart characters based on the received sequence of user actions.
  • the returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • a system for processing multi-language interactions.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user- editable section.
  • the processor may be further operable to, responsive to the identifying the first set of user actions, determine a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second set of user actions, determine a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard.
  • the processor may be further operable to return one or more characters of the first and second set of counterpart characters.
  • the processor may be further operable to, prior to the returning, arrange the characters of the first and second set of counterpart characters based on the received sequence of user actions.
  • the returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • a method for processing multi-language interactions using a processor.
  • the method comprises identifying an active language of a keyboard as a first language.
  • the method may further comprise receiving a sequence of user actions performed on the keyboard.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a quantity of user actions in the received user actions.
  • the method may further comprise identifying a quantity of characters in the identified contiguously entered characters.
  • the method may further comprise, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identifying a first user action and a second user action from among the received sequence of user actions.
  • the first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the method may further comprise returning the first and second counterpart characters.
  • a system for processing multi-language interactions.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identifying an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a quantity of user actions in the received user actions.
  • the processor may be further operable to identify a quantity of characters in the identified contiguously entered characters.
  • the processor may be further operable to, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identify a first user action and a second user action from among the received sequence of user actions.
  • the first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section.
  • the processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the processor may be further operable to return the first and second counterpart characters.
  • a method for processing multi-language interactions using a processor.
  • the method comprises identifying a first language as an active language of a keyboard and a second language as a non-active language of the keyboard.
  • the method may further comprise identifying a plurality of user-entered keystrokes performed on keys of the keyboard.
  • the method may further comprise identifying contiguously entered characters in the first language entered into a user-editable section resulting from the user- entered keystrokes.
  • the method may further comprise determining counterpart characters in the second language based on the user-entered keystrokes.
  • the determining may include, for each identified keystroke, identifying a character in the second language that can be entered into the user-editable section by the identified keystroke when the active language of the keyboard has been set (or configured) to the second language.
  • the method may further comprise returning the counterpart characters.
  • the returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters.
  • the returning may include returning the resultant word.
  • a system for processing multi-language interactions.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify a first language as an active language of a keyboard and a second language as a non-active language of the keyboard.
  • the processor may be further operable to identify a plurality of user-entered keystrokes performed on keys of the keyboard.
  • the processor may be further operable to identify contiguously entered characters entered into a user-editable section resulting from the user- entered keystrokes.
  • the processor may be further operable to determine counterpart characters based on the user-entered keystrokes.
  • the determining may include, for each identified keystroke, identifying a character in the second language enterable into the user-editable section by the identified keystroke when the active language of the keyboard is the second language.
  • the method may further comprise returning the counterpart characters.
  • the returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters.
  • the returning may include returning the resultant word.
  • a method for processing multi-language interactions using a processor.
  • the method comprises identifying, by a processor, contiguously entered characters entered into a user-editable section, including a first identified contiguously entered character.
  • the method may further comprise determining, by the processor, a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character.
  • the determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard.
  • the determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area.
  • the determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key.
  • the first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language.
  • the first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language.
  • the first language may be a language different from the second language.
  • the method may further include replacing, by the processor, the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character.
  • the method may further comprise providing the keyboard, the keyboard having a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language.
  • the first character key and the second character key may be the same physical keys.
  • the first character key and the second character key may be different virtual keys.
  • a system for processing multi-language interactions.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify contiguously entered characters entered into a user-editable section, including a first identified contiguously entered character.
  • the processor may be further operable to determine a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character.
  • the determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard.
  • the determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area.
  • the determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key.
  • the first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language.
  • the first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language.
  • the first language may be a language different from the second language.
  • the processor may be further operable to replace the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character.
  • the keyboard may include a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language.
  • the first character key and the second character key may be the same physical keys.
  • the first character key and the second character key may be different virtual keys.
  • a method for processing multi-language interactions using a processor.
  • the method comprises receiving a user selection of contiguously entered characters displayed in a user-editable section.
  • the contiguously entered characters are characters displayed in a user-editable section.
  • the method further comprises identifying the user-selected contiguously entered characters.
  • the method further comprises identifying a language of the user-selected contiguously entered characters.
  • the method further comprises determining counterpart characters of the user-selected contiguously entered characters.
  • the determined counterpart characters may be characters in a second language different from the identified language of the selected contiguously entered characters.
  • the determined counterpart characters may be characters that would be entered in the user-editable section if an active language of a keyboard is configured for the second language and keys of the keyboard corresponding to the identified user-selected contiguously entered characters are pressed.
  • the method further comprises replacing the user-selected contiguously entered characters displayed in the user-editable section with one or more of the determined counterpart characters.
  • a system for processing multi-language interactions.
  • the system comprises a graphical display.
  • the system further comprises a keyboard.
  • the system further comprises a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to receive a user selection of contiguously entered characters displayed in a user-editable section.
  • the processor may be further operable to identify the user-selected contiguously entered characters.
  • the processor may be further operable to identify a language of the user-selected contiguously entered characters.
  • the processor may be further operable to determine counterpart characters of the user-selected contiguously entered characters.
  • the determined counterpart characters may include characters in a second language different from the identified language of the selected contiguously entered characters.
  • the determined counterpart characters may include characters enterable in the user-editable section when an active language of a keyboard operable to enter characters into the user-editable section is configured for the second language.
  • the processor may be further operable to replace the user selected contiguously entered characters entered into the user-editable section with one or more of the determined counterpart characters.
  • a method for processing multi-language interactions using a processor.
  • the method may comprise receiving a sequence of user actions performed on a keyboard.
  • the keyboard may be configured to have an active language to be a first language and an active language mode to be a first language mode.
  • the first language mode may include one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the first language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a first user action from among the received sequence of user actions.
  • the first user action may be a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the first language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise identifying a second user action from among the received sequence of user actions.
  • the second user action may be a user action performed on the keyboard that was prevented from displaying a character in the first language in the user-editable section based on the first language mode rules.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character.
  • the first counterpart character may be determined as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character.
  • the second counterpart character may be determined as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the method may further comprise returning the first and second counterpart characters.
  • a method for processing multi-language interactions using a processor.
  • the method may comprise receiving a sequence of user actions performed on a keyboard.
  • the keyboard may have an active language set as a Thai language.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the Thai language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the Thai language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character.
  • the first counterpart character may be determined as as a character in an English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the first user action is performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character.
  • the second counterpart character may be determined as as a character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the second user action is performed on the keyboard.
  • the method may further comprise returning the first and second counterpart characters.
  • FIGURE 1 is an example illustration of a dual language keyboard in the English and
  • FIGURE 2A is example illustration of a keyboard having English and Thai as the configured languages and English as the activated language;
  • FIGURE 2B is example illustration of a keyboard having English and Thai as the configured languages and Thai as the activated language;
  • FIGURE 3A is an example embodiment of a method for processing multi-language data entry or interactions on a computing device
  • FIGURE 3B is an example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display
  • FIGURE 3C is another example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display
  • FIGURE 3D is another example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display
  • FIGURE 3E is an example embodiment of returning a resultant word based on a user selection of a suggested word selected in the example embodiment of Figure 3B;
  • FIGURE 3F is an example embodiment of a system for processing multi-language data entry or interactions on a computing device
  • FIGURE 4 is another example embodiment of a method for processing multi-language data entry or interactions on a computing device
  • FIGURE 5 is another example embodiment of a method for processing multi-language data entry or interactions on a computing device
  • FIGURE 6 is an example illustration of user actions on a keyboard having active language as a first language and a returning of a resultant word in a second language;
  • FIGURE 7 is an example illustration of user actions on a keyboard having active language as a first language and returning of a resultant word in a second language;
  • FIGURE 8 is an example illustration of user actions on a keyboard having active language as a first language, displaying characters resulting from the user actions, and returning a resultant word in a second language.
  • the term “by” may also mean “from”, depending on the context.
  • the term “if may also mean “when” or “upon”, depending on the context.
  • the words “and/or” may refer to and encompass any and all possible combinations of one or more of the associated listed items.
  • the word “enter” may also mean “hit”, “touch”, “tap”, “contact”, “key”, “type”, “press”, “input”, “slide”, “swipe”, or the like, when used to describe a user's interaction with a key (or button) of a keyboard.
  • swipe may also mean “slide”, or the like, when used to describe a user's action of pressing down on a first key of a keyboard but releasing the press from a second key different from the first key.
  • solutions a growing number and variety of computer hardware, software, and/or services (hereinafter also collectively referred to as “solutions”), including those described above and herein, are being configurable for use in one or more specific languages, and such languages are selectable by a user.
  • solutions may also present users with problems.
  • a typical computing device such as a laptop or tablet, having one of the versions of Microsoft Windows and Microsoft Word installed may be configurable for character entry in one of several specific languages.
  • Such configurable language capabilities generally allow users to manually switch between or select from the several specific languages. For example, when the English language (such as "U.S.” English) and the Thai language have been configured, a user creating or editing a Microsoft Word document may enter characters in the English language when the active language (or activated language) is first set to the English language. In such a situation, the Thai language will be a non-active language (or non-activated language). The user may also enter characters in the Thai language by switching (or setting) the active language to the Thai language.
  • Such switching of the active language between the English language and the Thai language may be performed in one or more of a plurality of ways, such as by clicking on "Review” and “Languages” from the quick access toolbar of Microsoft Word and selecting the desired language; clicking on the language button on the bottom status bar of Microsoft Word and selecting the desired language; or pressing a designated button or key of the keyboard (hereinafter the "language key") to switch between languages.
  • the aforementioned language key of the keyboard for switching the active language between configured languages may be the key of the keyboard located to the left of the number "1" button (and/or above the "Tab” key, and/or below the “Esc” key), but may also be located at different positions of the keyboard and/or may be configured or assigned to one or more other new or known keys of the keyboard.
  • a user may forget to switch (or configure) the active language to the language desired by the user.
  • a user may also not realize that the active language has been set (or switched or activated or defaulted) to a language different from the language desired by the user.
  • the user may proceed to perform keystrokes on keys (or enter or press keys) of a keyboard that the user expects or assumes to correspond to the characters of the language desired by the user.
  • keystrokes on keys (or enter or press keys) of a keyboard that the user expects or assumes to correspond to the characters of the language desired by the user.
  • it is recognized in the present disclosure that doing so will result in the entering of characters in the active language that is different from the language desired by the user (that is, entering characters in an incorrect language or language mode or keyboard mode).
  • a user using a dual language keyboard may forget to switch the active language from the Thai language to the English language.
  • English language characters such as “d”, “i”, “a”, “r”, “r”, “h”, “e”, and “a” for the desired English language word “diarrhea”
  • the user will inadvertently enter Vietnamese language mode characters (such as the Thai language mode characters illustrated as 101a, 102a, 103a, 104a, 104a, 105a, 106a, and 103a in Figure 1) corresponding to the English language mode characters (such as the English language characters "d” 101b, "i” 102b, "a” 103b, “r” 104b, “r” 104b, “h” 105b, “e” 106b, and “a” 103b illustrated in Figure 1) that are also associated with (or assigned to) the same character keys (such as the character keys illustrated as 101, 102,
  • such character keys in different languages may not be exactly the same character keys (i.e., the same location on the keyboard), but rather a character key in a first language mode (such as English language) may cover a first area of the keyboard, a character key in a second language mode (such as Thai language) may cover a second area of the keyboard, and the first area may overlap at least a portion of the second area (such as some, most, or all of the second area).
  • a character may refer to a letter (including consonants and vowels) of any alphabet of any language, an accent of any alphabet of any alphabet (if applicable), any symbol of any alphabet and/or language (if applicable), etc.
  • the user may also continue attempting to enter additional user- desired English language characters/words until the user realizes that the active language was not set (or switched or activated or defaulted) to be the language desired by the user. Once the user realizes this, the user will be required to waste time and effort to delete the incorrectly entered characters (i.e., the characters entered in the language different from the language desired by the user). The user will also be required to switch the active language to the language desired by the user, and re-enter all of the characters in the language desired by the user. The problem becomes compounded if such an occurrence results in the user losing his/her train of thought and/or forgetting what the user wanted to enter.
  • a typical mobile computing device such as an iOS-based iPhone, an Android-based device, or a Windows-based device, may have a virtual keyboard application installed and activated on the mobile computing device.
  • virtual keyboards will allow users to select an active language from among available configured languages.
  • An example keyboard having English and Vietnamese as the configured languages, English as the activated language, and Vietnamese as the non-activated language is illustrated in FIGURE 2 A, and an example keyboard having English and Vietnamese as the configured languages, Thai as the activated language, and English as the non-activated language is illustrated in FIGURE 2B.
  • a designated language key labelled "EN” see Figure 2A
  • "TH” see Figure 2B
  • EN an active language key
  • Other keyboards that can switch between languages are also known, such as keyboards where the "space” key also functions as the language key and a user can switch between languages by sliding along the "space” key.
  • present example embodiments relate generally to multi-language interactions, including information input or data entry, and methods, systems, devices, and computer-readable mediums for same.
  • Example embodiments may include those having a virtual and/or physical keyboard that, when installed in, integrated with, associated with, and/or connected to a computing device and/or processor, may solve many of the problems encountered in conventional methods described above and herein.
  • an example embodiment of a method 300 for processing multi-language data entry or interactions including those using a processor in communication with a keyboard having a plurality of keys, may comprise identifying one or more contiguously entered characters entered into a user-editable section (such as a user-editable section displayed on a graphical display by a processor) (e.g., action 310).
  • contiguously entered characters may refer to one or more characters that have been entered into a user-editable section, such entered characters being contiguous to (or next to) one another.
  • contiguously entered characters may be characters entered (such as in response to user interactions (such as pressing) with a key of a keyboard) next to each other with or without any space or tab or other null characters entered between them.
  • contiguously entered characters may be characters that have been entered and displayed into a user-editable section, as well as those described herein.
  • a user- editable section such as user-editable section 320 in Figure 3B, includes the entered characters "Warner and Caden are very C]kf and the active cursor or present typing position 320' is after the character "f ' (wherein the active cursor or present typing position may be called a first position and the character "f ' may be in a position called the second position), then the identified contiguously entered characters may be the characters "C]kf 310b.
  • the other words "Warner”, “and”, “Caden”, “are”, and “very” may be considered as previously entered words in example embodiments. Previously entered words will be further discussed in the present disclosure, including in the below section “example embodiments of returning a resultant word based on other considerations"'.
  • the method 300 may further comprise identifying a counterpart character of each identified contiguously entered character (e.g., action 320).
  • Each identified contiguously entered character and its identified counterpart character may be characters associated with a same character key of a keyboard (such as a physical keyboard in communication with the processor).
  • Each identified contiguously entered character and its identified counterpart character may also be characters associated with character keys of a keyboard that are considered as different character keys (such as virtual keys of some virtual keyboards in communication with the processor), wherein such different character keys of the keyboard are character keys located at the same, approximately the same, or corresponding location or area on the keyboard, keyboard displayed on a graphical display (or projected display or virtual display, which are also contemplated in the present disclosure for all example embodiments), and/or graphical display.
  • a first character key associated with an identified contiguously entered character is displayed at a first location when a keyboard is in a first mode (such as a virtual keyboard in an English language keyboard mode in either "portrait” or “landscape” mode)
  • a second character key displayed at a same, approximately the same, or corresponding location as the first location when the keyboard is in a second mode may be considered as the same character key as the first character key in example embodiments.
  • a character associated with the second character key may be considered as the identified counterpart character.
  • a corresponding location may be a same or approximately the location, and may also be a different location on the graphical display that is considered as the same or approximately the location, such as in situations wherein the first location (the character key of the identified contiguously entered character) is displayed while in a "portrait view” and the second location is displayed while a "landscape view” (such as when a mobile computing device having a rectangular display is rotated from landscape to portrait view, and vice versa, and the computing device supports such display rotation adaptation), and vice versa.
  • such different character keys displayable in different modes, such as in different character modes, different keyboard modes, different language modes, etc.
  • displayable in different modes such as in different character modes, different keyboard modes, different language modes, etc.
  • a same character key of the keyboard a same character key
  • a same key a same key
  • the identified contiguously entered character is the English language character "d" 101b (or "D") associated with the character key 101 in the English language keyboard mode
  • the Thai language character 101a may be also be considered as being associated with the same character key 101 and therefore considered to be the identified counterpart character.
  • the identified contiguously entered character is the English language character "d" 101b (as illustrated in Figure 2 A) associated with the character key lOlx in the English language keyboard mode
  • the Thai language character 101a (as illustrated in Figure 2B) associated with the character key lOly in the Thai language keyboard mode may be considered as the counterpart character to "d" 101b and the character keys lOlx and lOly may be considered as the same character key since the character keys lOlx and lOly are at the same, approximately the same, or corresponding location.
  • the term "counterpart character”, “identified counterpart character”, “counterpart character of the identified contiguously entered character”, or the like may refer to another character assigned to (or associated with) a same character key as the identified contiguously entered character. That is, a counterpart character of each identified contiguously entered character may be identified, wherein each identified contiguously entered character and its identified counterpart character are characters assigned to a same character key of a keyboard associated with the processor.
  • the contiguously entered character and its counterpart character may be characters assigned to a same character key, but may be characters in different language(s), language mode(s), character mode(s), and/or keyboard mode(s).
  • a counterpart character of the contiguously entered character may not be entered or displayed (for example, not entered into the user-editable section) when contiguously entered characters are entered.
  • a counterpart character of the contiguously entered character may be a character of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered character.
  • the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key (which, as described above, may be a character key that is considered as a different character key as the character key associated with the identified contiguously entered character, but if such character key is located at the same, approximately the same, or corresponding location as the character key associated with the identified contiguously entered character, then such character key shall be considered as the same character key as the character key associated with the identified contiguously entered character in example embodiments).
  • the another character associated with the identified character key may be a character different from the identified contiguously entered character.
  • a computing device 301 may be configured for an English language mode and a Thai language mode (and any other mode, such as a different language mode, keyboard mode, character mode, etc.).
  • the English language mode may be any mode/keyboard in which the mode/keyboard 302 is configured for English language users, and such mode/keyboard 302 may include a QWERTY keyboard or any other English language mode/keyboard.
  • the Thai language mode may be any mode keyboard in which the mode/keyboard is configured for Thai language users, and such mode/keyboard may include any Thai language mode/keyboard.
  • the counterpart characters of the contiguously entered characters may be the characters in the Thai language mode (or any other language mode) assigned to (or associated with) the same character keys as the contiguously entered characters (the characters entered in the English language mode).
  • the contiguously entered characters 310b entered into the user-editable section 320 are the English language mode characters "C" 311b (associated with key 311 and/or a character key considered to be the same key as key 311, as described above and herein), "]" 312b (associated with key 312 and/or a character key considered to be the same key as key 312, as described above and herein), "k" 313b (associated with key 313 and/or a character key considered to be the same key as key 313, as described above and herein), and “f 314b (associated with key 314 and/or a character key considered to be the same key as key 314, as described above and herein), the counterpart characters 310a of the contiguously entered characters 310b may be the Thai language mode character 311a (associated with key 31 1 and/or a character key considered to be the same key as key 311, as described above and herein) being a counterpart character to the contiguously entered character "C" 311b, the Thai
  • contiguously entered characters 310b entered by a keyboard 302 of a computing device 301 into the user-editable section 320 are the English language mode characters "9" 315b (associated with key 315 and/or a character key considered to be the same key as key 315, as described above and herein), "i" 316b (associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein), 317b (associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein), and "0" 318b (associated with key 318 and/or a character key considered to be the same key as key 318, as described above and herein), then the counterpart characters 310a of the contiguously entered characters 310b may be the Thai language mode characters 315a (associated with key 315 and/or a character key considered to be the same key as key 315, as described above and herein),
  • the counterpart characters 310a of the contiguously entered characters 310b may also be other Thai characters, such as characters 316c (associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein) and 317c (associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein), assigned to or associated with same character keys.
  • characters 316c associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein
  • 317c associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein
  • the contiguously entered characters entered by a keyboard 302 of a computing device 301 into the user-editable section 320 are the Thai language mode characters 319a (associated with key 319 and/or a character key considered to be the same key as key 319, as described above and herein), 320a (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 320a (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 321a (associated with key 321 and/or a character key considered to be the same key as key 321 , as described above and herein), and 322a (associated with key 322 and/or a character key considered to be the same key as key 322, as described above and herein), then the counterpart characters of the contiguously entered characters may be the English language mode characters "r" 319b (associated with key 319 and/or
  • the counterpart characters of the contiguously entered characters may also be the other Thai language mode characters 319c (associated with key 319 and/or a character key considered to be the same key as key 319, as described above and herein), 320c (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 320c (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 321c (associated with key 321 and/or a character key considered to be the same key as key 321, as described above and herein), and 322c (associated with key 322 and/or a character key considered to be the same key as key 322, as described above and herein) assigned to or associated with the same character key as "r" 319b, V 320b, "o” 320b, "m” 321b, and "s” 322b.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration and/or more than one character of a language is assigned to or associated with the same character key, as shown in the examples above).
  • the active language or activated language mode
  • configured languages or configured language modes
  • keyboards or keyboard modes
  • characters or character modes
  • the contiguously entered characters the counterpart characters to the contiguously entered characters, and/or any other character(s), language(s), and mode(s) described in the present disclosure
  • other languages, characters, and/or modes, including keyboards may include those that pertain to French, Spanish, any of the Chinese dialects, Japanese, Korean, Russian, Indian, Cambodian, Laotian, Sanskrit, and/or any other languages.
  • the method 300 may further comprise searching a subset of a database for a resultant word based on the identified counterpart characters (e.g., action 330).
  • the subset of the database may comprise words having one or more of the identified counterpart characters.
  • the method 300 may further comprise returning the resultant word (e.g., action 340).
  • the resultant word may be returned as a suggested word, such as the 310a in Figures 3B-D.
  • more than one resultant and/or suggested words may be returned, such as those displayed next to 310a in Figures 3B-D and those that may be further displayed, such as when a user clicks on the symbol (shown as a triangle) depicting a drop-down list in Figures 3B-D.
  • the suggested word(s) may be selectable by the user.
  • one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user.
  • the contiguously entered characters "C]kf 310b in the user-editable section 320 illustrated in Figure 3B may be replaced by the suggested word 310a illustrated in Figure 3B when the suggested word 310a is selected, as illustrated in FIGURE 3E.
  • one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered.
  • one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • the number (or quantity) and/or sequence (or order) of characters such as the entered characters, displayed characters, contiguously entered characters, counterpart characters of the contiguously entered characters, and characters in search queries (such as a first input query and/or second input query, as described in the present disclosure) may be the same as or different from the number and/or sequence of characters of a resultant word (such as a first word, a second word, a first resultant word, a second resultant word, a final resultant word, and a suggested word, as described and used in the present disclosure) without departing from the scope of the present disclosure.
  • a resultant word such as a first word, a second word, a first resultant word, a second resultant word, a final resultant word, and a suggested word, as described and used in the present disclosure
  • example embodiments including those taught in the present disclosure, of entering characters and/or words, such as the entering of contiguously entered characters and/or previously entered characters and/or words, may be performed, in part or in whole, using voice, such as via one or more of the methods taught in U.S. Patent Publication No. 2014/0298177, which claims priority to PCT Application No. PCT/TH2013/000012, both of which are incorporated herein by reference in their entireties.
  • example embodiments may perform one or more the following actions: identify one or more of the characters "C” 311b, “]” 312b, “k” 313b, and “f 314b as the identified contiguously entered characters; identify one or more of the Thai language mode characters 311a, 312a, 313a, and 314a as the identified counterpart characters of the one or more identified contiguously entered characters; perform
  • the subset may comprise one or more of the identified counterpart characters. Further, one or more of the identified counterpart characters may be amended when one or more of the identified counterpart characters is inconsistent with the received spoken word. It is to be understood in the present disclosure that a second search of a second subset of a database (or a subset of a second database) may also be performed based on one or more of the identified contiguously entered characters and the received spoken word in example embodiments. In such an example embodiment, the selecting of the resultant word may be based on one or more of the searches.
  • FIGURE 3F illustrates an example embodiment of a system 301a for processing multi- language data entry or interactions and another system 301b for processing Multilanguage data entry or interactions.
  • the systems 301a and 301b may each comprise a graphical display 330a and 330b, a database (such as 340), and a keyboard 302a and 302b.
  • the keyboard may be a physical keyboard 302b, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device or processor.
  • the keyboard 302a may also be a virtual or soft keyboard, such as those available or installable on computing devices.
  • the keys of the keyboard 302a and 302b may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures.
  • the graphical display 330a and 330b may be any display, including a touch-screen display, a projected display, and/or a display interactible via gestures.
  • the systems 301a and 301b may further comprise a processor (not shown) operable to communicate with the graphical display 330a and 330b, respectively, the database, and the keyboard 302a and 302b, respectively.
  • a processor operable to communicate with the graphical display 330a and 330b, respectively, the database, and the keyboard 302a and 302b, respectively.
  • the processor may be operable to display a user-editable section 320 on the graphical display 330a and 330b.
  • the processor may be further operable to identify one or more contiguously entered characters entered into the user-editable section 320. Contiguously entered characters may include those contiguously entered characters described above and herein.
  • the processor may be further operable to identify a counterpart character of each identified contiguously entered character. Each identified contiguously entered character and its identified counterpart character may be characters associated with a same character key of the keyboard. Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein.
  • the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
  • the processor may be further operable to perform a search of a subset of the database for a resultant word based on one or more of the identified counterpart characters.
  • the subset of the database may comprise words having one or more of the counterpart characters.
  • the database may be a database residing in a computing device (such as those illustrated in Figures 3B-E) and/or residing remotely (such as in a remote database server 340 and/or in the cloud) and in communication with the processor (or computing device) via a network 350.
  • the processor may be a processor residing in a computing device (such as those illustrated in Figure 3B-E) and/or residing remotely (such as processor 360).
  • the processor may be further operable to display the resultant word on the graphical display 330a and 330b.
  • the resultant word may be displayed as a suggested word on the graphical display 330a and 330b.
  • the suggested word may be a user-interactible section outside of (or between or as an overlay over) the keys of the keyboard.
  • more than one resultant word and/or suggested word may be displayed on the graphical display 330a and 330b.
  • the suggested word(s) may be selectable by the user.
  • the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word.
  • the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered.
  • the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • the processor may perform such automatic replacing and/or amending of contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • example embodiments of processing of multi-language data entry and/or interactions to return a resultant word may be performed in one or more of a plurality of ways and in response to one or more conditions and/or user actions/interactions, including returning a resultant word in response to a received user interaction (such as with a key of a keyboard, touch of a touchscreen graphical display, voice commands, gesture commands, interaction with a peripheral device, such as a right-click of a mouse, and the like) and/or in response to a determination that a received user interaction is a functional interaction (which will be further described in the present disclosure, including section "Example embodiments of returning a resultant word in response to a determination that a received user interaction with a key is a functional interaction (e.g., Figure 5)").
  • a received user interaction such as with a key of a keyboard, touch of a touchscreen graphical display, voice commands, gesture commands, interaction with a peripheral device, such as a right-click of a mouse, and the like
  • Example embodiments of returning a resultant word by performing two or more searches e.g., Figure 4).
  • another example embodiment of a method 400 for processing multi-language data entry or interactions by a processor may comprise identifying one or more contiguously entered characters entered into a user-editable section (e.g., action 410) displayed by a processor.
  • Contiguously entered characters may include those contiguously entered characters described above and herein.
  • the method may further comprise identifying a counterpart character of each contiguously entered character (e.g., action 420).
  • Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein.
  • the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys of a keyboard as the one or more contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
  • the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key.
  • the another character associated with the identified character key may be a character different from the identified contiguously entered character.
  • the method may further comprise forming a first input query (e.g., action 422).
  • the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
  • the method may further comprise forming a second input query (e.g., action 424).
  • the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode).
  • the second language or second language mode
  • the second language may be different from the first language (or first language mode).
  • the method may further comprise performing a first search of a subset of a first database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters (e.g., action 430).
  • the subset of the first database may comprise words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
  • the method may further comprise performing a second search of a subset of a second database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters (e.g., action 432).
  • the subset of the second database may comprise words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
  • the first database and the second database may be different or separate databases, or the same database.
  • the subset of the first database and the subset of the second database may be different or separate subsets, or the same subset.
  • the method may further comprise selecting a resultant word based on the first and second searches (e.g., action 434).
  • the selecting the resultant word may be based on one or more of a plurality of conditions or considerations, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • the method may further comprise returning the resultant word (e.g., action 440).
  • the resultant word may be returned as a suggested word.
  • more than one resultant word and/or suggested word may be returned.
  • the suggested word(s) may be selectable by the user.
  • one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user.
  • one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered.
  • one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • a system for processing multi-language data entry or interactions may comprise a graphical display, a database, and a keyboard.
  • the keyboard may be a physical keyboard, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device.
  • the keyboard may also be a virtual or soft keyboard, such as those available or installable on computing devices.
  • the keys of the keyboard may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures.
  • the system may further comprise a processor operable to communicate with the graphical display, the database, and the keyboard.
  • the processor may be operable to display a user-editable section on the graphical display.
  • the processor may be further operable to receive, at a first position of the user-editable section displayed on the graphical display, a user interaction with a first character key of the keyboard.
  • the first character key of the keyboard may be any key of the keyboard, including character keys representing characters.
  • the first position of the user-editable section may be a cursor position and/or an active position of the user-editable section that receives the user interaction with the first character key.
  • the processor may be operable to identify one or more contiguously entered characters entered into the user-editable section. Contiguously entered characters may include those contiguously entered characters described above and herein.
  • the processor may be further operable to identify a counterpart character of each identified contiguously entered character.
  • Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein.
  • the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
  • the processor may be further operable to form a first input query.
  • the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
  • the processor may be further operable to form a second input query.
  • the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode).
  • the second language or second language mode
  • the second language may be different from the first language (or first language mode).
  • the processor may be further operable to perform a first search of a first subset of the database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters.
  • the first subset of the database comprises words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
  • the processor may be further operable to perform a second search of a second subset of the database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters.
  • the second subset of the database comprises words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
  • the processor may be further operable to select a resultant word based on the first and second searches.
  • the processor may be further operable to display the resultant word on the graphical display.
  • the resultant word may be displayed as a suggested word on the graphical display.
  • the suggested word may be a user-interactible section outside of (or between) the keys of the keyboard.
  • more than one resultant word and/or suggested word may be displayed on the graphical display.
  • the suggested word(s) may be selectable by the user.
  • the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word.
  • the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered.
  • the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • the processor may perform such automatic replacing and/or amending of the contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • Example embodiments of returning a resultant word in response to a determination that a received user interaction with a key is a functional interaction e.g.. Figure 5).
  • another example embodiment of a method 500 for processing multi-language data entry or interactions by a processor may comprise receiving a user interaction at a first position of a user-editable section (e.g., action 502).
  • the first position of the user-editable section may be a cursor position, an active position, a present position, or the like, of the user-editable section that receives the user interaction.
  • the method may further comprise determining whether the received user interaction is a character input interaction or a functional interaction (e.g., action 504).
  • a character input interaction shall refer to any interaction with a key of a keyboard that results in a character being entered or input, such as entering or inputting a character into a user-editable section.
  • functional interaction shall refer to any user interaction that causes additional actions to be performed, such as actions 510, 520, 522, 524, 530, 532, 534, and 540.
  • a functional interaction may be a press-and-hold of a character key for a duration greater than a typical typing duration, wherein a typical typing duration may be any duration that a character key can be pressed that will result in only one character assigned to or associated with the character key being entered.
  • a functional interaction may be any abnormal interaction with one or more keys, such as a sliding action, gliding action, multi- tapping action, press-and-rotate action, etc.
  • a functional interaction may be an interaction with a designated key of the keyboard, such as a new key or a known key.
  • a functional interaction may be determined when a predefined time period has lapsed after receiving a user interaction with a key of the keyboard and no further user interactions with the keyboard are received.
  • a functional interaction may be a selecting of one or more characters displayed in a user-editable section, or the like, such as by highlighting the character(s), performing one or more touches on a touchscreen, etc.
  • the received user interaction may be any interaction with a key of the keyboard (such as a pressing of a character key or a designated key), an interaction with a peripheral device in communication with the computing device (such as a right-click of a mouse), a touching of a touchscreen graphical display of or in communication with the computing device (such as a tap or prolonged tap of the touchscreen graphical display at the first position of a user-editable section), a voice command (such as a "correct" command), gesture commands, etc.
  • a key of the keyboard such as a pressing of a character key or a designated key
  • a peripheral device in communication with the computing device such as a right-click of a mouse
  • a touching of a touchscreen graphical display of or in communication with the computing device such as a tap or prolonged tap of the touchscreen graphical display at the first position of a user-editable section
  • a voice command such as a "correct" command
  • gesture commands etc.
  • a functional interaction may also include interactions with the "Shift” key, the "Ctrl” key, the “Caps Lock” key, the “Alt” key, the language key, “Backspace” key, the “Delete” key, the “Enter” key, one of the function keys Fl to F12, and/or any other interaction that does not necessarily result in the entering of a character.
  • the method may further comprise identifying one or more contiguously entered characters entered starting at a second position of the user-editable section (e.g., action 510).
  • Contiguously entered characters may include those contiguously entered characters described above and herein.
  • the second position may be a position contiguous to the first position.
  • the second position may be a position to the left or right of the first position, such as for languages that read (and write/type) horizontally.
  • the second position may be a position above or below the first position, such as for languages that read (and write/type) vertically.
  • the first and second positions are next to each other without any other characters, space, or tab between the first and second positions.
  • the second position may be the position of the fourth character entry
  • the first position may be the position immediately next to (or following) the fourth character entry
  • the contiguously entered characters may be one or more of the received four character entries.
  • the method may further comprise identifying a counterpart character of each contiguously entered character (e.g., action 520).
  • Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein.
  • the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
  • the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key.
  • the another character associated with the identified character key may be a character different from the identified contiguously entered character.
  • the method may further comprise forming a first input query (e.g., action 522).
  • the first input query may comprise one or more of the contiguously entered characters.
  • the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
  • the method may further comprise forming a second input query (e.g., action 524).
  • the second input query may comprise one or more of the counterpart characters of the contiguously entered characters.
  • the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode).
  • the second language (or second language mode) may be different from the first language (or first language mode).
  • the method may further comprise performing a first search of a subset of a first database based on the first input query and/or one or more of the identified contiguously entered characters (e.g., action 530).
  • the subset of the first database may comprise words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
  • the method may further comprise performing a second search of a subset of a second database based on the second input query and/or one or more of the identified counterpart characters (e.g., action 532).
  • the subset of the second database may comprise words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
  • the method may further comprise select a resultant word based on the first and second searches (e.g., action 534).
  • the selecting the resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • the method may further comprise returning the resultant word (e.g., action 540).
  • the resultant word may be returned as a suggested word.
  • more than one resultant word and/or suggested word may be returned.
  • the suggested word(s) may be selectable by the user.
  • one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user.
  • one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered.
  • one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • a system for processing multi-language data entry or interactions may comprise a graphical display, a database, and a keyboard.
  • the keyboard may be a physical keyboard, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device.
  • the keyboard may also be a virtual or soft keyboard, such as those available or installable on computing devices.
  • the keys of the keyboard may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures.
  • the system may further comprise a processor operable to communicate with the graphical display, the database, and the keyboard.
  • the processor may be operable to display a user-editable section on the graphical display.
  • the processor may be further operable to receive, at a first position of the user-editable section displayed on the graphical display, a user interaction with a key of the keyboard.
  • the first position of the user-editable section may be a cursor position and/or an active position of the user-editable section that receives the user interaction with the key.
  • the processor may be further operable to determine whether the received user interaction is a character input interaction or a functional interaction.
  • the processor may be further operable to identify one or more contiguously entered characters entered starting at a second position of the user-editable section.
  • Contiguously entered characters may include those contiguously entered characters described above and herein.
  • the second position is a position contiguous to the first position.
  • the second position may be a position to the left or right of the first position, such as for languages that read (and write/type) horizontally.
  • the second position may be a position above or below the first position, such as for languages that read (and write/type) vertically.
  • the first and second positions are next to each other without any other characters, space, or tab between the first and second positions.
  • the processor may be further operable to identify a counterpart character of each contiguously entered character.
  • Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein.
  • the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters.
  • the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
  • the processor may be further operable to form a first input query.
  • the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
  • the processor may be further operable to form a second input query.
  • the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode).
  • the second language or second language mode
  • the second language may be different from the first language (or first language mode).
  • the processor may be further operable to perform a first search of a first subset of the database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters.
  • the first subset of the database comprises words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
  • the processor may be further operable to perform a second search of a second subset of the database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters.
  • the second subset of the database comprises words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
  • the processor may be further operable to select a resultant word based on the first and second searches.
  • the processor may be further operable to display the resultant word on the graphical display.
  • the resultant word may be displayed as a suggested word on the graphical display.
  • the suggested word may be a user-interactible section outside of (or between) the keys of the keyboard.
  • more than one resultant word and/or suggested word may be displayed on the graphical display.
  • the suggested word(s) may be selectable by the user.
  • the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word.
  • the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered.
  • the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word.
  • the processor may perform such automatic replacing and/or amending of the contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
  • one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
  • Example embodiments of returning a resultant word based on other considerations Example embodiments of returning a resultant word based on other considerations.
  • the searching, forming an input query, selecting, suggesting, and/or returning of the resultant word may be based on a context of previously entered characters and/or previously entered words. That is, example embodiments may first identify one or more previously entered words entered (and displayed) prior to the identified one or more contiguously entered characters. Once the one or more previously entered words have been identified, example embodiments may search for, select, and/or return the resultant word based on a contextual best match with the identified one or more previously entered words.
  • the one or more previously entered words may need to be translated into a different language (such as a language of the contiguously entered characters and/or the counterpart characters) in order to find a resultant word being a contextual best match based on the one or more contiguously entered characters and/or the counterpart characters to the contiguously entered characters.
  • the resultant word may need to be translated into a different language (such as the language of the previously entered words, the contiguously entered characters, and/or the counterpart characters) in order to find a resultant word being a contextual best match based on the one or more contiguously entered characters and/or the counterpart characters to the contiguously entered characters.
  • the searching, forming an input query, selecting, suggesting, and/or returning of the resultant word may also be based user history, other users' histories, a dictionary, a thesaurus, internet searches, specialized databases, messages exchanged with other users, voice messages (such as voice chats), images (such as images exchanged in chats), etc.
  • the activated language (or language mode or keyboard mode) of the computing device may be switched to the language (or language mode or keyboard mode) of the returned resultant word.
  • the activated language (or language mode or keyboard mode) is the English language (or English language mode or English keyboard mode) and the returned resultant word is a Thai language word
  • example embodiments may switch the activated language (or language mode or keyboard mode) to the Thai language (or Thai language mode or Thai keyboard mode).
  • the computing device may not have an activated language (or language mode or keyboard mode). Instead, the computing device will perform one or more of the example embodiments, such as those described above and herein, for some or all characters/words entered by the user.
  • a method for processing multi-language data entry using a processor may comprise identifying an active language of the keyboard as a first language.
  • the active language of the keyboard (called the first language) may be any language.
  • the active language of the keyboard may be identified as the English language, and the keyboard having the active language as the English language may comprise keys as shown in Figure 2A.
  • the active language of the keyboard may be identified as the Thai language, and the keyboard having the active language as the Thai language may comprise keys as shown in Figure 2B.
  • a user action performed on character key lOlx may result in the English language character "d" 101b being displayed in a user-editable section.
  • a user action i.e., a user action that is the same as or functionally equivalent to the user action performed on character key lOlx
  • character key lOly which may be the same physical or virtual character key as character key lOlx, and/or overlaps at least a portion of the character key lOlx
  • the keyboard may be a virtual keyboard or a physical keyboard.
  • a virtual keyboard for a touchscreen computing device may be configurable for several different languages (such as English language, Vietnamese language, Japanese language, etc.), and may have an active language as the English language. In this situation, all other languages may be considered as non-active languages, and each of these non-active languages may be selectable (such as by commanding the keyboard via a language button, action, etc.) by the user to be the active language of the keyboard.
  • the method may further comprise receiving a sequence of user actions performed on a keyboard.
  • the active language of the keyboard may be identified as the Thai language and a user may perform a sequence of user actions on the keyboard, such as pressing, sliding, or touching on character keys (virtual or physical keys) 811, 812, 813, 814, 815, and 816 (see FIGURE 8).
  • Such sequence of user actions may be received by the processor.
  • a quantity of the user actions for the sequence of user actions may be identified by the processor. In the above example, the quantity of the user actions may be six user actions.
  • the method may further comprise identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. Such identifying may be performed by the processor after (or in response to) the receiving of all user actions in the sequence of user actions and/or during the receiving of the user actions in the sequence of user actions. In example embodiments, such identifying may be performed by the processor after (or in response to) the receiving of all user actions in the sequence of user actions. It is recognized in the present disclosure that certain languages, such as the Thai language, may have language formats, rules, and/or syntaxes that do not allow (or would be considered improper to allow) certain characters to be entered following (or before) certain other characters.
  • keyboards, user-editable sections, applications, and/or websites try to ensure conformity to such language formats (or syntaxes or rules), and correspondingly do not allow the entering and/or displaying of certain characters after (or prior to) certain other characters (and/or identify such characters entered and/or displayed after or prior to certain other characters as being of improper or unrecognized formats, syntaxes, or rules, or incorrectly entered).
  • the identified contiguously entered characters displayed in the user-editable section (see 810a) collectively resulting from the receiving of the sequence of user actions may be the four Thai language characters 811a, 812a, 813a, and 816a (and not the six Thai language characters 81 1a, 812a, 813a, 814a, 815a, and 816a).
  • the received user actions on the character keys 811 , 812, and 813 may result in the Thai language characters 81 1a, 812a, and 813a being entered and displayed in the user-editable section since there is/are no language formats (or syntaxes or rules) preventing them from being contiguously entered in such a sequence.
  • the received user action on the character key 814 following the received user action on the character key 813 as the Thai language character 814a is not allowed to be entered following Thai language character 813a, the received user action performed on character key 814 will not result in a character (Thai language character 814a or any other Thai language character) being displayed in the user-editable section.
  • the received user action performed on character key 815 will not result in a character (Thai language character 815a or any other Thai language character) being displayed in the user-editable section.
  • the received user action performed on character key 816 will result in the Thai language character 816a being displayed in the user-editable section since there are no language formats (or syntaxes or rules) preventing the Thai language character 816a from following the Thai language character 813a.
  • Other examples may be readily identified, such as a situation in which the active language of the keyboard is the Thai language and a first user action of the received sequence of user actions is performed on character key 814 or 815.
  • the identifying of the contiguously entered characters may be performed based on or triggered by a user action (such as a selecting or highlighting (such as by using a mouse, other peripheral input device, or one or more touches on a touchscreen) of the contiguously entered characters, pressing of a space or return key after the sequence of user actions has been received, etc.) or non-action (such as a lapse of a certain time, such as one second).
  • a user action such as a selecting or highlighting (such as by using a mouse, other peripheral input device, or one or more touches on a touchscreen) of the contiguously entered characters, pressing of a space or return key after the sequence of user actions has been received, etc.
  • non-action such as a lapse of a certain time, such as one second.
  • the method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions.
  • the first user action identified by the processor may be the pressing of the character key 81 1, which resulted in the displaying of the Thai language character 811a in the user-editable section.
  • the first user action identified by the processor may be the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section.
  • the first user action identified by the processor may be the pressing of the character key 816, which resulted in the displaying of the Thai language character 816a in the user-editable section.
  • the identifying of the first user action from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise identifying other first user action(s) from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all user actions in the sequence of user actions.
  • the first user action is the pressing of the character key 81 1, which resulted in the displaying of the Thai language character 81 1a in the user- editable section
  • the other first user action(s) identified by the processor may be the pressing of the character key(s) 812, 813, and/or 816, which resulted in the displaying of the Thai language characters 812a, 813a, and 816a, respectively.
  • the other first user action(s) identified by the processor may be the pressing of the character key(s) 81 1, 813, and/or 816, which resulted in the displaying of the Thai language characters 811a, 813a, and 816a, respectively.
  • the other first user action(s) identified by the processor may be the pressing of the character key(s) 811, 812, and/or 813, which resulted in the displaying of the Thai language characters 81 1a, 812a, and 813a, respectively.
  • the identifying of the other first user action(s) from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one (or any) of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the second user action identified by the processor may be the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section.
  • the second user action identified by the processor may be the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section.
  • the identifying of the second user action from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise identifying other second user action(s) from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not result in any of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions.
  • the second user action is the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section
  • the other second user action identified by the processor may be the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character).
  • the other second user action identified by the processor may be the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character).
  • the identifying of the other second user action(s) from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character.
  • the first counterpart character may be determined, by the processor, as a character in a second language (i.e., a non-active language) different from the first language (i.e., the language currently set as the active language) that is enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user-selected, or configured) as the second language and the first user action is performed on the keyboard having the active language set as the second language.
  • a second language i.e., a non-active language
  • Such identifying may be performed by, for example, assuming that the first user action is performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section.
  • a reference table or the like, may be provided for each configurable language of the keyboard that indicates what character would be entered for each user action.
  • the determining, by the processor, of the first counterpart character may be performed by a look-up of the reference table.
  • the determined first counterpart character may be the character "r" 81 1b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard.
  • the determined first counterpart character may be the character "i" 812b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard.
  • the determined first counterpart character may be the character "s" 816b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard.
  • the determining the first counterpart character may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise determining other first counterpart character(s).
  • the other first counterpart character(s) may be determined, by the processor, as characters in the second language (i.e., a non-active language) that are enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user- selected, or configured) as the second language and the other first user actions are performed on the keyboard.
  • Such identifying may be performed by, for example, assuming that the other first user action are performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section.
  • the determining of the first counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein.
  • the determined other first counterpart character(s) may be the character(s) "i" 812b, "c” 813b, and/or "s" 816b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard.
  • the determined other first counterpart character(s) may be the character(s) "r" 811b, "c” 813b, and/or "s" 816b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard.
  • the determined other first counterpart character(s) may be the character(s) "r" 81 lb, "i" 812b, and or "c” 813b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard.
  • the determining the other first counterpart character(s) may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character.
  • the second counterpart character may be determined, by the processor, as a character in a second language (i.e., a non-active language) different from the first language (i.e., the language currently set as the active language) that is enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user-selected, or configured) as the second language and the second user action is performed on the keyboard having the active language set as the second language.
  • a second language i.e., a non-active language
  • Such identifying may be performed by, for example, assuming that the second user action is performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section.
  • the determining of the second counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein.
  • the determined second counterpart character may be the character "h" 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard.
  • the determined second counterpart character may be the character "e" 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard.
  • the determining the second counterpart character may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise determining other second counterpart characters.
  • the other second counterpart character(s) may be determined, by the processor, as characters in the second language (i.e., a non-active language) that are enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user- selected, or configured) as the second language and the other second user actions are performed on the keyboard.
  • Such identifying may be performed by, for example, assuming that the other second user action are performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section.
  • the determining of the second counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein.
  • the determined other second counterpart character may be the character "e" 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other second user action is performed on the keyboard.
  • the determined other second counterpart character may be the character "h" 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other second user action is performed on the keyboard.
  • the determining the other second counterpart character(s) may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise searching a subset of a database for a resultant word.
  • the subset of the database may comprise words having one or more of the first counterpart character, second counterpart character, other first counterpart characters, and/or other second counterpart characters.
  • the words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language.
  • the searching may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise, prior to the returning, arranging the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions.
  • the arranging may result in the arrangement of "r” 811b, followed by "i” 812b, followed by ** c" 813b, followed by "h” 814b, followed by "e” 815b, and followed by "s” 816b.
  • the arranging may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise returning the first and second counterpart characters.
  • the characters "r” 81 lb and “h” 814b may be returned by the processor.
  • the said returning may include returning, by the processor, of one or more of the other first and second counterpart characters.
  • the characters "r" 811b, "i” 812b, “c” 813b, "h” 814b, "e” 815b, and "s” 816b may be returned.
  • the returning may further comprise replacing, by the processor, the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the identified contiguously entered characters 810a may be replaced with the characters "r" 811b, "i” 812b, “c” 813b, “h” 814b, “e” 815b, and “s” 816b (or the word “riches” 810b).
  • the returning may further include returning, by the processor, the resultant word found in the searching.
  • the returning may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not display one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the processor may be further operable to return the first and second counterpart characters.
  • the processor may be further operable to identify other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to determine other first counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard.
  • the processor may be further operable to determine other second counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard.
  • the returning may include returning one or more of the other first and second counterpart characters.
  • the processor may be further operable to, prior to the returning, arrange the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions.
  • the returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
  • the words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • Each area of the touchscreen may represent a character key.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • the system may further comprise one or more other features described above and in the present disclosure.
  • a method may comprise identifying an active language of a keyboard as a first language.
  • the method may further comprise receiving a sequence of user actions performed on the keyboard.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the method may further comprise identifying a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section.
  • the method may further comprise, responsive to the identifying the first set of user actions, determining a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when user actions equivalent (or functionally equivalent) to each user action of the first set of user actions are performed on the keyboard having the active language of the keyboard set (or configured) as the second language.
  • the method may further comprise, responsive to the identifying the second set of user actions, determining a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when user actions equivalent (or functionally equivalent) to each user action of the second set of user actions are performed on the keyboard having the active language of the keyboard set (or configured) as the second language.
  • the method may further comprise returning one or more characters of the first and second set of counterpart characters.
  • the method may further comprise, prior to the returning, arranging the characters of the first and second set of counterpart characters based on the received sequence of user actions.
  • the returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to identify a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section.
  • the processor may be further operable to, responsive to the identifying the first set of user actions, determine a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second set of user actions, determine a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard.
  • the processor may be further operable to return one or more characters of the first and second set of counterpart characters.
  • the processor may be further operable to, prior to the returning, arrange the characters of the first and second set of counterpart characters based on the received sequence of user actions.
  • the returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters.
  • the returning may include returning the resultant word found in the searching.
  • Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard.
  • Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen.
  • the second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
  • the first language may be the Thai language and the second language may be the English language, and vice versa.
  • the system may further comprise one or more other features described above and in the present disclosure.
  • a method may comprise identifying an active language of a keyboard as a first language.
  • the method may further comprise receiving a sequence of user actions performed on the keyboard.
  • the method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the method may further comprise identifying a quantity of user actions in the received user actions.
  • the method may further comprise identifying a quantity of characters in the identified contiguously entered characters.
  • the method may further comprise, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identifying a first user action and a second user action from among the received sequence of user actions.
  • the first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section.
  • the method may further comprise, responsive to the identifying the first user action, determining a first counterpart character.
  • the first counterpart character may be determined, by a processor, as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the method may further comprise, responsive to the identifying the second user action, determining a second counterpart character.
  • the second counterpart character may be determined, by a processor, as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the method may further comprise returning the first and second counterpart characters.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify an active language of the keyboard as a first language.
  • the processor may be further operable to receive a sequence of user actions performed on the keyboard.
  • the processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions.
  • the processor may be further operable to identify a quantity of user actions in the received user actions.
  • the processor may be further operable to identify a quantity of characters in the identified contiguously entered characters.
  • the processor may be further operable to, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identify a first user action and a second user action from among the received sequence of user actions.
  • the first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section.
  • the second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section.
  • the processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard.
  • the processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user- editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard.
  • the processor may be further operable to return the first and second counterpart characters.
  • the system may further comprise one or more other features described above and in the present disclosure.
  • a method may comprise identifying a first language as an active language of a keyboard and a second language as a non-active language of the keyboard.
  • the method may further comprise identifying a plurality of user-entered keystrokes performed on keys of the keyboard.
  • the method may further comprise identifying contiguously entered characters in the first language entered into a user- editable section resulting from the user-entered keystrokes.
  • the method may further comprise determining counterpart characters in the second language based on the user-entered keystrokes. The determining may include, for each identified keystroke, identifying a character in the second language that can be entered into the user-editable section by the identified keystroke when the active language of the keyboard has been set to the second language.
  • the method may further comprise returning the counterpart characters.
  • the returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user- editable section with the counterpart characters.
  • the method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters.
  • the returning may include returning the resultant word.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify a first language as an active language of a keyboard and a second language as a non-active language of the keyboard.
  • the processor may be further operable to identify a plurality of user-entered keystrokes performed on keys of the keyboard.
  • the processor may be further operable to identify contiguously entered characters entered into a user-editable section resulting from the user-entered keystrokes.
  • the processor may be further operable to determine counterpart characters based on the user-entered keystrokes.
  • the determining may include, for each identified keystroke, identifying a character in the second language enterable into the user-editable section by the identified keystroke when the active language of the keyboard is the second language.
  • the method may further comprise returning the counterpart characters.
  • the returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters.
  • the returning may include returning the resultant word.
  • the system may further comprise one or more other features described above and in the present disclosure.
  • a method may comprise receiving a user selection of contiguously entered characters.
  • the contiguously entered characters are characters displayed in a user-editable section.
  • the method may further comprise identifying the user-selected contiguously entered characters.
  • the method may further comprise identifying a language of the user-selected contiguously entered characters.
  • the method may further comprise determining counterpart characters of the user-selected contiguously entered characters.
  • the determined counterpart characters may include characters in a second language different from the identified language of the user-selected contiguously entered characters.
  • the determined counterpart characters may include characters that would be entered in the user- editable section if an active language of a keyboard is configured for the second language and keys of the keyboard corresponding to (or overlapping a same area of keys associated with) the identified user-selected contiguously entered characters are pressed.
  • the method may further comprise replacing the user-selected contiguously entered characters displayed in the user- editable section with one or more of the determined counterpart characters.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to receive a user selection of contiguously entered characters displayed in a user-editable section.
  • the processor may be further operable to identify the user- selected contiguously entered characters.
  • the processor may be further operable to identify a language of the user-selected contiguously entered characters.
  • the processor may be further operable to determine counterpart characters of the user-selected contiguously entered characters.
  • the determined counterpart characters may include characters in a second language different from the identified language of the selected contiguously entered characters.
  • the determined counterpart characters may include characters enterable in the user-editable section when an active language of a keyboard operable to enter characters into the user-editable section is configured for the second language.
  • the processor may be further operable to replace the user selected contiguously entered characters entered into the user-editable section with one or more of the determined counterpart characters.
  • the system may further comprise one or more other features described above and in the present disclosure.
  • a method for processing multi-language data entry using a processor may comprise identifying, by a processor, contiguously entered characters entered into a user-editable section.
  • the contiguously entered characters may include a first identified contiguously entered character.
  • the method may further comprise determining, by the processor, a counterpart character of each identified contiguously entered character.
  • the determining may include determining a first determined counterpart character that is a counterpart character of the first identified contiguously entered character.
  • the determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard.
  • the determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area.
  • the determining may further include determining the first determined counterpart character as being a character associated with the second character key.
  • the first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language.
  • the first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language.
  • the first language is a different language from the second language.
  • the method may further comprise replacing, by the processor, the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character.
  • the method may further comprise searching a subset of a database for a resultant word.
  • the subset of the database may comprise words having the first determined counterpart character.
  • the method may further comprise providing the keyboard having a plurality of character keys.
  • One or more of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language.
  • the first character key and the second character key may be the same physical keys.
  • the first character key and the second character key may be different virtual keys.
  • the method may further comprise one or more other features described above and in the present disclosure.
  • a system may comprise a graphical display.
  • the system may further comprise a keyboard.
  • the system may further comprise a processor in communication with the graphical display and the keyboard.
  • the processor may be operable to identify contiguously entered characters entered into a user- editable section, including a first identified contiguously entered character.
  • the processor may be further operable to determine a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character.
  • the determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard.
  • the determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area.
  • the determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key.
  • the first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language.
  • the first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language.
  • the first language may be a language different from the second language.
  • the processor may be further operable to replace the identified contiguously entered characters entered into the user- editable section with at least the first determined counterpart character.
  • the processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character.
  • the keyboard may include a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language.
  • the first character key and the second character key may be the same physical keys.
  • the first character key and the second character key may be different virtual keys.
  • a mobile computing device 600 may have a virtual keyboard 602 displayed on a touch-screen graphical display.
  • the computing device 600 may also have a processor (not shown) and one or more databases (not shown) stored in local memory and/or remotely (such as on a server and/or in the cloud).
  • the computing device 600 may have received previously entered words in the English language, such as "I want to go to the" 610c, entered into a user-editable section 620 by a user using the virtual keyboard 602.
  • the activated language (or activated language mode or activated keyboard mode) may be set as the English language (or the English language mode or English keyboard mode such as a QWERTY keyboard).
  • the user may now wish to continue typing, such as to complete the sentence, by entering a word in a different language (or language mode or keyboard mode), such as the Thai language word for "market” (pronounced “dalat”).
  • a word in a different language such as the Thai language word for "market” (pronounced “dalat”
  • the user may typically need to, among other things, search for a language button (or language mode button or keyboard mode button) on the keyboard, select a language (or language mode or keyboard mode) desired by the user (such as Thai), wait for the keyboard in the desired language (or language mode or keyboard mode, such as a Thai language keyboard) to be displayed, and then search for the desired character keys in the user's desired language.
  • the user may not need to search for a language button, select the language desired by the user, wait for the keyboard in the desired language to be displayed, and search for appropriate character keys in the user's desired language.
  • the user may continue entering the character keys corresponding to the language desired by the user without switching the activated language to the language desired by the user.
  • the user may proceed to interact with (or press) the character key 611 associated with the character “9” 61 1b, character key 612 associated with character “]” 612b, character key 613 associated with character “k” 613b, and character key 614 associated with character “f” 614b, which are the same character keys 611, 612, 613, and 614 in the activated language (or language mode or keyboard mode) assigned to or associated with the Thai language characters 61 1a, 612a, 613a, and 614a for the (un-activated) Thai language mode.
  • the sequence of characters "9" 611b (associated with key 611), "]” 612b (associated with key 612), "k” 613b (associated with key 613), and “f 614 (associated with key 614) in the English language (or English language mode or English keyboard mode) may be entered (and may be displayed) as "9]kf 610b.
  • the contiguously entered characters 610b "9", “]", "k", and "f may be received and identified.
  • Counterpart characters 610a of the contiguously entered characters 610b may be identified.
  • the counterpart characters of the contiguously entered characters 610b "9", “]", “k”, and “f ' in the Thai language may be identified as the Thai language characters 611a, 612a, 613a, and 614a that make up the Thai language word for "market” (pronounced “dalat”).
  • a search (a first search) may then be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a first subset of a database.
  • the first subset of the database may be a subset comprising words having one or more of the counterpart characters 61 la, 612a, 613a, and 614a, which are the characters in the Thai language mode.
  • the resultant word (which is returned as a suggested word 610a), as shown in Figure 6, in the Thai language may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word 610a.
  • the resultant word 610a may be returned in one or more ways, as described above and herein.
  • the resultant word may be returned as a suggested word 610a, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters "9", "]", "k”, and "f ' with the resultant word.
  • the resultant word may be returned by automatically replacing the contiguously entered characters "9", "]", "k", and "f” with the resultant word without requiring the user to select.
  • a second search may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database).
  • the second search may be performed for a word in the English language (or English language mode or English keyboard mode) using a second subset of the database.
  • the second subset of the database may be a subset comprising words having one or more of the contiguously entered characters "9", "]", "k", and "f.
  • a second resultant word may be determined by the second search to be a best match of the contiguously entered characters.
  • a final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters). Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like.
  • the final resultant word based on the first and second searches and one or more conditions may be the Thai language mode word as shown in Figure 6.
  • example embodiments may search for and return a resultant word based on, among other things, the first search (and in some embodiments, the second search) and a context of previously entered words.
  • the activate language may be the English language and the contiguously entered characters 610b may be "9" 611b (associated with key 611), "]" 612b (associated with key 612), “k” 613b (associated with key 613), and "f 614 (associated with key 614).
  • the Thai language word for "market” (composed of Thai language characters 611a, 612a, 613a, and 614a) may be a closest match based on the counterpart characters 611a, 612a, 613a, and 614a and the context (i.e., previously entered words 610c).
  • the previously entered words "I want to go to the" 610c may be translated to the Thai language before determining a closest match based on the counterpart characters and the context.
  • the closest matching word(s) (or one or more of the words in the subset) based on the counterpart characters may be translated to the English language (such as the English language word "market" in the subset) before determining a closest match based on the counterpart characters and the context.
  • the English language such as the English language word "market" in the subset
  • the contiguously entered characters may be identified after receiving a user interaction with a character key of the keyboard at a first position of a user- editable section displayed on the graphical display.
  • the character key receiving the user interaction may be the character key 614 for the character "f '.
  • the characters "9", "]", and "k” may be received and identified as the contiguously entered characters 610b, and the character "k” may be considered as a second position that is contiguous to the first position.
  • the character key 614 for the character "f that received the user interaction may or may not be considered as one of the contiguously entered characters 610b in example embodiments.
  • Counterpart characters 611a, 612a, and 613a of the contiguously entered characters 611b, 612b, and 613b may then be identified.
  • the counterpart characters 611a, 612a, and 613a of the contiguously entered characters "9", "]", and "k” (and "f if considered as one of the contiguously entered characters in example embodiments) in the Thai language (or Thai language mode or Thai keyboard mode) may be identified.
  • a search may then be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a first subset of a database.
  • the first subset of the database may be a subset comprising words having one or more of the counterpart characters.
  • a resultant word which is the Thai language word for "market" (composed of Thai language characters 611a, 612a, 613a, and 614a), may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word.
  • the resultant word may be returned in one or more ways, as described above and herein.
  • the resultant word may be returned as a suggested word, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters "9", “]", and “k” (and “f” if entered and considered as one of the contiguously entered characters in example embodiments) with the resultant word.
  • the resultant word may be returned by automatically replacing the contiguously entered characters "9", "]", and "k” (and "f if entered and considered as one of the contiguously entered characters in example embodiments) with the resultant word.
  • a second search may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database).
  • the second search may be performed for a word in the English language (or English language mode or English keyboard mode) using a second subset of the database.
  • the second subset of the database may be a subset comprising words having one or more of the contiguously entered characters "9", "]", and "k" (and "f ' if considered as one of the contiguously entered characters in example embodiments).
  • a second resultant word may be determined by the second search to be a best match of the contiguously entered characters.
  • a final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters). Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like.
  • the final resultant word based on the first and second searches and one or more conditions may be the Thai language word for "market" (composed of Thai language characters 611a, 612a, 613a, and 614a).
  • a computing device 700 such as a laptop, may have a physical keyboard 702 integrated with (such as those found in a laptop or mobile computing device like a Blackberry Bold) or attached to (such as a wired or wireless external keyboard) the computing device 700.
  • the computing device 700 may also have a processor (not shown) and one or more databases (not shown) stored in local memory and/or remotely (such as on a server and/or in the cloud).
  • an activated language (or activated language mode or activated keyboard mode) may be set as the Thai language (or the Thai language mode or Thai keyboard mode). The user may assume or expect that the activated language is English, and not Thai.
  • the user may proceed to enter a user-desired word in the English language using the keyboard 702 without realizing that the activated language is not English.
  • the user may proceed to enter the user-desired English language word "pass" while the activated language is the Thai language, which will result in the Thai characters 71 la, 712a, 713a, and 713a being entered.
  • the user may typically need to, among other things, delete the incorrectly entered characters in the incorrect language, search for a language button (or language mode button or keyboard mode button) on the keyboard (or use other methods to change the activated language), and select the language (or language mode or keyboard mode) desired by the user (such as English). The user will then be required to re-enter the user-desired English language word.
  • the user may not need to delete the incorrectly entered characters 710b in the incorrect language, search for the language button (or use other methods to change the activated language, such as using menu buttons as previously described), select the language desired by the user, and re-enter the user-desired word in the language desired by the user.
  • the contiguously entered characters 710b consisting of the characters 711a (associated with key 711), 712a (associated with key 712), 713a (associated with key 713), and 713a (associated with key 713) may be received and identified. Counterpart characters of the contiguously entered characters 710b may be identified.
  • the counterpart characters of the contiguously entered characters in the English language may be identified as the English language characters "p" 711b (associated with key 711), "a” 712b (associated with key 712), “s” 713b (associated with key 713), and “s" 713b (associated with key 713).
  • a first input query may be formed comprising one or more of the counterpart characters "p", "a", "s", and "s”.
  • a search (a first search) based on the first input query may then be performed for a word in the English language (or English language mode or English keyboard mode) using a first subset of a database.
  • the first subset of the database may be a subset comprising words having one or more of the counterpart characters "p", “a”, “s”, and “s”, such as the words “pass”, “passive”, “past”, “surpass”, etc.
  • a resultant word "pass” (such as suggested word 710a) in the English language may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word 710a.
  • the resultant word may be returned in one or more ways, as described above and herein.
  • the resultant word may be returned as a suggested word 710a, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters 710b with the resultant word "pass” 710a.
  • the resultant word may be returned by automatically replacing the contiguously entered characters 710b with the resultant word "pass” 710a.
  • a second input query may be formed comprising one or more of the contiguously entered characters 710b.
  • a second search based on the second input query may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database).
  • the second search may be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a second subset of the database.
  • the second subset of the database may be a subset comprising words having one or more of the contiguously entered characters 711a, 712a, 713a, and 713a, such as the Thai language words 710d, 710e, etc.
  • a second resultant word 710d may be determined to be a best matching word found from the second search.
  • a final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters).
  • Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like.
  • the final resultant word based on the first and second searches and one or more conditions may be the word "pass" 710a.
  • example embodiments may search for and return a resultant word based on, among other things, the first search (and in some embodiments, the second search) and a context of previously entered words.
  • previously entered words may be "they are too"
  • the activate language may be the Thai language
  • the contiguously entered characters may be 711a, 712a, 713a, and 713a.
  • the first subset of the database may be a subset comprising words having one or more of the counterpart characters "p" 711b, "a” 712b, “s” 713b, and “s” 713b, such as the words “pass”, “passive”, “past”, “surpass”, etc.
  • the word “pass” may be a closest match based on the counterpart characters
  • the word “passive” may be a better match based on the counterpart characters and the context (i.e., previously entered words). Accordingly, the word “passive” may be returned as the resultant word.
  • the second subset of the database comprising words having one or more of the contiguously entered characters may also be formed and searched by the second search.
  • the previously entered words may be translated into the activated language and used with one or more words in the second subset to determine a second resultant word based on the second search and translated context.
  • a mobile computing device with a touchscreen may have an application installed that is operable to receive user textual input.
  • the application may be a chat or instant messaging application, such as WhatsApp, Line, WeChat, iMessage, Skype, etc., or any other application (such as an email application, browser, Microsoft Word, etc.).
  • the mobile device may also have one or more keyboard applications installed. When a user of the mobile device launches the chat application and activates a user-editable section (such as a text box) for data entry, a keyboard application may be launched.
  • an active language of the keyboard may be the Thai language and a user may perform a sequence of user actions on character keys 811, 812, 813, 814, 815, and 816 of the keyboard (such as pressing on keys, sliding along or touching on an area of a touchscreen, etc.).
  • a quantity of the user actions for the sequence of user actions may be identified as being six user actions.
  • the identified contiguously entered characters displayed in the user-editable section (see 810a) collectively resulting from the receiving of the sequence of user actions (i.e., six user actions) are the four Thai language characters 811a, 812a, 813a, and 816a.
  • the user actions performed on the character keys 81 1, 812, and 813 result in the Thai language characters 81 la, 812a, and 813a being entered and displayed in the user-editable section.
  • Thai language rules prevent the Thai language character 814a from being entered following Thai language character 813a, and such rules (or formats or syntaxes) may be identified. Based on this, the user action performed on character key 814 does not result in a character (Thai language character 814a or any other Thai language character) being displayed in the user-editable section.
  • Thai language rules also prevent the Thai language character 815a from being entered following Thai language character 813a, and such rules (or formats or syntaxes) may be identified. Based on this, the user action performed on character key 815 does not result in a character (Thai language character 815a or any other Thai language character) being displayed in the user-editable section.
  • the next user action performed on character key 816 as there are no language formats (or syntaxes or rules) preventing the Thai language character 816a from following the Thai language character 813a, the user action results in the Thai language character 816a being displayed in the user-editable section.
  • a first user action may be identified as the pressing of the character key 811, which resulted in the displaying of the Thai language character 81 la in the user-editable section.
  • Other first user actions may be identified as the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section, the pressing of the character key 813, which resulted in the displaying of the Thai language character 813a in the user-editable section, and the pressing of the character key 816, which resulted in the displaying of the Thai language character 816a in the user-editable section.
  • the second user action may be identified as the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section.
  • Other second user actions may be identified as the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section.
  • the determined first counterpart character may be the character "r" 811b, which is the character in the English language that is enterable into the user- editable section when the active language of the keyboard is set as the English language and the first user action (user action on character key 811) is performed on the keyboard.
  • Other determined first counterpart characters may be the character "i" 812b, which is the character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the user action on character key 812 is performed on the keyboard; the character "c” 813b, which is the character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the user action on character key 813 is performed on the keyboard; and the character “s” 816b, which is the character in the English language that is enterable into the user- editable section when the active language of the keyboard is set as the English language and the user action on character key 816 is performed on the keyboard.
  • the determined second counterpart character may be the character "h” 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard.
  • the other determined second counterpart character may be the character "e” 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard.
  • the returning may include replacing the identified contiguously entered characters (the Thai language characters 810a) displayed in the user-editable section with the characters V 811b, "i” 812b, “c” 813b, “h” 814b, “e” 815b, and “s” 816b (or the word “riches” 810b).
  • a search of a subset of a database may be performed using one or more of the characters "r" 811b, "i” 812b, “c” 813b, "h” 814b, “e” 815b, and “s” 816b.
  • the words in the subset of the database may include one or more of the characters “r” 811b, “i” 812b, “c” 813b, “h” 814b, “e” 815b, and “s” 816b.
  • the words in the subset of the database may include one or more such characters in different orders.
  • the words in the subset of the database may include related characters to the characters “r” 811b, “i” 812b, “c” 813b, “h” 814b, “e” 815b, and “s” 816b, such as characters associated with character keys nearby character keys 811, 812, 813, 814, and/or 815.
  • the term "language” may refer to a language (or dialect), a language mode (such as a mode configurable on a computing device, a specific software application, and/or a specific keyboard), and/or a keyboard mode (such as a mode configurable on a computing device, a specific software application, and/or a specific keyboard).
  • Example applications for the example embodiments described herein include interacting, including inputting of information, into an editable section displayed on the graphical display.
  • Editable sections may include, but are not limited to, those found in an electronic document, such as Microsoft Office products, email, and cloud-based documents such as Google Docs documents; an executable application, such as a computer program installed on the computing device and/or remotely located, in part or in whole, such as cloud-based applications; a chat or messaging application, such as email, SMS, MMS, iMessage, Google Chat, WhatsApp, Skype, Facebook Chat, Yahoo Chat, Messenger, Blackberry Messenger, and Linkedln; and any other input fields, as generally known by persons of ordinary skill in the art, that allow users to interact and/or edit, such as those found in websites, desktop and mobile applications, social media, and electronic documents; and the like.
  • an electronic document such as Microsoft Office products, email, and cloud-based documents such as Google Docs documents
  • an executable application such as a computer program installed on the computing device and/or remotely located, in part or in whole, such as cloud-based applications
  • a chat or messaging application such as email, SMS, MMS, iMessage, Google Chat, WhatsApp
  • Example embodiments of a system, computing device, and/or processor described herein may be directed to desktop computers, all-in-one computers, laptops, notebooks, ultrabooks, readers, televisions, appliances, tablets, phablets, mobile phones, PDAs, music players, video players, media players, Blue Ray players, DVD players, home theater components, digital cameras, internet kiosks, check-in terminals, ticketing terminals, information terminals, a plurality of computing devices interacting together in part or in whole, and other specialized computing devices, including arcade games, tabletop replacement devices, and industry-specific computing devices.
  • Example embodiments described herein may also be directed to wearable computing devices, including glasses (such as Google Glasses). In such applications, it is to be understood that the user-initiated interactions or actions may include gestures and/
  • a computing device, communication device, system, or processor may be a virtual machine, computer, processor, mobile computing device, server, client, node, instance, host, or machine in a networked computing environment. Examples include digital signal processors (DSPs), application-specific integrated circuits (ASICs), field- programmable gate arrays (FPGAs), and any other suitable specific or general purpose processors.
  • DSPs digital signal processors
  • ASICs application-specific integrated circuits
  • FPGAs field- programmable gate arrays
  • a network or cloud may be a collection of machines connected by communication channels that facilitate communications between machines and allow for machines to share resources. Network may also refer to a communication medium between processes on the same machine.
  • a network element, node, or server may be a machine deployed to execute a program operating as a socket listener and may include software instances.
  • Memory may store any suitable information.
  • Memory may comprise any collection and arrangement of volatile and/or non-volatile components suitable for storing data.
  • memory may comprise random access memory (RAM) devices, readonly memory (ROM) devices, magnetic storage devices, optical storage devices, and/or any other suitable data storage devices.
  • RAM random access memory
  • ROM readonly memory
  • memory may represent, in part, computer-readable storage media on which computer instructions and/or logic are encoded.
  • Memory may represent any number of memory components within, local to, and/or accessible by a processor.
  • Resources may encompass any types of resources for running instances including hardware (such as servers, clients, mainframe computers, networks, network storage, data sources, memory, central processing unit time, scientific instruments, and other computing devices), as well as software, software licenses, available network services, and other non- hardware resources, or a combination thereof.
  • hardware such as servers, clients, mainframe computers, networks, network storage, data sources, memory, central processing unit time, scientific instruments, and other computing devices
  • software software licenses, available network services, and other non- hardware resources, or a combination thereof.
  • a network or cloud may include, but is not limited to, computing grid systems, distributed computing environments, cloud computing environment, etc.
  • Such network or cloud includes hardware and software infrastructures configured to form a virtual organization comprised of multiple resources which may be in geographically disperse locations.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Methods comprise identifying an active language of the keyboard as a first language; receiving a sequence of user actions performed on a keyboard; identifying displayed contiguously entered characters resulting from the receiving of the sequence of user actions; identifying first user actions that displayed the identified contiguously entered characters (811a, 812a, 813a); identifying second user actions that did not display any identified contiguously entered characters; determining a first counterpart character (811b, 812b, 813b, 816b) by determining a character in a second language different from the first language enterable into the user-editable section when the active language is set as the second language and the first user action is performed on the keyboard; determining a second counterpart character (814b, 815b) by determining a character in the second language enterable into the user-editable section when the active language is set as the second language and the second user action is performed on the keyboard; and returning the counterpart characters.

Description

METHODS FOR MULTI-LANGUAGE DATA ENTRY USING A PROCESSOR, AND SYSTEMS AND DEVICES FOR MULTI-LANGUAGE DATA ENTRY
Technical Field
The present disclosure relates generally to methods for multi-language interactions using a processor, and systems and computing devices for multi-language interactions.
Background
Today, there are various ways in which a user may interact with computing devices. For example, a user may interact using integrated keyboards, keyboards in wired or wireless communications with the computing device, and virtual or soft keyboards. Interactions with a key (or button) of a keyboard may include any action, such as typing, pressing, entering, inputting, pressing-and-holding, sliding, gliding, tapping, and/or rotating, and such interactions with a key may result in, among other things, a character entered (or displayed or inputted) into one or more editable sections or areas displayed on the computing device. Editable sections or areas may include, but are not limited to, those found in an electronic document, such as Microsoft Office products and cloud-based documents such as Google Docs documents; an executable application, such as a computer program or software application; a chat or messaging application (or functionality on a website or application), such as email, SMS, MMS, iMessage by Apple, or those offered by Google, WhatsApp, LINE, Skype, Facebook, WeChat, Yahoo, Blackberry, and Linkedin; and any other character input fields generally known by persons of ordinary skill in the art.
Presently, a growing number of users around the world are using computing devices in their everyday personal and business lives. Computing devices may include, but are not limited to, mobile phones, PDAs, tablets, phablets, wearable computing devices (such as watches, glasses, etc.), computing devices for transportation (such as those in cars, motorcycles, bicycles, airplanes, trains, etc.), laptops, desktops, smart appliances, servers, and those associated with cloud computing. To meet the demands of users who may speak, read, and/or write/type different languages, as well as users in different areas, cities, provinces, regions, countries, and/or continents, manufacturers and developers are increasingly manufacturing, developing, and/or offering hardware, software, and/or services, including those described above and herein, that can be configured for use in specific languages desired by each user.
Summary
It is recognized in the present disclosure that specific language interactions with a computing device can be improved so as to enable users to, among other things, more accurately and/or efficiently enter information in a language desired by the user into a computing device. For example, example embodiments may be operable to improve data entry and/or user experience for users who sometimes, routinely, and/or often switch languages (or language modes or language configurations) of a keyboard (either physical keyboard or virtual keyboard) associated with their computing device to enter characters in more than one language (such as between the English language and Thai language).
Present example embodiments relate generally to methods, systems, devices, and computer-readable medium for interacting with a computing device.
In an exemplary embodiment, a method is disclosed for processing multi-language data entry using a processor. The method comprises comprising identifying an active language of a keyboard as a first language. The method may further comprise receiving a sequence of user actions performed on the keyboard. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character. The first counterpart character may be determined as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character. The second counterpart character may be determined as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The method may further comprise returning the first and second counterpart characters. The method may further comprise identifying other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise identifying other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not result in any of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise determining other first counterpart characters. The other first counterpart characters may be determined as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard. The method may further comprise determining other second counterpart characters. The other second counterpart characters may be determined as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard. The returning may include returning one or more of the other first and second counterpart characters. The method may further comprise, prior to the returning, arranging the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions. The returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. Each area of the touchscreen may represent a character key. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa.
In another exemplary embodiment, a system is disclosed for processing multi-language data entry. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to identify an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not display one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user- editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The processor may be further operable to return the first and second counterpart characters. The processor may be further operable to identify other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section. The processor may be further operable to determine other first counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard. The processor may be further operable to determine other second counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard. The returning may include returning one or more of the other first and second counterpart characters. The processor may be further operable to, prior to the returning, arrange the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions. The returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. Each area of the touchscreen may represent a character key. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method comprises identifying an active language of a keyboard as a first language. The method may further comprise receiving a sequence of user actions performed on the keyboard. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The method may further comprise identifying a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section. The method may further comprise, responsive to the identifying the first set of user actions, determining a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard. The method may further comprise, responsive to the identifying the second set of user actions, determining a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard. The method may further comprise returning one or more characters of the first and second set of counterpart characters. The method may further comprise, prior to the returning, arranging the characters of the first and second set of counterpart characters based on the received sequence of user actions. The returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa.
In another exemplary embodiment, a system is described for processing multi-language interactions. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to identify an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user- editable section. The processor may be further operable to, responsive to the identifying the first set of user actions, determine a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard. The processor may be further operable to, responsive to the identifying the second set of user actions, determine a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard. The processor may be further operable to return one or more characters of the first and second set of counterpart characters. The processor may be further operable to, prior to the returning, arrange the characters of the first and second set of counterpart characters based on the received sequence of user actions. The returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa..
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method comprises identifying an active language of a keyboard as a first language. The method may further comprise receiving a sequence of user actions performed on the keyboard. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a quantity of user actions in the received user actions. The method may further comprise identifying a quantity of characters in the identified contiguously entered characters. The method may further comprise, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identifying a first user action and a second user action from among the received sequence of user actions. The first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section. The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The method may further comprise returning the first and second counterpart characters.
In another exemplary embodiment, a system is described for processing multi-language interactions. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to identifying an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a quantity of user actions in the received user actions. The processor may be further operable to identify a quantity of characters in the identified contiguously entered characters. The processor may be further operable to, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identify a first user action and a second user action from among the received sequence of user actions. The first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section. The processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The processor may be further operable to return the first and second counterpart characters.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method comprises identifying a first language as an active language of a keyboard and a second language as a non-active language of the keyboard. The method may further comprise identifying a plurality of user-entered keystrokes performed on keys of the keyboard. The method may further comprise identifying contiguously entered characters in the first language entered into a user-editable section resulting from the user- entered keystrokes. The method may further comprise determining counterpart characters in the second language based on the user-entered keystrokes. The determining may include, for each identified keystroke, identifying a character in the second language that can be entered into the user-editable section by the identified keystroke when the active language of the keyboard has been set (or configured) to the second language. The method may further comprise returning the counterpart characters. The returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters. The returning may include returning the resultant word.
In another exemplary embodiment, a system is described for processing multi-language interactions. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to identify a first language as an active language of a keyboard and a second language as a non-active language of the keyboard. The processor may be further operable to identify a plurality of user-entered keystrokes performed on keys of the keyboard. The processor may be further operable to identify contiguously entered characters entered into a user-editable section resulting from the user- entered keystrokes. The processor may be further operable to determine counterpart characters based on the user-entered keystrokes. The determining may include, for each identified keystroke, identifying a character in the second language enterable into the user-editable section by the identified keystroke when the active language of the keyboard is the second language. The method may further comprise returning the counterpart characters. The returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters. The returning may include returning the resultant word.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method comprises identifying, by a processor, contiguously entered characters entered into a user-editable section, including a first identified contiguously entered character. The method may further comprise determining, by the processor, a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character. The determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard. The determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area. The determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key. The first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language. The first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language. The first language may be a language different from the second language. The method may further include replacing, by the processor, the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character. The method may further comprise providing the keyboard, the keyboard having a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language. The first character key and the second character key may be the same physical keys. The first character key and the second character key may be different virtual keys.
In another exemplary embodiment, a system is described for processing multi-language interactions. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to identify contiguously entered characters entered into a user-editable section, including a first identified contiguously entered character. The processor may be further operable to determine a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character. The determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard. The determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area. The determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key. The first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language. The first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language. The first language may be a language different from the second language. The processor may be further operable to replace the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character. The keyboard may include a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language. The first character key and the second character key may be the same physical keys. The first character key and the second character key may be different virtual keys.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method comprises receiving a user selection of contiguously entered characters displayed in a user-editable section. The contiguously entered characters are characters displayed in a user-editable section. The method further comprises identifying the user-selected contiguously entered characters. The method further comprises identifying a language of the user-selected contiguously entered characters. The method further comprises determining counterpart characters of the user-selected contiguously entered characters. The determined counterpart characters may be characters in a second language different from the identified language of the selected contiguously entered characters. The determined counterpart characters may be characters that would be entered in the user-editable section if an active language of a keyboard is configured for the second language and keys of the keyboard corresponding to the identified user-selected contiguously entered characters are pressed. The method further comprises replacing the user-selected contiguously entered characters displayed in the user-editable section with one or more of the determined counterpart characters.
In another exemplary embodiment, a system is described for processing multi-language interactions. The system comprises a graphical display. The system further comprises a keyboard. The system further comprises a processor in communication with the graphical display and the keyboard. The processor may be operable to receive a user selection of contiguously entered characters displayed in a user-editable section. The processor may be further operable to identify the user-selected contiguously entered characters. The processor may be further operable to identify a language of the user-selected contiguously entered characters. The processor may be further operable to determine counterpart characters of the user-selected contiguously entered characters. The determined counterpart characters may include characters in a second language different from the identified language of the selected contiguously entered characters. The determined counterpart characters may include characters enterable in the user-editable section when an active language of a keyboard operable to enter characters into the user-editable section is configured for the second language. The processor may be further operable to replace the user selected contiguously entered characters entered into the user-editable section with one or more of the determined counterpart characters.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method may comprise receiving a sequence of user actions performed on a keyboard. The keyboard may be configured to have an active language to be a first language and an active language mode to be a first language mode. The first language mode may include one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the first language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a first user action from among the received sequence of user actions. The first user action may be a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the first language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise identifying a second user action from among the received sequence of user actions. The second user action may be a user action performed on the keyboard that was prevented from displaying a character in the first language in the user-editable section based on the first language mode rules. The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character. The first counterpart character may be determined as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character. The second counterpart character may be determined as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The method may further comprise returning the first and second counterpart characters. An exemplary embodiment of a system operable to perform the aforementioned method is also contemplated in the present disclosure.
In another exemplary embodiment, a method is described for processing multi-language interactions using a processor. The method may comprise receiving a sequence of user actions performed on a keyboard. The keyboard may have an active language set as a Thai language. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the Thai language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the Thai language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character. The first counterpart character may be determined as as a character in an English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the first user action is performed on the keyboard. The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character. The second counterpart character may be determined as as a character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the second user action is performed on the keyboard. The method may further comprise returning the first and second counterpart characters.
Brief Description of the Drawings
For a more complete understanding of the present disclosure, example embodiments, and their advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and:
FIGURE 1 is an example illustration of a dual language keyboard in the English and
Thai languages;
FIGURE 2A is example illustration of a keyboard having English and Thai as the configured languages and English as the activated language;
FIGURE 2B is example illustration of a keyboard having English and Thai as the configured languages and Thai as the activated language;
FIGURE 3A is an example embodiment of a method for processing multi-language data entry or interactions on a computing device;
FIGURE 3B is an example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display; FIGURE 3C is another example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display;
FIGURE 3D is another example illustration of an example embodiment of a virtual keyboard displayed on a touch-screen graphical display;
FIGURE 3E is an example embodiment of returning a resultant word based on a user selection of a suggested word selected in the example embodiment of Figure 3B;
FIGURE 3F is an example embodiment of a system for processing multi-language data entry or interactions on a computing device;
FIGURE 4 is another example embodiment of a method for processing multi-language data entry or interactions on a computing device;
FIGURE 5 is another example embodiment of a method for processing multi-language data entry or interactions on a computing device;
FIGURE 6 is an example illustration of user actions on a keyboard having active language as a first language and a returning of a resultant word in a second language;
FIGURE 7 is an example illustration of user actions on a keyboard having active language as a first language and returning of a resultant word in a second language; and
FIGURE 8 is an example illustration of user actions on a keyboard having active language as a first language, displaying characters resulting from the user actions, and returning a resultant word in a second language.
Although similar reference numbers may be used to refer to similar elements for convenience, it can be appreciated that each of the various example embodiments may be considered to be distinct variations.
Example embodiments will now be described hereinafter with reference to the accompanying drawings, which form a part hereof, and which illustrate example embodiments which may be practiced. As used in the disclosures and the appended claims, the terms "embodiment", "example embodiment", and "exemplary embodiment" do not necessarily refer to a single embodiment, although they may, and various example embodiments may be readily combined and interchanged, without departing from the scope or spirit of example embodiments. Furthermore, the terminology as used herein is for the purpose of describing example embodiments only and is not intended to be limitations. In this respect, as used herein, the term "in" may include "in" and "on", and the terms "a", "an", and "the" may include singular and plural references. Furthermore, as used herein, the term "by" may also mean "from", depending on the context. Furthermore, as used herein, the term "if may also mean "when" or "upon", depending on the context. Furthermore, as used herein, the words "and/or" may refer to and encompass any and all possible combinations of one or more of the associated listed items. Furthermore, as used herein, the word "enter" may also mean "hit", "touch", "tap", "contact", "key", "type", "press", "input", "slide", "swipe", or the like, when used to describe a user's interaction with a key (or button) of a keyboard. Furthermore, as used herein, the word "swipe" may also mean "slide", or the like, when used to describe a user's action of pressing down on a first key of a keyboard but releasing the press from a second key different from the first key.
Detailed Description
Presently, a growing number and variety of computer hardware, software, and/or services (hereinafter also collectively referred to as "solutions"), including those described above and herein, are being configurable for use in one or more specific languages, and such languages are selectable by a user. However, it is recognized in the present disclosure that such solutions may also present users with problems.
For example, a typical computing device, such as a laptop or tablet, having one of the versions of Microsoft Windows and Microsoft Word installed may be configurable for character entry in one of several specific languages. Such configurable language capabilities generally allow users to manually switch between or select from the several specific languages. For example, when the English language (such as "U.S." English) and the Thai language have been configured, a user creating or editing a Microsoft Word document may enter characters in the English language when the active language (or activated language) is first set to the English language. In such a situation, the Thai language will be a non-active language (or non-activated language). The user may also enter characters in the Thai language by switching (or setting) the active language to the Thai language. Such switching of the active language between the English language and the Thai language (and/or other configured languages) may be performed in one or more of a plurality of ways, such as by clicking on "Review" and "Languages" from the quick access toolbar of Microsoft Word and selecting the desired language; clicking on the language button on the bottom status bar of Microsoft Word and selecting the desired language; or pressing a designated button or key of the keyboard (hereinafter the "language key") to switch between languages. The aforementioned language key of the keyboard for switching the active language between configured languages may be the key of the keyboard located to the left of the number "1" button (and/or above the "Tab" key, and/or below the "Esc" key), but may also be located at different positions of the keyboard and/or may be configured or assigned to one or more other new or known keys of the keyboard.
Oftentimes, however, a user may forget to switch (or configure) the active language to the language desired by the user. Alternatively, a user may also not realize that the active language has been set (or switched or activated or defaulted) to a language different from the language desired by the user. When these or other similar situations occur, the user may proceed to perform keystrokes on keys (or enter or press keys) of a keyboard that the user expects or assumes to correspond to the characters of the language desired by the user. However, it is recognized in the present disclosure that doing so will result in the entering of characters in the active language that is different from the language desired by the user (that is, entering characters in an incorrect language or language mode or keyboard mode). For example, a user using a dual language keyboard (as partially illustrated in FIGURE 1) may forget to switch the active language from the Thai language to the English language. In such a situation, when the user attempts to enter English language characters (such as "d", "i", "a", "r", "r", "h", "e", and "a" for the desired English language word "diarrhea"), the user will inadvertently enter Thai language mode characters (such as the Thai language mode characters illustrated as 101a, 102a, 103a, 104a, 104a, 105a, 106a, and 103a in Figure 1) corresponding to the English language mode characters (such as the English language characters "d" 101b, "i" 102b, "a" 103b, "r" 104b, "r" 104b, "h" 105b, "e" 106b, and "a" 103b illustrated in Figure 1) that are also associated with (or assigned to) the same character keys (such as the character keys illustrated as 101, 102, 103, 104, 104, 105, 106, and 103 in Figure 1) as the English language mode characters. In respect to virtual keyboards, such character keys in different languages may not be exactly the same character keys (i.e., the same location on the keyboard), but rather a character key in a first language mode (such as English language) may cover a first area of the keyboard, a character key in a second language mode (such as Thai language) may cover a second area of the keyboard, and the first area may overlap at least a portion of the second area (such as some, most, or all of the second area). As used in the present disclosure, a character may refer to a letter (including consonants and vowels) of any alphabet of any language, an accent of any alphabet of any alphabet (if applicable), any symbol of any alphabet and/or language (if applicable), etc.
In the above example, the user may also continue attempting to enter additional user- desired English language characters/words until the user realizes that the active language was not set (or switched or activated or defaulted) to be the language desired by the user. Once the user realizes this, the user will be required to waste time and effort to delete the incorrectly entered characters (i.e., the characters entered in the language different from the language desired by the user). The user will also be required to switch the active language to the language desired by the user, and re-enter all of the characters in the language desired by the user. The problem becomes compounded if such an occurrence results in the user losing his/her train of thought and/or forgetting what the user wanted to enter.
In another example, a typical mobile computing device, such as an iOS-based iPhone, an Android-based device, or a Windows-based device, may have a virtual keyboard application installed and activated on the mobile computing device. For users requiring character entry in more than one language, such as in user-editable sections of instant messaging applications like WhatsApp, LINE, and WeChat, virtual keyboards will allow users to select an active language from among available configured languages. An example keyboard having English and Thai as the configured languages, English as the activated language, and Thai as the non-activated language is illustrated in FIGURE 2 A, and an example keyboard having English and Thai as the configured languages, Thai as the activated language, and English as the non-activated language is illustrated in FIGURE 2B. As shown in Figures 2A and 2B, a designated language key labelled "EN" (see Figure 2A) and "TH" (see Figure 2B) allows the user to switch the active language of the keyboard to the other configured language. Other keyboards that can switch between languages are also known, such as keyboards where the "space" key also functions as the language key and a user can switch between languages by sliding along the "space" key.
Users of such virtual keyboards oftentimes face similar problems as those described above and herein. Furthermore, users of virtual keyboards oftentimes encounter problems with continuous character/word entry in more than one language because the user is required to interact with (such as press) the language button (such as the language keys "EN" and "TH" illustrated in Figures 2A and 2B, respectively) to switch between languages. In this regard, since the user is required to perform the steps of locating the language key, interacting with the language key, and selecting a language desired by the user, the user will waste time and efforts in performing such steps, and may also lose his/her train of though and/or forget what the user wanted to enter. The problem becomes compounded if the computing device is slow to respond to the pressing of the language button (and switching of the languages), which may occur due to one or more reasons, such as insufficient processing power or memory.
Present example embodiments relate generally to multi-language interactions, including information input or data entry, and methods, systems, devices, and computer-readable mediums for same. Example embodiments may include those having a virtual and/or physical keyboard that, when installed in, integrated with, associated with, and/or connected to a computing device and/or processor, may solve many of the problems encountered in conventional methods described above and herein. As illustrated in FIGURE 3 A, an example embodiment of a method 300 for processing multi-language data entry or interactions, including those using a processor in communication with a keyboard having a plurality of keys, may comprise identifying one or more contiguously entered characters entered into a user-editable section (such as a user-editable section displayed on a graphical display by a processor) (e.g., action 310). As used in the present disclosure, the term "contiguously entered characters", "identified contiguously entered characters", "previously entered characters", or the like, may refer to one or more characters that have been entered into a user-editable section, such entered characters being contiguous to (or next to) one another. In example embodiments, contiguously entered characters may be characters entered (such as in response to user interactions (such as pressing) with a key of a keyboard) next to each other with or without any space or tab or other null characters entered between them. In example embodiments, contiguously entered characters may be characters that have been entered and displayed into a user-editable section, as well as those described herein. For example, if a user- editable section, such as user-editable section 320 in Figure 3B, includes the entered characters "Warner and Caden are very C]kf and the active cursor or present typing position 320' is after the character "f ' (wherein the active cursor or present typing position may be called a first position and the character "f ' may be in a position called the second position), then the identified contiguously entered characters may be the characters "C]kf 310b. The other words "Warner", "and", "Caden", "are", and "very" may be considered as previously entered words in example embodiments. Previously entered words will be further discussed in the present disclosure, including in the below section "example embodiments of returning a resultant word based on other considerations"'.
The method 300 may further comprise identifying a counterpart character of each identified contiguously entered character (e.g., action 320). Each identified contiguously entered character and its identified counterpart character may be characters associated with a same character key of a keyboard (such as a physical keyboard in communication with the processor). Each identified contiguously entered character and its identified counterpart character may also be characters associated with character keys of a keyboard that are considered as different character keys (such as virtual keys of some virtual keyboards in communication with the processor), wherein such different character keys of the keyboard are character keys located at the same, approximately the same, or corresponding location or area on the keyboard, keyboard displayed on a graphical display (or projected display or virtual display, which are also contemplated in the present disclosure for all example embodiments), and/or graphical display. For example, when a first character key associated with an identified contiguously entered character is displayed at a first location when a keyboard is in a first mode (such as a virtual keyboard in an English language keyboard mode in either "portrait" or "landscape" mode), a second character key displayed at a same, approximately the same, or corresponding location as the first location when the keyboard is in a second mode (such as a Thai language keyboard mode in either "portrait" or "landscape" mode) may be considered as the same character key as the first character key in example embodiments. Accordingly, a character associated with the second character key may be considered as the identified counterpart character. It is to be understood in the present disclosure that a corresponding location may be a same or approximately the location, and may also be a different location on the graphical display that is considered as the same or approximately the location, such as in situations wherein the first location (the character key of the identified contiguously entered character) is displayed while in a "portrait view" and the second location is displayed while a "landscape view" (such as when a mobile computing device having a rectangular display is rotated from landscape to portrait view, and vice versa, and the computing device supports such display rotation adaptation), and vice versa. As used in the present disclosure, such different character keys (displayable in different modes, such as in different character modes, different keyboard modes, different language modes, etc.) that are displayed at the same, approximately the same, or corresponding location shall be considered as being "a same character key of the keyboard", "a same character key", "a same key", or the like, in example embodiments without departing from the teachings of the present disclosure. For example, for the keyboard illustrated in Figure 1 (which may be a physical or virtual keyboard), if the identified contiguously entered character is the English language character "d" 101b (or "D") associated with the character key 101 in the English language keyboard mode, the Thai language character 101a (or 101c) may be also be considered as being associated with the same character key 101 and therefore considered to be the identified counterpart character. As another example, for the keyboards illustrated in Figures 2A and 2B (which may be virtual or physical keyboards), if the identified contiguously entered character is the English language character "d" 101b (as illustrated in Figure 2 A) associated with the character key lOlx in the English language keyboard mode, the Thai language character 101a (as illustrated in Figure 2B) associated with the character key lOly in the Thai language keyboard mode may be considered as the counterpart character to "d" 101b and the character keys lOlx and lOly may be considered as the same character key since the character keys lOlx and lOly are at the same, approximately the same, or corresponding location. As used in the present disclosure, the term "counterpart character", "identified counterpart character", "counterpart character of the identified contiguously entered character", or the like, may refer to another character assigned to (or associated with) a same character key as the identified contiguously entered character. That is, a counterpart character of each identified contiguously entered character may be identified, wherein each identified contiguously entered character and its identified counterpart character are characters assigned to a same character key of a keyboard associated with the processor. For example, the contiguously entered character and its counterpart character may be characters assigned to a same character key, but may be characters in different language(s), language mode(s), character mode(s), and/or keyboard mode(s). In example embodiments, a counterpart character of the contiguously entered character may not be entered or displayed (for example, not entered into the user-editable section) when contiguously entered characters are entered. In example embodiments, a counterpart character of the contiguously entered character may be a character of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered character. In example embodiments, the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key (which, as described above, may be a character key that is considered as a different character key as the character key associated with the identified contiguously entered character, but if such character key is located at the same, approximately the same, or corresponding location as the character key associated with the identified contiguously entered character, then such character key shall be considered as the same character key as the character key associated with the identified contiguously entered character in example embodiments). The another character associated with the identified character key may be a character different from the identified contiguously entered character.
For example, as illustrated in FIGURE 3B, a computing device 301 may be configured for an English language mode and a Thai language mode (and any other mode, such as a different language mode, keyboard mode, character mode, etc.). The English language mode may be any mode/keyboard in which the mode/keyboard 302 is configured for English language users, and such mode/keyboard 302 may include a QWERTY keyboard or any other English language mode/keyboard. The Thai language mode may be any mode keyboard in which the mode/keyboard is configured for Thai language users, and such mode/keyboard may include any Thai language mode/keyboard. For a computing device 301 with keyboard 302 configured in such a manner, if the contiguously entered characters are characters entered in the English language mode, then the counterpart characters of the contiguously entered characters may be the characters in the Thai language mode (or any other language mode) assigned to (or associated with) the same character keys as the contiguously entered characters (the characters entered in the English language mode). For the example above wherein the contiguously entered characters 310b entered into the user-editable section 320 are the English language mode characters "C" 311b (associated with key 311 and/or a character key considered to be the same key as key 311, as described above and herein), "]" 312b (associated with key 312 and/or a character key considered to be the same key as key 312, as described above and herein), "k" 313b (associated with key 313 and/or a character key considered to be the same key as key 313, as described above and herein), and "f 314b (associated with key 314 and/or a character key considered to be the same key as key 314, as described above and herein), the counterpart characters 310a of the contiguously entered characters 310b may be the Thai language mode character 311a (associated with key 31 1 and/or a character key considered to be the same key as key 311, as described above and herein) being a counterpart character to the contiguously entered character "C" 311b, the Thai language mode character 312a (associated with key 312 and/or a character key considered to be the same key as key 312, as described above and herein) being a counterpart character to the contiguously entered character "]" 312b, the Thai language mode character 313a (associated with key 313 and/or a character key considered to be the same key as key 313, as described above and herein) being a counterpart character to the contiguously entered character "k" 313b, and the Thai language mode character 314a (associated with key 314 and/or a character key considered to be the same key as key 314, as described above and herein) being a counterpart character to the contiguously entered character "f ' 314b.
As another example, as illustrated in FIGURE 3C, if contiguously entered characters 310b entered by a keyboard 302 of a computing device 301 into the user-editable section 320 are the English language mode characters "9" 315b (associated with key 315 and/or a character key considered to be the same key as key 315, as described above and herein), "i" 316b (associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein), 317b (associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein), and "0" 318b (associated with key 318 and/or a character key considered to be the same key as key 318, as described above and herein), then the counterpart characters 310a of the contiguously entered characters 310b may be the Thai language mode characters 315a (associated with key 315 and/or a character key considered to be the same key as key 315, as described above and herein), 316a (associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein), 317a (associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein), and 318a (associated with key 318 and/or a character key considered to be the same key as key 318, as described above and herein) corresponding to the English language mode characters "9" 315b, "i" 316b, ";" 317b, and "0" 318b. The counterpart characters 310a of the contiguously entered characters 310b may also be other Thai characters, such as characters 316c (associated with key 316 and/or a character key considered to be the same key as key 316, as described above and herein) and 317c (associated with key 317 and/or a character key considered to be the same key as key 317, as described above and herein), assigned to or associated with same character keys.
As another example, as illustrated in FIGURE 3D, if the contiguously entered characters entered by a keyboard 302 of a computing device 301 into the user-editable section 320 are the Thai language mode characters 319a (associated with key 319 and/or a character key considered to be the same key as key 319, as described above and herein), 320a (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 320a (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 321a (associated with key 321 and/or a character key considered to be the same key as key 321 , as described above and herein), and 322a (associated with key 322 and/or a character key considered to be the same key as key 322, as described above and herein), then the counterpart characters of the contiguously entered characters may be the English language mode characters "r" 319b (associated with key 319 and/or a character key considered to be the same key as key 319, as described above and herein), "o" 320b (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), "o" 320b (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), "m" 321b (associated with key 321 and/or a character key considered to be the same key as key 321, as described above and herein), and "s" 322b (associated with key 322 and/or a character key considered to be the same key as key 322, as described above and herein). The counterpart characters of the contiguously entered characters may also be the other Thai language mode characters 319c (associated with key 319 and/or a character key considered to be the same key as key 319, as described above and herein), 320c (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 320c (associated with key 320 and/or a character key considered to be the same key as key 320, as described above and herein), 321c (associated with key 321 and/or a character key considered to be the same key as key 321, as described above and herein), and 322c (associated with key 322 and/or a character key considered to be the same key as key 322, as described above and herein) assigned to or associated with the same character key as "r" 319b, V 320b, "o" 320b, "m" 321b, and "s" 322b.
In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration and/or more than one character of a language is assigned to or associated with the same character key, as shown in the examples above).
It is to be understood in the present disclosure that the active language (or activated language mode), configured languages (or configured language modes), keyboards (or keyboard modes), characters (or character modes), the contiguously entered characters, the counterpart characters to the contiguously entered characters, and/or any other character(s), language(s), and mode(s) described in the present disclosure may be languages, characters, and/or modes in languages, characters, and/or modes other than those pertaining to the English and/or Thai languages without departing from the scope of the present disclosure. For example, other languages, characters, and/or modes, including keyboards, may include those that pertain to French, Spanish, any of the Chinese dialects, Japanese, Korean, Russian, Indian, Cambodian, Laotian, Sanskrit, and/or any other languages.
The method 300 may further comprise searching a subset of a database for a resultant word based on the identified counterpart characters (e.g., action 330). In example embodiments, the subset of the database may comprise words having one or more of the identified counterpart characters.
The method 300 may further comprise returning the resultant word (e.g., action 340). In example embodiments, the resultant word may be returned as a suggested word, such as the 310a in Figures 3B-D. In example embodiments, more than one resultant and/or suggested words may be returned, such as those displayed next to 310a in Figures 3B-D and those that may be further displayed, such as when a user clicks on the symbol (shown as a triangle) depicting a drop-down list in Figures 3B-D. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user. For example, the contiguously entered characters "C]kf 310b in the user-editable section 320 illustrated in Figure 3B may be replaced by the suggested word 310a illustrated in Figure 3B when the suggested word 310a is selected, as illustrated in FIGURE 3E. In example embodiments, one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered. In example embodiments, one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
It is to be understood in the present disclosure that the number (or quantity) and/or sequence (or order) of characters, such as the entered characters, displayed characters, contiguously entered characters, counterpart characters of the contiguously entered characters, and characters in search queries (such as a first input query and/or second input query, as described in the present disclosure) may be the same as or different from the number and/or sequence of characters of a resultant word (such as a first word, a second word, a first resultant word, a second resultant word, a final resultant word, and a suggested word, as described and used in the present disclosure) without departing from the scope of the present disclosure.
It is also to be understood that example embodiments, including those taught in the present disclosure, of entering characters and/or words, such as the entering of contiguously entered characters and/or previously entered characters and/or words, may be performed, in part or in whole, using voice, such as via one or more of the methods taught in U.S. Patent Publication No. 2014/0298177, which claims priority to PCT Application No. PCT/TH2013/000012, both of which are incorporated herein by reference in their entireties. For example, referring back to Figure 3B, if contiguously entered characters are the English language mode characters "C" 311b, "]" 312b, "k" 313b, and "f 314b, and a spoken word pronounced "chalad" (which is a Thai language word meaning "smart") is received (such as in response to a user interaction with a character key in an abnormal operating manner, as taught in the aforementioned patent applications, and/or in response to a user interaction with a dedicated voice button) after the contiguously entered character "f 314b (or any other contiguously entered character), then example embodiments may perform one or more the following actions: identify one or more of the characters "C" 311b, "]" 312b, "k" 313b, and "f 314b as the identified contiguously entered characters; identify one or more of the Thai language mode characters 311a, 312a, 313a, and 314a as the identified counterpart characters of the one or more identified contiguously entered characters; perform a search of a subset of a database based on one or more of the identified counterpart characters and the received spoken word; select a resultant word based on the search; and return the resultant word. The subset may comprise one or more of the identified counterpart characters. Further, one or more of the identified counterpart characters may be amended when one or more of the identified counterpart characters is inconsistent with the received spoken word. It is to be understood in the present disclosure that a second search of a second subset of a database (or a subset of a second database) may also be performed based on one or more of the identified contiguously entered characters and the received spoken word in example embodiments. In such an example embodiment, the selecting of the resultant word may be based on one or more of the searches.
FIGURE 3F illustrates an example embodiment of a system 301a for processing multi- language data entry or interactions and another system 301b for processing Multilanguage data entry or interactions. The systems 301a and 301b may each comprise a graphical display 330a and 330b, a database (such as 340), and a keyboard 302a and 302b. The keyboard may be a physical keyboard 302b, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device or processor. The keyboard 302a may also be a virtual or soft keyboard, such as those available or installable on computing devices. The keys of the keyboard 302a and 302b may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures. The graphical display 330a and 330b may be any display, including a touch-screen display, a projected display, and/or a display interactible via gestures.
The systems 301a and 301b may further comprise a processor (not shown) operable to communicate with the graphical display 330a and 330b, respectively, the database, and the keyboard 302a and 302b, respectively.
The processor may be operable to display a user-editable section 320 on the graphical display 330a and 330b. The processor may be further operable to identify one or more contiguously entered characters entered into the user-editable section 320. Contiguously entered characters may include those contiguously entered characters described above and herein. The processor may be further operable to identify a counterpart character of each identified contiguously entered character. Each identified contiguously entered character and its identified counterpart character may be characters associated with a same character key of the keyboard. Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein. For example, the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
The processor may be further operable to perform a search of a subset of the database for a resultant word based on one or more of the identified counterpart characters. In example embodiments, the subset of the database may comprise words having one or more of the counterpart characters. It is to be understood in the present disclosure that the database may be a database residing in a computing device (such as those illustrated in Figures 3B-E) and/or residing remotely (such as in a remote database server 340 and/or in the cloud) and in communication with the processor (or computing device) via a network 350. It is also to be understood in the present disclosure that the processor may be a processor residing in a computing device (such as those illustrated in Figure 3B-E) and/or residing remotely (such as processor 360).
The processor may be further operable to display the resultant word on the graphical display 330a and 330b. In example embodiments, the resultant word may be displayed as a suggested word on the graphical display 330a and 330b. In example embodiments, the suggested word may be a user-interactible section outside of (or between or as an overlay over) the keys of the keyboard. In example embodiments, more than one resultant word and/or suggested word may be displayed on the graphical display 330a and 330b. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word. In example embodiments, the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered. In example embodiments, the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, the processor may perform such automatic replacing and/or amending of contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
It is to be understood in the present disclosure that example embodiments of processing of multi-language data entry and/or interactions to return a resultant word, including those example embodiments described above and herein, may be performed in one or more of a plurality of ways and in response to one or more conditions and/or user actions/interactions, including returning a resultant word in response to a received user interaction (such as with a key of a keyboard, touch of a touchscreen graphical display, voice commands, gesture commands, interaction with a peripheral device, such as a right-click of a mouse, and the like) and/or in response to a determination that a received user interaction is a functional interaction (which will be further described in the present disclosure, including section "Example embodiments of returning a resultant word in response to a determination that a received user interaction with a key is a functional interaction (e.g., Figure 5)").
Example embodiments of returning a resultant word by performing two or more searches (e.g., Figure 4).
As illustrated in FIGURE 4, another example embodiment of a method 400 for processing multi-language data entry or interactions by a processor may comprise identifying one or more contiguously entered characters entered into a user-editable section (e.g., action 410) displayed by a processor. Contiguously entered characters may include those contiguously entered characters described above and herein.
The method may further comprise identifying a counterpart character of each contiguously entered character (e.g., action 420). Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein. In example embodiments, the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys of a keyboard as the one or more contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration). In example embodiments, the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key. The another character associated with the identified character key may be a character different from the identified contiguously entered character.
The method may further comprise forming a first input query (e.g., action 422). In example embodiments, the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
The method may further comprise forming a second input query (e.g., action 424). In example embodiments, the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode). In example embodiments, the second language (or second language mode) may be different from the first language (or first language mode).
The method may further comprise performing a first search of a subset of a first database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters (e.g., action 430). In example embodiments, the subset of the first database may comprise words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
The method may further comprise performing a second search of a subset of a second database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters (e.g., action 432). In example embodiments, the subset of the second database may comprise words having one or more characters of the second input query and/or one or more of the identified counterpart characters. It is to be understood in the present disclosure that the first database and the second database may be different or separate databases, or the same database. Furthermore, the subset of the first database and the subset of the second database may be different or separate subsets, or the same subset.
The method may further comprise selecting a resultant word based on the first and second searches (e.g., action 434). In example embodiments, the selecting the resultant word may be based on one or more of a plurality of conditions or considerations, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. The method may further comprise returning the resultant word (e.g., action 440). In example embodiments, the resultant word may be returned as a suggested word. In example embodiments, more than one resultant word and/or suggested word may be returned. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user. In example embodiments, one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered. In example embodiments, one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
In an example embodiment, a system for processing multi-language data entry or interactions, such as the system illustrated in Figure 3E, may comprise a graphical display, a database, and a keyboard. The keyboard may be a physical keyboard, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device. The keyboard may also be a virtual or soft keyboard, such as those available or installable on computing devices. The keys of the keyboard may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures.
The system may further comprise a processor operable to communicate with the graphical display, the database, and the keyboard.
The processor may be operable to display a user-editable section on the graphical display. The processor may be further operable to receive, at a first position of the user-editable section displayed on the graphical display, a user interaction with a first character key of the keyboard. In example embodiments, the first character key of the keyboard may be any key of the keyboard, including character keys representing characters. In example embodiments, the first position of the user-editable section may be a cursor position and/or an active position of the user-editable section that receives the user interaction with the first character key. The processor may be operable to identify one or more contiguously entered characters entered into the user-editable section. Contiguously entered characters may include those contiguously entered characters described above and herein.
The processor may be further operable to identify a counterpart character of each identified contiguously entered character. Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein. In example embodiments, the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
The processor may be further operable to form a first input query. In example embodiments, the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
The processor may be further operable to form a second input query. In example embodiments, the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode). In example embodiments, the second language (or second language mode) may be different from the first language (or first language mode).
The processor may be further operable to perform a first search of a first subset of the database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters. In example embodiments, the first subset of the database comprises words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
The processor may be further operable to perform a second search of a second subset of the database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters. In example embodiments, the second subset of the database comprises words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
The processor may be further operable to select a resultant word based on the first and second searches.
The processor may be further operable to display the resultant word on the graphical display. In example embodiments, the resultant word may be displayed as a suggested word on the graphical display. In example embodiments, the suggested word may be a user-interactible section outside of (or between) the keys of the keyboard. In example embodiments, more than one resultant word and/or suggested word may be displayed on the graphical display. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word. In example embodiments, the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered. In example embodiments, the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, the processor may perform such automatic replacing and/or amending of the contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
Example embodiments of returning a resultant word in response to a determination that a received user interaction with a key is a functional interaction (e.g.. Figure 5).
As illustrated in FIGURE 5, another example embodiment of a method 500 for processing multi-language data entry or interactions by a processor may comprise receiving a user interaction at a first position of a user-editable section (e.g., action 502). In example embodiments, the first position of the user-editable section may be a cursor position, an active position, a present position, or the like, of the user-editable section that receives the user interaction.
The method may further comprise determining whether the received user interaction is a character input interaction or a functional interaction (e.g., action 504). As used in the present disclosure, the term "character input interaction" shall refer to any interaction with a key of a keyboard that results in a character being entered or input, such as entering or inputting a character into a user-editable section. Furthermore, as used in the present disclosure, the term "functional interaction" shall refer to any user interaction that causes additional actions to be performed, such as actions 510, 520, 522, 524, 530, 532, 534, and 540. In example embodiments, a functional interaction may be a press-and-hold of a character key for a duration greater than a typical typing duration, wherein a typical typing duration may be any duration that a character key can be pressed that will result in only one character assigned to or associated with the character key being entered. In example embodiments, a functional interaction may be any abnormal interaction with one or more keys, such as a sliding action, gliding action, multi- tapping action, press-and-rotate action, etc. In example embodiments, a functional interaction may be an interaction with a designated key of the keyboard, such as a new key or a known key. In example embodiments, a functional interaction may be determined when a predefined time period has lapsed after receiving a user interaction with a key of the keyboard and no further user interactions with the keyboard are received. In example embodiments, a functional interaction may be a selecting of one or more characters displayed in a user-editable section, or the like, such as by highlighting the character(s), performing one or more touches on a touchscreen, etc. In example embodiments, the received user interaction may be any interaction with a key of the keyboard (such as a pressing of a character key or a designated key), an interaction with a peripheral device in communication with the computing device (such as a right-click of a mouse), a touching of a touchscreen graphical display of or in communication with the computing device (such as a tap or prolonged tap of the touchscreen graphical display at the first position of a user-editable section), a voice command (such as a "correct" command), gesture commands, etc. It is to be understood in the present disclosure that a functional interaction may also include interactions with the "Shift" key, the "Ctrl" key, the "Caps Lock" key, the "Alt" key, the language key, "Backspace" key, the "Delete" key, the "Enter" key, one of the function keys Fl to F12, and/or any other interaction that does not necessarily result in the entering of a character.
When the received user interaction is determined to be the functional interaction, the method may further comprise identifying one or more contiguously entered characters entered starting at a second position of the user-editable section (e.g., action 510). Contiguously entered characters may include those contiguously entered characters described above and herein. In example embodiments, the second position may be a position contiguous to the first position. For example, the second position may be a position to the left or right of the first position, such as for languages that read (and write/type) horizontally. As another example, the second position may be a position above or below the first position, such as for languages that read (and write/type) vertically. In example embodiments, the first and second positions are next to each other without any other characters, space, or tab between the first and second positions. For example, if a user-editable section has received four character entries and the user interaction with the first character key is received, then the second position may be the position of the fourth character entry, the first position may be the position immediately next to (or following) the fourth character entry, and the contiguously entered characters may be one or more of the received four character entries.
When the received user interaction is determined to be the functional interaction, the method may further comprise identifying a counterpart character of each contiguously entered character (e.g., action 520). Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein. In example embodiments, the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration). In example embodiments, the identifying of the counterpart characters of each identified contiguously entered character may comprise identifying a character key of the keyboard associated with the identified contiguously entered character, and identifying the counterpart character as being another character associated with the identified character key. The another character associated with the identified character key may be a character different from the identified contiguously entered character.
When the received user interaction is determined to be the functional interaction, the method may further comprise forming a first input query (e.g., action 522). In example embodiments, the first input query may comprise one or more of the contiguously entered characters. In example embodiments, the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
When the received user interaction is determined to be the functional interaction, the method may further comprise forming a second input query (e.g., action 524). In example embodiments, the second input query may comprise one or more of the counterpart characters of the contiguously entered characters. In example embodiments, the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode). In example embodiments, the second language (or second language mode) may be different from the first language (or first language mode).
When the received user interaction is determined to be the functional interaction, the method may further comprise performing a first search of a subset of a first database based on the first input query and/or one or more of the identified contiguously entered characters (e.g., action 530). In example embodiments, the subset of the first database may comprise words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
When the received user interaction is determined to be the functional interaction, the method may further comprise performing a second search of a subset of a second database based on the second input query and/or one or more of the identified counterpart characters (e.g., action 532). In example embodiments, the subset of the second database may comprise words having one or more characters of the second input query and/or one or more of the identified counterpart characters.
When the received user interaction is determined to be the functional interaction, the method may further comprise select a resultant word based on the first and second searches (e.g., action 534). In example embodiments, the selecting the resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like.
When the one or more contiguously entered characters are identified, the method may further comprise returning the resultant word (e.g., action 540). In example embodiments, the resultant word may be returned as a suggested word. In example embodiments, more than one resultant word and/or suggested word may be returned. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, one or more of the contiguously entered characters may be replaced by the suggested or resultant word (or one or more characters of the suggested or resultant word) when the suggested or resultant word is selected by the user. In example embodiments, one or more of the contiguously entered characters may be amended to result in the suggested or resultant word being entered. In example embodiments, one or more of the contiguously entered characters may be automatically replaced with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, such automatic replacing and/or amending of the contiguously entered characters may be based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
In an example embodiment, a system for processing multi-language data entry or interactions, such as the system illustrated in Figure 3E, may comprise a graphical display, a database, and a keyboard. The keyboard may be a physical keyboard, such as those integrated in a laptop or those that may communicate, either via wires or wirelessly, to a computing device. The keyboard may also be a virtual or soft keyboard, such as those available or installable on computing devices. The keys of the keyboard may be interacted with by a user in one or more of a plurality of ways, including, but not limited to, entering, pressing, tapping, press-and-holding, swiping, keying, press-and-rotating, via voice commands, and/or via gestures.
The system may further comprise a processor operable to communicate with the graphical display, the database, and the keyboard.
The processor may be operable to display a user-editable section on the graphical display. The processor may be further operable to receive, at a first position of the user-editable section displayed on the graphical display, a user interaction with a key of the keyboard. In example embodiments, the first position of the user-editable section may be a cursor position and/or an active position of the user-editable section that receives the user interaction with the key.
The processor may be further operable to determine whether the received user interaction is a character input interaction or a functional interaction.
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to identify one or more contiguously entered characters entered starting at a second position of the user-editable section. Contiguously entered characters may include those contiguously entered characters described above and herein. In example embodiments, the second position is a position contiguous to the first position. For example, the second position may be a position to the left or right of the first position, such as for languages that read (and write/type) horizontally. As another example, the second position may be a position above or below the first position, such as for languages that read (and write/type) vertically. In example embodiments, the first and second positions are next to each other without any other characters, space, or tab between the first and second positions.
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to identify a counterpart character of each contiguously entered character. Counterpart characters of the contiguously entered characters may include those counterpart characters of the contiguously entered characters described above and herein. In example embodiments, the counterpart characters of the contiguously entered characters may be one or more other characters assigned to or associated with same character keys as the one or more contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language (or language mode or keyboard mode) different from the language (or language mode or keyboard mode) of the contiguously entered characters. In example embodiments, the counterpart characters of the contiguously entered characters may be characters of a language that is the same as the language of the contiguously entered characters (such as in situations wherein the keys of each keyboard are arranged in a different configuration).
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to form a first input query. In example embodiments, the first input query may comprise one or more of the contiguously entered characters, and the one or more of the contiguously entered characters may be in a first language (or characters from a first language mode).
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to form a second input query. In example embodiments, the second input query may comprise one or more of the counterpart characters of the contiguously entered characters, and the one or more counterpart characters of the contiguously entered characters may be in a second language (or characters from a second language mode). In example embodiments, the second language (or second language mode) may be different from the first language (or first language mode).
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to perform a first search of a first subset of the database for a first word (such as in the first language) based on the first input query and/or one or more of the identified contiguously entered characters. In example embodiments, the first subset of the database comprises words having one or more characters of the first input query and/or one or more of the identified contiguously entered characters.
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to perform a second search of a second subset of the database for a second word (such as in the second language) based on the second input query and/or one or more of the identified counterpart characters. In example embodiments, the second subset of the database comprises words having one or more characters of the second input query and/or one or more of the identified counterpart characters. When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to select a resultant word based on the first and second searches.
When the processor determines that the received user interaction is the functional interaction, the processor may be further operable to display the resultant word on the graphical display. In example embodiments, the resultant word may be displayed as a suggested word on the graphical display. In example embodiments, the suggested word may be a user-interactible section outside of (or between) the keys of the keyboard. In example embodiments, more than one resultant word and/or suggested word may be displayed on the graphical display. In example embodiments, the suggested word(s) may be selectable by the user. In example embodiments, the processor may be operable to replace one or more of the contiguously entered characters with the suggested or resultant word (or one or more characters of the suggested or resultant word) when the user selects the suggested or resultant word. In example embodiments, the processor may be operable to amend one or more of the contiguously entered characters to result in the suggested or resultant word being entered. In example embodiments, the processor may automatically replace one or more of the contiguously entered characters with the resultant word (or one or more characters of the resultant word), that is, without requiring the user to select the resultant word. In example embodiments, the processor may perform such automatic replacing and/or amending of the contiguously entered characters based on a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, and/or the like. In example embodiments, one or more of the contiguously entered characters may be replaced by the identified counterpart characters.
Example embodiments of returning a resultant word based on other considerations.
In example embodiments, including those described above and herein, the searching, forming an input query, selecting, suggesting, and/or returning of the resultant word may be based on a context of previously entered characters and/or previously entered words. That is, example embodiments may first identify one or more previously entered words entered (and displayed) prior to the identified one or more contiguously entered characters. Once the one or more previously entered words have been identified, example embodiments may search for, select, and/or return the resultant word based on a contextual best match with the identified one or more previously entered words. In example embodiments, the one or more previously entered words may need to be translated into a different language (such as a language of the contiguously entered characters and/or the counterpart characters) in order to find a resultant word being a contextual best match based on the one or more contiguously entered characters and/or the counterpart characters to the contiguously entered characters. In example embodiments, the resultant word may need to be translated into a different language (such as the language of the previously entered words, the contiguously entered characters, and/or the counterpart characters) in order to find a resultant word being a contextual best match based on the one or more contiguously entered characters and/or the counterpart characters to the contiguously entered characters.
In example embodiments, including those described above and herein, the searching, forming an input query, selecting, suggesting, and/or returning of the resultant word may also be based user history, other users' histories, a dictionary, a thesaurus, internet searches, specialized databases, messages exchanged with other users, voice messages (such as voice chats), images (such as images exchanged in chats), etc.
In example embodiments, including those described above and herein, the activated language (or language mode or keyboard mode) of the computing device (or the keyboard, the current application running on the computing device, etc.) may be switched to the language (or language mode or keyboard mode) of the returned resultant word. For example, if the activated language (or language mode or keyboard mode) is the English language (or English language mode or English keyboard mode) and the returned resultant word is a Thai language word, then example embodiments may switch the activated language (or language mode or keyboard mode) to the Thai language (or Thai language mode or Thai keyboard mode).
In another example embodiment, the computing device (or the keyboard, the current application running on the computing device, etc.) may not have an activated language (or language mode or keyboard mode). Instead, the computing device will perform one or more of the example embodiments, such as those described above and herein, for some or all characters/words entered by the user.
Example embodiments of replacing contiguously entered characters based on identifying user interactions
In example embodiments, including those described above and herein, a method for processing multi-language data entry using a processor may comprise identifying an active language of the keyboard as a first language. The active language of the keyboard (called the first language) may be any language. For example, the active language of the keyboard may be identified as the English language, and the keyboard having the active language as the English language may comprise keys as shown in Figure 2A. Similarly, the active language of the keyboard may be identified as the Thai language, and the keyboard having the active language as the Thai language may comprise keys as shown in Figure 2B. In such an example, when the active language of the keyboard is the English language, a user action performed on character key lOlx (see Figure 2 A) may result in the English language character "d" 101b being displayed in a user-editable section. If, however, the active language of the keyboard is the Thai language, a user action (i.e., a user action that is the same as or functionally equivalent to the user action performed on character key lOlx) performed on character key lOly (which may be the same physical or virtual character key as character key lOlx, and/or overlaps at least a portion of the character key lOlx) may result in the Thai language character 101a (see Figure 2B) being displayed in the user-editable section. The keyboard may be a virtual keyboard or a physical keyboard.
In example embodiments, a virtual keyboard for a touchscreen computing device (such as a mobile device) or a physical keyboard integrated with or in wired or wireless communication with a computing device (such as a desktop computer, laptop computer, mobile computing device, media device, wearable computing device, etc.) may be configurable for several different languages (such as English language, Thai language, Japanese language, etc.), and may have an active language as the English language. In this situation, all other languages may be considered as non-active languages, and each of these non-active languages may be selectable (such as by commanding the keyboard via a language button, action, etc.) by the user to be the active language of the keyboard.
The method may further comprise receiving a sequence of user actions performed on a keyboard. For example, the active language of the keyboard (virtual or physical) may be identified as the Thai language and a user may perform a sequence of user actions on the keyboard, such as pressing, sliding, or touching on character keys (virtual or physical keys) 811, 812, 813, 814, 815, and 816 (see FIGURE 8). Such sequence of user actions may be received by the processor. In example embodiments, a quantity of the user actions for the sequence of user actions may be identified by the processor. In the above example, the quantity of the user actions may be six user actions.
The method may further comprise identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. Such identifying may be performed by the processor after (or in response to) the receiving of all user actions in the sequence of user actions and/or during the receiving of the user actions in the sequence of user actions. In example embodiments, such identifying may be performed by the processor after (or in response to) the receiving of all user actions in the sequence of user actions. It is recognized in the present disclosure that certain languages, such as the Thai language, may have language formats, rules, and/or syntaxes that do not allow (or would be considered improper to allow) certain characters to be entered following (or before) certain other characters. In this regard, keyboards, user-editable sections, applications, and/or websites try to ensure conformity to such language formats (or syntaxes or rules), and correspondingly do not allow the entering and/or displaying of certain characters after (or prior to) certain other characters (and/or identify such characters entered and/or displayed after or prior to certain other characters as being of improper or unrecognized formats, syntaxes, or rules, or incorrectly entered). For example, referring back to the above example and Figure 8, the identified contiguously entered characters displayed in the user-editable section (see 810a) collectively resulting from the receiving of the sequence of user actions (i.e., six user actions) may be the four Thai language characters 811a, 812a, 813a, and 816a (and not the six Thai language characters 81 1a, 812a, 813a, 814a, 815a, and 816a). Specifically, the received user actions on the character keys 811 , 812, and 813 may result in the Thai language characters 81 1a, 812a, and 813a being entered and displayed in the user-editable section since there is/are no language formats (or syntaxes or rules) preventing them from being contiguously entered in such a sequence. However, in respect to the received user action on the character key 814 following the received user action on the character key 813, as the Thai language character 814a is not allowed to be entered following Thai language character 813a, the received user action performed on character key 814 will not result in a character (Thai language character 814a or any other Thai language character) being displayed in the user-editable section. Similarly, as the Thai language character 815a is not allowed to be entered following Thai language character 813a, the received user action performed on character key 815 will not result in a character (Thai language character 815a or any other Thai language character) being displayed in the user-editable section. The received user action performed on character key 816, however, will result in the Thai language character 816a being displayed in the user-editable section since there are no language formats (or syntaxes or rules) preventing the Thai language character 816a from following the Thai language character 813a. Other examples may be readily identified, such as a situation in which the active language of the keyboard is the Thai language and a first user action of the received sequence of user actions is performed on character key 814 or 815.
In example embodiments, the identifying of the contiguously entered characters may be performed based on or triggered by a user action (such as a selecting or highlighting (such as by using a mouse, other peripheral input device, or one or more touches on a touchscreen) of the contiguously entered characters, pressing of a space or return key after the sequence of user actions has been received, etc.) or non-action (such as a lapse of a certain time, such as one second).
The method may further comprise identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions. For the above example, the first user action identified by the processor may be the pressing of the character key 81 1, which resulted in the displaying of the Thai language character 811a in the user-editable section. As another example, the first user action identified by the processor may be the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section. As another example, the first user action identified by the processor may be the pressing of the character key 816, which resulted in the displaying of the Thai language character 816a in the user-editable section. In example embodiments, the identifying of the first user action from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise identifying other first user action(s) from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all user actions in the sequence of user actions. For the above example, when the first user action is the pressing of the character key 81 1, which resulted in the displaying of the Thai language character 81 1a in the user- editable section, the other first user action(s) identified by the processor may be the pressing of the character key(s) 812, 813, and/or 816, which resulted in the displaying of the Thai language characters 812a, 813a, and 816a, respectively. As another example, when the first user action is the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section, the other first user action(s) identified by the processor may be the pressing of the character key(s) 81 1, 813, and/or 816, which resulted in the displaying of the Thai language characters 811a, 813a, and 816a, respectively. As another example, when the first user action is the pressing of the character key 816, which resulted in the displaying of the Thai language character 816 in the user-editable section, the other first user action(s) identified by the processor may be the pressing of the character key(s) 811, 812, and/or 813, which resulted in the displaying of the Thai language characters 81 1a, 812a, and 813a, respectively. In example embodiments, the identifying of the other first user action(s) from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one (or any) of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. For the above example, the second user action identified by the processor may be the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section. As another example, the second user action identified by the processor may be the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section. In example embodiments, the identifying of the second user action from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise identifying other second user action(s) from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not result in any of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions. For the above example, when the second user action is the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section, the other second user action identified by the processor may be the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character). As another example, when the second user action is the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section, the other second user action identified by the processor may be the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character). In example embodiments, the identifying of the other second user action(s) from among the received sequence of user actions may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character. The first counterpart character may be determined, by the processor, as a character in a second language (i.e., a non-active language) different from the first language (i.e., the language currently set as the active language) that is enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user-selected, or configured) as the second language and the first user action is performed on the keyboard having the active language set as the second language. Such identifying may be performed by, for example, assuming that the first user action is performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section. In example embodiments, a reference table, or the like, may be provided for each configurable language of the keyboard that indicates what character would be entered for each user action. In this regard, the determining, by the processor, of the first counterpart character may be performed by a look-up of the reference table. For the above example, when the first user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 811, which resulted in the displaying of the Thai language character 811a in the user-editable section, the determined first counterpart character may be the character "r" 81 1b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard. As another example, when the first user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section, the determined first counterpart character may be the character "i" 812b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard. As another example, when the first user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 816, which resulted in the displaying of the Thai language character 816a in the user-editable section, the determined first counterpart character may be the character "s" 816b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the first user action is performed on the keyboard. In example embodiments, the determining the first counterpart character may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise determining other first counterpart character(s). The other first counterpart character(s) may be determined, by the processor, as characters in the second language (i.e., a non-active language) that are enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user- selected, or configured) as the second language and the other first user actions are performed on the keyboard. Such identifying may be performed by, for example, assuming that the other first user action are performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section. The determining of the first counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein. For the above example, when the other first user action(s) performed on the keyboard having the active language (first language) as the Thai language is/are identified as being the pressing of the character key(s) 812, 813, and/or 816, which resulted in the displaying of the Thai language characters 812a, 813a, and 816a, respectively, in the user-editable section, the determined other first counterpart character(s) may be the character(s) "i" 812b, "c" 813b, and/or "s" 816b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard. As another example, when the other first user action(s) performed on the keyboard having the active language (first language) as the Thai language is/are identified as being the pressing of the character key(s) 811 , 813, and/or 816, which resulted in the displaying of the Thai language characters 81 1a, 813a, and 816a, respectively, in the user- editable section, the determined other first counterpart character(s) may be the character(s) "r" 811b, "c" 813b, and/or "s" 816b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard. As another example, when the other first user action(s) performed on the keyboard having the active language (first language) as the Thai language is/are identified as being the pressing of the character key(s) 811, 812, and/or 813, which resulted in the displaying of the Thai language characters 811a, 812a, and 813a, respectively, in the user-editable section, the determined other first counterpart character(s) may be the character(s) "r" 81 lb, "i" 812b, and or "c" 813b, respectively, which is/are the character(s) in the second language (English language) that is/are enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other first user action(s) is/are performed on the keyboard. In example embodiments, the determining the other first counterpart character(s) may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character. The second counterpart character may be determined, by the processor, as a character in a second language (i.e., a non-active language) different from the first language (i.e., the language currently set as the active language) that is enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user-selected, or configured) as the second language and the second user action is performed on the keyboard having the active language set as the second language. Such identifying may be performed by, for example, assuming that the second user action is performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section. The determining of the second counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein. For the above example, when the second user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section, the determined second counterpart character may be the character "h" 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard. As another example, when the second user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 815, which resulted in the displaying of the Thai language character 815a in the user-editable section, the determined second counterpart character may be the character "e" 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard. In example embodiments, the determining the second counterpart character may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise determining other second counterpart characters. The other second counterpart character(s) may be determined, by the processor, as characters in the second language (i.e., a non-active language) that are enterable into (and/or displayable in) the user-editable section when the active language of the keyboard is set (or defaulted, or user- selected, or configured) as the second language and the other second user actions are performed on the keyboard. Such identifying may be performed by, for example, assuming that the other second user action are performed on the keyboard having the active language set as the second language (instead of the first language), and based on this assumption, identifying what character would be entered and displayed in the user-editable section. The determining of the second counterpart character may be performed, by the processor, by a look-up of the reference table, as described above and herein. For the above example, when the other second user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section, the determined other second counterpart character may be the character "e" 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other second user action is performed on the keyboard. As another example, when the other second user action performed on the keyboard having the active language (first language) as the Thai language is identified as being the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section, the determined other second counterpart character may be the character "h" 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the other second user action is performed on the keyboard. In example embodiments, the determining the other second counterpart character(s) may be performed in response to a determination that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise searching a subset of a database for a resultant word. The subset of the database may comprise words having one or more of the first counterpart character, second counterpart character, other first counterpart characters, and/or other second counterpart characters. In example embodiments, the words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language. In example embodiments, the searching may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
In example embodiments, the method may further comprise, prior to the returning, arranging the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions. For the above example, the arranging may result in the arrangement of "r" 811b, followed by "i" 812b, followed by **c" 813b, followed by "h" 814b, followed by "e" 815b, and followed by "s" 816b. In example embodiments, the arranging may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise returning the first and second counterpart characters. For the above example, the characters "r" 81 lb and "h" 814b may be returned by the processor. In example embodiments, the said returning may include returning, by the processor, of one or more of the other first and second counterpart characters. For the above example, the characters "r" 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b may be returned. The returning may further comprise replacing, by the processor, the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. For the above example, the identified contiguously entered characters 810a may be replaced with the characters "r" 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b (or the word "riches" 810b). The returning may further include returning, by the processor, the resultant word found in the searching. In example embodiments, the returning may be performed in response to a determination, by the processor, that the quantity of user actions in the received sequence of user actions is different from the quantity of characters in the identified contiguously entered characters.
The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to identify an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not display one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The processor may be further operable to return the first and second counterpart characters. The processor may be further operable to identify other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section. The processor may be further operable to determine other first counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard. The processor may be further operable to determine other second counterpart characters by determining a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard. The returning may include returning one or more of the other first and second counterpart characters. The processor may be further operable to, prior to the returning, arrange the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions. The returning may further comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters. The words in the subset of the database may comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. Each area of the touchscreen may represent a character key. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa. The system may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a method may comprise identifying an active language of a keyboard as a first language. The method may further comprise receiving a sequence of user actions performed on the keyboard. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The method may further comprise identifying a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section. The method may further comprise, responsive to the identifying the first set of user actions, determining a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when user actions equivalent (or functionally equivalent) to each user action of the first set of user actions are performed on the keyboard having the active language of the keyboard set (or configured) as the second language. The method may further comprise, responsive to the identifying the second set of user actions, determining a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when user actions equivalent (or functionally equivalent) to each user action of the second set of user actions are performed on the keyboard having the active language of the keyboard set (or configured) as the second language. The method may further comprise returning one or more characters of the first and second set of counterpart characters. The method may further comprise, prior to the returning, arranging the characters of the first and second set of counterpart characters based on the received sequence of user actions. The returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa. The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to identify an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a first set of user actions from among the received sequence of user actions, each user action of the first set of user actions being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The processor may be further operable to identify a second set of user actions from among the received sequence of user actions, each user action of the second set of user actions being a user action performed on the keyboard that did not display any of the identified contiguously entered characters in the user-editable section. The processor may be further operable to, responsive to the identifying the first set of user actions, determine a first set of counterpart characters by, for each user action of the first set of user actions, determining characters in a second language different from the first language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the first set of user actions, are performed on the keyboard. The processor may be further operable to, responsive to the identifying the second set of user actions, determine a second set of counterpart characters by, for each user action of the second set of user actions, determining characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and user actions, each being functionally equivalent to each user action of the second set of user actions, are performed on the keyboard. The processor may be further operable to return one or more characters of the first and second set of counterpart characters. The processor may be further operable to, prior to the returning, arrange the characters of the first and second set of counterpart characters based on the received sequence of user actions. The returning may comprise replacing the identified contiguously entered characters displayed in the user-editable section with one or more characters of the first and second set of counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more characters of the first and second set of counterpart characters. The returning may include returning the resultant word found in the searching. Each user action in the received sequence of user actions may be a pressing action on a character key of the keyboard. Each user action in the received sequence of user actions may be a touching action on an area of a touchscreen. The second language may be configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard. The first language may be the Thai language and the second language may be the English language, and vice versa. The system may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a method may comprise identifying an active language of a keyboard as a first language. The method may further comprise receiving a sequence of user actions performed on the keyboard. The method may further comprise, responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The method may further comprise identifying a quantity of user actions in the received user actions. The method may further comprise identifying a quantity of characters in the identified contiguously entered characters. The method may further comprise, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identifying a first user action and a second user action from among the received sequence of user actions. The first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section. The method may further comprise, responsive to the identifying the first user action, determining a first counterpart character. The first counterpart character may be determined, by a processor, as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The method may further comprise, responsive to the identifying the second user action, determining a second counterpart character. The second counterpart character may be determined, by a processor, as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The method may further comprise returning the first and second counterpart characters. The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to identify an active language of the keyboard as a first language. The processor may be further operable to receive a sequence of user actions performed on the keyboard. The processor may be further operable to, responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions. The processor may be further operable to identify a quantity of user actions in the received user actions. The processor may be further operable to identify a quantity of characters in the identified contiguously entered characters. The processor may be further operable to, responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters, identify a first user action and a second user action from among the received sequence of user actions. The first user action is a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section. The second user action is a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section. The processor may be further operable to, responsive to the identifying the first user action, determine a first counterpart character by determining a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard. The processor may be further operable to, responsive to the identifying the second user action, determine a second counterpart character by determining a character in the second language that is enterable into the user- editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard. The processor may be further operable to return the first and second counterpart characters. The system may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a method may comprise identifying a first language as an active language of a keyboard and a second language as a non-active language of the keyboard. The method may further comprise identifying a plurality of user-entered keystrokes performed on keys of the keyboard. The method may further comprise identifying contiguously entered characters in the first language entered into a user- editable section resulting from the user-entered keystrokes. The method may further comprise determining counterpart characters in the second language based on the user-entered keystrokes. The determining may include, for each identified keystroke, identifying a character in the second language that can be entered into the user-editable section by the identified keystroke when the active language of the keyboard has been set to the second language. The method may further comprise returning the counterpart characters. The returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user- editable section with the counterpart characters. The method may further comprise searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters. The returning may include returning the resultant word. The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to identify a first language as an active language of a keyboard and a second language as a non-active language of the keyboard. The processor may be further operable to identify a plurality of user-entered keystrokes performed on keys of the keyboard. The processor may be further operable to identify contiguously entered characters entered into a user-editable section resulting from the user-entered keystrokes. The processor may be further operable to determine counterpart characters based on the user-entered keystrokes. The determining may include, for each identified keystroke, identifying a character in the second language enterable into the user-editable section by the identified keystroke when the active language of the keyboard is the second language. The method may further comprise returning the counterpart characters. The returning the counterpart characters may further comprise replacing the identified contiguously entered characters entered into the user-editable section with the counterpart characters. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising one or more of the counterpart characters. The returning may include returning the resultant word. The system may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a method may comprise receiving a user selection of contiguously entered characters. The contiguously entered characters are characters displayed in a user-editable section. The method may further comprise identifying the user-selected contiguously entered characters. The method may further comprise identifying a language of the user-selected contiguously entered characters. The method may further comprise determining counterpart characters of the user-selected contiguously entered characters. The determined counterpart characters may include characters in a second language different from the identified language of the user-selected contiguously entered characters. The determined counterpart characters may include characters that would be entered in the user- editable section if an active language of a keyboard is configured for the second language and keys of the keyboard corresponding to (or overlapping a same area of keys associated with) the identified user-selected contiguously entered characters are pressed. The method may further comprise replacing the user-selected contiguously entered characters displayed in the user- editable section with one or more of the determined counterpart characters. The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to receive a user selection of contiguously entered characters displayed in a user-editable section. The processor may be further operable to identify the user- selected contiguously entered characters. The processor may be further operable to identify a language of the user-selected contiguously entered characters. The processor may be further operable to determine counterpart characters of the user-selected contiguously entered characters. The determined counterpart characters may include characters in a second language different from the identified language of the selected contiguously entered characters. The determined counterpart characters may include characters enterable in the user-editable section when an active language of a keyboard operable to enter characters into the user-editable section is configured for the second language. The processor may be further operable to replace the user selected contiguously entered characters entered into the user-editable section with one or more of the determined counterpart characters. The system may further comprise one or more other features described above and in the present disclosure.
Example embodiments of replacing contiguously entered characters based on identifying character keys
In example embodiments, including those described above and herein, a method for processing multi-language data entry using a processor may comprise identifying, by a processor, contiguously entered characters entered into a user-editable section. The contiguously entered characters may include a first identified contiguously entered character. The method may further comprise determining, by the processor, a counterpart character of each identified contiguously entered character. The determining may include determining a first determined counterpart character that is a counterpart character of the first identified contiguously entered character. The determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard. The determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area. The determining may further include determining the first determined counterpart character as being a character associated with the second character key. The first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language. The first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language. The first language is a different language from the second language. The method may further comprise replacing, by the processor, the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character. The method may further comprise searching a subset of a database for a resultant word. The subset of the database may comprise words having the first determined counterpart character. The method may further comprise providing the keyboard having a plurality of character keys. One or more of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language. In example embodiments, the first character key and the second character key may be the same physical keys. In example embodiments, the first character key and the second character key may be different virtual keys. The method may further comprise one or more other features described above and in the present disclosure.
In example embodiments, including those described above and herein, a system may comprise a graphical display. The system may further comprise a keyboard. The system may further comprise a processor in communication with the graphical display and the keyboard. The processor may be operable to identify contiguously entered characters entered into a user- editable section, including a first identified contiguously entered character. The processor may be further operable to determine a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character. The determining may include identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard. The determining may further include identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area. The determining may further include determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key. The first identified contiguously entered character may be a character enterable into the user-editable section when the keyboard is configured for a first language. The first determined counterpart character may be a character enterable into the user-editable section when the keyboard is configured for a second language. The first language may be a language different from the second language. The processor may be further operable to replace the identified contiguously entered characters entered into the user- editable section with at least the first determined counterpart character. The processor may be further operable to search a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character. The keyboard may include a plurality of character keys. At least one of the character keys may include a visual indication of a character in the first language and a visual indication of another character in the second language. The first character key and the second character key may be the same physical keys. The first character key and the second character key may be different virtual keys.
Example 1
As illustrated in FIGURE 6, a mobile computing device 600 may have a virtual keyboard 602 displayed on a touch-screen graphical display. The computing device 600 may also have a processor (not shown) and one or more databases (not shown) stored in local memory and/or remotely (such as on a server and/or in the cloud). In an example situation, the computing device 600 may have received previously entered words in the English language, such as "I want to go to the" 610c, entered into a user-editable section 620 by a user using the virtual keyboard 602. In this regard, the activated language (or activated language mode or activated keyboard mode) may be set as the English language (or the English language mode or English keyboard mode such as a QWERTY keyboard). The user may now wish to continue typing, such as to complete the sentence, by entering a word in a different language (or language mode or keyboard mode), such as the Thai language word for "market" (pronounced "dalat"). It is recognized in the present disclosure that, conventionally, the user may typically need to, among other things, search for a language button (or language mode button or keyboard mode button) on the keyboard, select a language (or language mode or keyboard mode) desired by the user (such as Thai), wait for the keyboard in the desired language (or language mode or keyboard mode, such as a Thai language keyboard) to be displayed, and then search for the desired character keys in the user's desired language.
In example embodiments, the user may not need to search for a language button, select the language desired by the user, wait for the keyboard in the desired language to be displayed, and search for appropriate character keys in the user's desired language. In example embodiments, the user may continue entering the character keys corresponding to the language desired by the user without switching the activated language to the language desired by the user. In the above example, after the user has entered previously entered words "I want to go to the" 610c in the English language, the user may proceed to interact with (or press) the character key 611 associated with the character "9" 61 1b, character key 612 associated with character "]" 612b, character key 613 associated with character "k" 613b, and character key 614 associated with character "f" 614b, which are the same character keys 611, 612, 613, and 614 in the activated language (or language mode or keyboard mode) assigned to or associated with the Thai language characters 61 1a, 612a, 613a, and 614a for the (un-activated) Thai language mode. In doing so, the sequence of characters "9" 611b (associated with key 611), "]" 612b (associated with key 612), "k" 613b (associated with key 613), and "f 614 (associated with key 614) in the English language (or English language mode or English keyboard mode) may be entered (and may be displayed) as "9]kf 610b. In example embodiments, the contiguously entered characters 610b "9", "]", "k", and "f may be received and identified. Counterpart characters 610a of the contiguously entered characters 610b may be identified. In the above example, the counterpart characters of the contiguously entered characters 610b "9", "]", "k", and "f ' in the Thai language (or Thai language mode or Thai keyboard mode) may be identified as the Thai language characters 611a, 612a, 613a, and 614a that make up the Thai language word for "market" (pronounced "dalat"). A search (a first search) may then be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a first subset of a database. The first subset of the database may be a subset comprising words having one or more of the counterpart characters 61 la, 612a, 613a, and 614a, which are the characters in the Thai language mode. The resultant word (which is returned as a suggested word 610a), as shown in Figure 6, in the Thai language may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word 610a. In this regard, the resultant word 610a may be returned in one or more ways, as described above and herein. For example, the resultant word may be returned as a suggested word 610a, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters "9", "]", "k", and "f ' with the resultant word. In some example embodiments, the resultant word may be returned by automatically replacing the contiguously entered characters "9", "]", "k", and "f" with the resultant word without requiring the user to select.
In example embodiments, before returning the resultant word from the first search, a second search may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database). In the above example, the second search may be performed for a word in the English language (or English language mode or English keyboard mode) using a second subset of the database. The second subset of the database may be a subset comprising words having one or more of the contiguously entered characters "9", "]", "k", and "f. A second resultant word may be determined by the second search to be a best match of the contiguously entered characters. A final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters). Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like. In the above example, the final resultant word based on the first and second searches and one or more conditions (such as those described above and herein) may be the Thai language mode word as shown in Figure 6.
Example 2
In an example, such as Example 1 above, example embodiments may search for and return a resultant word based on, among other things, the first search (and in some embodiments, the second search) and a context of previously entered words. For example, for the previously entered words "I want to go to the" 610c, the activate language may be the English language and the contiguously entered characters 610b may be "9" 611b (associated with key 611), "]" 612b (associated with key 612), "k" 613b (associated with key 613), and "f 614 (associated with key 614). The Thai language word for "market" (composed of Thai language characters 611a, 612a, 613a, and 614a) may be a closest match based on the counterpart characters 611a, 612a, 613a, and 614a and the context (i.e., previously entered words 610c). To determine the resultant word to return, the previously entered words "I want to go to the" 610c may be translated to the Thai language before determining a closest match based on the counterpart characters and the context. Alternatively or in addition, the closest matching word(s) (or one or more of the words in the subset) based on the counterpart characters may be translated to the English language (such as the English language word "market" in the subset) before determining a closest match based on the counterpart characters and the context. Example 3
In example embodiments, the contiguously entered characters may be identified after receiving a user interaction with a character key of the keyboard at a first position of a user- editable section displayed on the graphical display. For example, such as Examples 1 and/or 2 above, the character key receiving the user interaction (at the first position) may be the character key 614 for the character "f '. In this regard, the characters "9", "]", and "k" may be received and identified as the contiguously entered characters 610b, and the character "k" may be considered as a second position that is contiguous to the first position. It is to be understood that the character key 614 for the character "f that received the user interaction (at the first position) may or may not be considered as one of the contiguously entered characters 610b in example embodiments. Counterpart characters 611a, 612a, and 613a of the contiguously entered characters 611b, 612b, and 613b may then be identified. In this example, the counterpart characters 611a, 612a, and 613a of the contiguously entered characters "9", "]", and "k" (and "f if considered as one of the contiguously entered characters in example embodiments) in the Thai language (or Thai language mode or Thai keyboard mode) may be identified. A search (a first search) may then be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a first subset of a database. The first subset of the database may be a subset comprising words having one or more of the counterpart characters. A resultant word, which is the Thai language word for "market" (composed of Thai language characters 611a, 612a, 613a, and 614a), may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word. In this regard, the resultant word may be returned in one or more ways, as described above and herein. For example, the resultant word may be returned as a suggested word, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters "9", "]", and "k" (and "f" if entered and considered as one of the contiguously entered characters in example embodiments) with the resultant word. In example embodiments, the resultant word may be returned by automatically replacing the contiguously entered characters "9", "]", and "k" (and "f if entered and considered as one of the contiguously entered characters in example embodiments) with the resultant word.
In example embodiments, before returning the resultant word from the first search, a second search may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database). In the above example, the second search may be performed for a word in the English language (or English language mode or English keyboard mode) using a second subset of the database. The second subset of the database may be a subset comprising words having one or more of the contiguously entered characters "9", "]", and "k" (and "f ' if considered as one of the contiguously entered characters in example embodiments). A second resultant word may be determined by the second search to be a best match of the contiguously entered characters. A final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters). Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like. In the above example, the final resultant word based on the first and second searches and one or more conditions (such as those described above and herein) may be the Thai language word for "market" (composed of Thai language characters 611a, 612a, 613a, and 614a).
Example 4
As illustrated in FIGURE 7, a computing device 700, such as a laptop, may have a physical keyboard 702 integrated with (such as those found in a laptop or mobile computing device like a Blackberry Bold) or attached to (such as a wired or wireless external keyboard) the computing device 700. The computing device 700 may also have a processor (not shown) and one or more databases (not shown) stored in local memory and/or remotely (such as on a server and/or in the cloud). In an example situation, an activated language (or activated language mode or activated keyboard mode) may be set as the Thai language (or the Thai language mode or Thai keyboard mode). The user may assume or expect that the activated language is English, and not Thai. The user may proceed to enter a user-desired word in the English language using the keyboard 702 without realizing that the activated language is not English. For example, the user may proceed to enter the user-desired English language word "pass" while the activated language is the Thai language, which will result in the Thai characters 71 la, 712a, 713a, and 713a being entered. It is recognized in the present disclosure that, conventionally, the user may typically need to, among other things, delete the incorrectly entered characters in the incorrect language, search for a language button (or language mode button or keyboard mode button) on the keyboard (or use other methods to change the activated language), and select the language (or language mode or keyboard mode) desired by the user (such as English). The user will then be required to re-enter the user-desired English language word.
In example embodiments, the user may not need to delete the incorrectly entered characters 710b in the incorrect language, search for the language button (or use other methods to change the activated language, such as using menu buttons as previously described), select the language desired by the user, and re-enter the user-desired word in the language desired by the user. In example embodiments, the contiguously entered characters 710b consisting of the characters 711a (associated with key 711), 712a (associated with key 712), 713a (associated with key 713), and 713a (associated with key 713) may be received and identified. Counterpart characters of the contiguously entered characters 710b may be identified. In the above example, the counterpart characters of the contiguously entered characters in the English language (or English language mode or English keyboard mode) may be identified as the English language characters "p" 711b (associated with key 711), "a" 712b (associated with key 712), "s" 713b (associated with key 713), and "s" 713b (associated with key 713). A first input query may be formed comprising one or more of the counterpart characters "p", "a", "s", and "s". A search (a first search) based on the first input query may then be performed for a word in the English language (or English language mode or English keyboard mode) using a first subset of a database. The first subset of the database may be a subset comprising words having one or more of the counterpart characters "p", "a", "s", and "s", such as the words "pass", "passive", "past", "surpass", etc. A resultant word "pass" (such as suggested word 710a) in the English language may be determined to be a best matching word found from the search of the first subset, and returned as the resultant word 710a. In this regard, the resultant word may be returned in one or more ways, as described above and herein. For example, the resultant word may be returned as a suggested word 710a, which allows the user to interactively select the suggested word and/or replace the contiguously entered characters 710b with the resultant word "pass" 710a. In example embodiments, the resultant word may be returned by automatically replacing the contiguously entered characters 710b with the resultant word "pass" 710a.
In example embodiments, before returning the resultant word from the first search, a second input query may be formed comprising one or more of the contiguously entered characters 710b. A second search based on the second input query may also be performed for a word in the activated language (or activated language mode or activated keyboard mode) using a subset (or second subset) of the database (or a different database). In the above example, the second search may be performed for a word in the Thai language (or Thai language mode or Thai keyboard mode) using a second subset of the database. The second subset of the database may be a subset comprising words having one or more of the contiguously entered characters 711a, 712a, 713a, and 713a, such as the Thai language words 710d, 710e, etc. A second resultant word 710d may be determined to be a best matching word found from the second search. A final resultant word may be selected based on the first search (using the counterpart characters) and the second search (using the contiguously entered characters). Selecting the final resultant word may be based on one or more of a plurality of conditions, including, but not limited to, a best match, most characters matched, character sequence match, language, context with one or more other entered words, user history, comparison between the first resultant word and the second resultant word, and/or the like. In the above example, the final resultant word based on the first and second searches and one or more conditions (such as those described above and herein) may be the word "pass" 710a.
Example 5
In an example, such as Example 4 above, example embodiments may search for and return a resultant word based on, among other things, the first search (and in some embodiments, the second search) and a context of previously entered words. For example, previously entered words may be "they are too", the activate language may be the Thai language, and the contiguously entered characters may be 711a, 712a, 713a, and 713a. The first subset of the database may be a subset comprising words having one or more of the counterpart characters "p" 711b, "a" 712b, "s" 713b, and "s" 713b, such as the words "pass", "passive", "past", "surpass", etc. Although the word "pass" may be a closest match based on the counterpart characters, the word "passive" may be a better match based on the counterpart characters and the context (i.e., previously entered words). Accordingly, the word "passive" may be returned as the resultant word. It is to be understood in the present disclosure that the second subset of the database comprising words having one or more of the contiguously entered characters may also be formed and searched by the second search. Furthermore, the previously entered words may be translated into the activated language and used with one or more words in the second subset to determine a second resultant word based on the second search and translated context.
Example 6
In an example, a mobile computing device with a touchscreen may have an application installed that is operable to receive user textual input. The application may be a chat or instant messaging application, such as WhatsApp, Line, WeChat, iMessage, Skype, etc., or any other application (such as an email application, browser, Microsoft Word, etc.). The mobile device may also have one or more keyboard applications installed. When a user of the mobile device launches the chat application and activates a user-editable section (such as a text box) for data entry, a keyboard application may be launched. As illustrated in Figure 8, an active language of the keyboard may be the Thai language and a user may perform a sequence of user actions on character keys 811, 812, 813, 814, 815, and 816 of the keyboard (such as pressing on keys, sliding along or touching on an area of a touchscreen, etc.). In example embodiments, a quantity of the user actions for the sequence of user actions may be identified as being six user actions. The identified contiguously entered characters displayed in the user-editable section (see 810a) collectively resulting from the receiving of the sequence of user actions (i.e., six user actions) are the four Thai language characters 811a, 812a, 813a, and 816a. That is, the user actions performed on the character keys 81 1, 812, and 813 result in the Thai language characters 81 la, 812a, and 813a being entered and displayed in the user-editable section. For the next user action performed on the character key 814 following the user action on the character key 813, Thai language rules prevent the Thai language character 814a from being entered following Thai language character 813a, and such rules (or formats or syntaxes) may be identified. Based on this, the user action performed on character key 814 does not result in a character (Thai language character 814a or any other Thai language character) being displayed in the user-editable section. For the next user action performed on character key 815, Thai language rules also prevent the Thai language character 815a from being entered following Thai language character 813a, and such rules (or formats or syntaxes) may be identified. Based on this, the user action performed on character key 815 does not result in a character (Thai language character 815a or any other Thai language character) being displayed in the user-editable section. For the next user action performed on character key 816, as there are no language formats (or syntaxes or rules) preventing the Thai language character 816a from following the Thai language character 813a, the user action results in the Thai language character 816a being displayed in the user-editable section. A first user action may be identified as the pressing of the character key 811, which resulted in the displaying of the Thai language character 81 la in the user-editable section. Other first user actions may be identified as the pressing of the character key 812, which resulted in the displaying of the Thai language character 812a in the user-editable section, the pressing of the character key 813, which resulted in the displaying of the Thai language character 813a in the user-editable section, and the pressing of the character key 816, which resulted in the displaying of the Thai language character 816a in the user-editable section. The second user action may be identified as the pressing of the character key 814, which did not result in the displaying of the Thai language character 814a (or any other Thai language character) in the user-editable section. Other second user actions may be identified as the pressing of the character key 815, which did not result in the displaying of the Thai language character 815a (or any other Thai language character) in the user-editable section. The determined first counterpart character may be the character "r" 811b, which is the character in the English language that is enterable into the user- editable section when the active language of the keyboard is set as the English language and the first user action (user action on character key 811) is performed on the keyboard. Other determined first counterpart characters may be the character "i" 812b, which is the character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the user action on character key 812 is performed on the keyboard; the character "c" 813b, which is the character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the user action on character key 813 is performed on the keyboard; and the character "s" 816b, which is the character in the English language that is enterable into the user- editable section when the active language of the keyboard is set as the English language and the user action on character key 816 is performed on the keyboard. The determined second counterpart character may be the character "h" 814b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard. The other determined second counterpart character may be the character "e" 815b, which is the character in the second language (English language) that is enterable into the user-editable section when the active language of the keyboard is set as the second language (English language) and the second user action is performed on the keyboard. The counterpart characters may be arranged, resulting in the arrangement of "r" 811b, followed by "i" 812b, followed by "c" 813b, followed by "h" 814b, followed by "e" 815b, and followed by "s" 816b. The characters "r" 81 1b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b may then be returned. The returning may include replacing the identified contiguously entered characters (the Thai language characters 810a) displayed in the user-editable section with the characters V 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b (or the word "riches" 810b). Prior to the returning and arranging (and possibly without performing the arranging at all), a search of a subset of a database may be performed using one or more of the characters "r" 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b. The words in the subset of the database may include one or more of the characters "r" 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b. The words in the subset of the database may include one or more such characters in different orders. The words in the subset of the database may include related characters to the characters "r" 811b, "i" 812b, "c" 813b, "h" 814b, "e" 815b, and "s" 816b, such as characters associated with character keys nearby character keys 811, 812, 813, 814, and/or 815.
As used in the present disclosure, the term "language" may refer to a language (or dialect), a language mode (such as a mode configurable on a computing device, a specific software application, and/or a specific keyboard), and/or a keyboard mode (such as a mode configurable on a computing device, a specific software application, and/or a specific keyboard). Example applications for the example embodiments described herein include interacting, including inputting of information, into an editable section displayed on the graphical display. Editable sections may include, but are not limited to, those found in an electronic document, such as Microsoft Office products, email, and cloud-based documents such as Google Docs documents; an executable application, such as a computer program installed on the computing device and/or remotely located, in part or in whole, such as cloud-based applications; a chat or messaging application, such as email, SMS, MMS, iMessage, Google Chat, WhatsApp, Skype, Facebook Chat, Yahoo Chat, Messenger, Blackberry Messenger, and Linkedln; and any other input fields, as generally known by persons of ordinary skill in the art, that allow users to interact and/or edit, such as those found in websites, desktop and mobile applications, social media, and electronic documents; and the like. Other example applications may include computer programs that assist users in, among other things, inputting of information, learning a language, such as English, how to spell words, check the spelling of words, and teach kids how to associate a letter with words, graphics, and/or sounds. Example embodiments of a system, computing device, and/or processor described herein may be directed to desktop computers, all-in-one computers, laptops, notebooks, ultrabooks, readers, televisions, appliances, tablets, phablets, mobile phones, PDAs, music players, video players, media players, Blue Ray players, DVD players, home theater components, digital cameras, internet kiosks, check-in terminals, ticketing terminals, information terminals, a plurality of computing devices interacting together in part or in whole, and other specialized computing devices, including arcade games, tabletop replacement devices, and industry-specific computing devices. Example embodiments described herein may also be directed to wearable computing devices, including glasses (such as Google Glasses). In such applications, it is to be understood that the user-initiated interactions or actions may include gestures and/or voice.
While various embodiments in accordance with the disclosed principles have been described above, it should be understood that they have been presented by way of example only, and are not limiting. Thus, the breadth and scope of the example embodiments described herein should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the claims and their equivalents issuing from this disclosure. Furthermore, the above advantages and features are provided in described embodiments, but shall not limit the application of such issued claims to processes and structures accomplishing any or all of the above advantages.
For example, as referred to herein, a computing device, communication device, system, or processor may be a virtual machine, computer, processor, mobile computing device, server, client, node, instance, host, or machine in a networked computing environment. Examples include digital signal processors (DSPs), application-specific integrated circuits (ASICs), field- programmable gate arrays (FPGAs), and any other suitable specific or general purpose processors. Also as referred to herein, a network or cloud may be a collection of machines connected by communication channels that facilitate communications between machines and allow for machines to share resources. Network may also refer to a communication medium between processes on the same machine. Also as referred to herein, a network element, node, or server may be a machine deployed to execute a program operating as a socket listener and may include software instances.
Memory (or storage or databases) may store any suitable information. Memory may comprise any collection and arrangement of volatile and/or non-volatile components suitable for storing data. For example, memory may comprise random access memory (RAM) devices, readonly memory (ROM) devices, magnetic storage devices, optical storage devices, and/or any other suitable data storage devices. In particular embodiments, memory may represent, in part, computer-readable storage media on which computer instructions and/or logic are encoded. Memory may represent any number of memory components within, local to, and/or accessible by a processor.
Resources may encompass any types of resources for running instances including hardware (such as servers, clients, mainframe computers, networks, network storage, data sources, memory, central processing unit time, scientific instruments, and other computing devices), as well as software, software licenses, available network services, and other non- hardware resources, or a combination thereof.
A network or cloud may include, but is not limited to, computing grid systems, distributed computing environments, cloud computing environment, etc. Such network or cloud includes hardware and software infrastructures configured to form a virtual organization comprised of multiple resources which may be in geographically disperse locations.
Although various computer elements, communication devices and capturing devices have been illustrated herein as single device or machine, such elements may operate over several different physical machines, or they may be combined as operating code instances running on a single physical machine. The claims in the present application comprehend such variation in physical machine configurations.
Various terms used herein have special meanings within the present technical field. Whether a particular term should be construed as such a "term of art", depends on the context in which that term is used. "Connected to", "in communication with", or other similar terms should generally be construed broadly to include situations both where communications and connections are direct between referenced elements or through one or more intermediaries between the referenced elements, including through the Internet or some other communicating network. "Network", "system", "environment", and other similar terms generally refer to networked computing systems that embody one or more aspects of the present disclosure. These and other terms are to be construed in light of the context in which they are used in the present disclosure and as those terms would be understood by one of ordinary skill in the art would understand those terms in the disclosed context. The above definitions are not exclusive of other meanings that might be imparted to those terms based on the disclosed context.
Words of comparison, measurement, and timing such as "at the time", "equivalent",
"during", "complete", and the like should be understood to mean "substantially at the time", "substantially equivalent", "substantially during", "substantially complete", etc., where "substantially" means that such comparisons, measurements, and timings are practicable to accomplish the implicitly or expressly stated desired result. Words relating to relative position of elements such as "about", "near", "proximate to", and "adjacent to" shall mean sufficiently close to have a material effect upon the respective system element interactions.
Additionally, the section headings herein are provided for consistency with the suggestions under various patent regulations and practice, or otherwise to provide organizational cues. These headings shall not limit or characterize the embodiments set out in any claims that may issue from this disclosure. Specifically, a description of a technology in the "Background" is not to be construed as an admission that technology is prior art to any embodiments in this disclosure. Furthermore, any reference in this disclosure to "invention" in the singular should not be used to argue that there is only a single point of novelty in this disclosure. Multiple inventions may be set forth according to the limitations of the claims issuing from this disclosure, and such claims accordingly define the invention(s), and their equivalents, that are protected thereby. In all instances, the scope of such claims shall be considered on their own merits in light of this disclosure, but should not be constrained by the headings herein.

Claims

Claims What is claimed is:
1. A method for processing multi-language data entry using a processor, the method comprising:
identifying an active language of a keyboard as a first language;
receiving a sequence of user actions performed on the keyboard;
responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
responsive to the identifying the first user action, determining a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determining a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
returning the first and second counterpart characters.
2. The method of claim 1, further comprising:
identifying other first user actions from among the received sequence of user actions, each of the other first user actions being user actions performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
identifying other second user actions from among the received sequence of user actions, each of the other second user actions being user actions performed on the keyboard that did not result in any of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
determining other first counterpart characters by:
determining the other first counterpart characters as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other first user actions are performed on the keyboard; and
determining other second counterpart characters by:
determining the other second counterpart characters as characters in the second language that are enterable into the user-editable section when the active language of the keyboard is set as the second language and the other second user actions are performed on the keyboard;
wherein the returning includes returning one or more of the other first and second counterpart characters.
3. The method of claim 2, further comprising, prior to the returning, arranging the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters based on the received sequence of user actions.
4. The method of claim 2, wherein the returning comprises replacing the identified contiguously entered characters displayed in the user-editable section with one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
5. The method of claim 2, further comprising searching a subset of a database for a resultant word, the subset of the database having words comprising one or more of the first counterpart character, second counterpart character, other first counterpart characters, and other second counterpart characters.
6. The method of claim 5, wherein the words in the subset of the database comprise one or more of the first counterpart character, second counterpart character, other counterpart characters, and other second counterpart characters in an order different from the order in which the said characters would be displayed in the user-editable section if the received sequence of user actions were performed on the keyboard having the active language as the second language.
7. The method of claim 5, wherein the returning includes returning the resultant word found in the searching.
8. The method of claim 1 , wherein each user action in the received sequence of user actions is a pressing action on a character key of the keyboard.
9. The method of claim 1 , wherein each user action in the received sequence of user actions is a touching action on an area of a touchscreen.
10. The method of claim 9, wherein each area of the touchscreen represents a character key.
11. The method of claim 1 , wherein the second language is configured to be a non-active language of the keyboard and selectable, by a user, to be an active language of the keyboard.
12. The method of claim 1, wherein the first language is Thai language and the second language is English language.
13. The method of claim 1, wherein the keyboard is configured to have an active language mode to be a first language mode, wherein the first language mode includes one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language.
14. A system for processing multi-language data entry using a processor, the system comprising:
a graphical display;
a keyboard; and
a processor in communication with the graphical display and the keyboard, the processor operable to:
identify an active language of the keyboard as a first language;
receive a sequence of user actions performed on the keyboard;
responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions; responsive to the identifying the first user action, determine a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determine a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
return the first and second counterpart characters.
15. A method for processing multi-language data entry using a processor, the method comprising:
identifying an active language of a keyboard as a first language;
receiving a sequence of user actions performed on the keyboard;
responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identifying a quantity of user actions in the received user actions;
identifying a quantity of characters in the identified contiguously entered characters; and responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters:
identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section;
identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section;
responsive to the identifying the first user action, determining a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determining a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
returning the first and second counterpart characters.
16. The method of claim 15, wherein the keyboard is configured to have an active language mode to be a first language mode, wherein the first language mode includes one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language.
17. A system for processing multi-language data entry using a processor, the system comprising:
a graphical display;
a keyboard; and
a processor in communication with the graphical display and the keyboard, the processor operable to:
identify an active language of the keyboard as a first language;
receive a sequence of user actions performed on the keyboard;
responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identify a quantity of user actions in the received user actions;
identify a quantity of characters in the identified contiguously entered characters; and
responsive to a determination that the quantity of user actions in the received user actions is different from the quantity of characters in the identified contiguously entered characters:
identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that displayed one of the identified contiguously entered characters in the user-editable section;
identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that does not correspond to one of the identified contiguously entered characters displayed in the user-editable section;
responsive to the identifying the first user action, determine a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determine a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
return the first and second counterpart characters.
18. A method for processing multi-language data entry using a processor, the method comprising:
identifying, by a processor, contiguously entered characters entered into a user-editable section, including a first identified contiguously entered character;
determining, by the processor, a counterpart character of each identified contiguously entered character, including determining a first determined counterpart character being a counterpart character of the first identified contiguously entered character, the determining including:
identifying a first character key associated with the first identified contiguously entered character, wherein the first character key covers a first area of a keyboard;
identifying a second character key covering a second area of the keyboard, the second area overlapping at least a portion of the first area;
determining the first determined counterpart character, the first determined counterpart character being a character associated with the second character key;
wherein the first identified contiguously entered character is a character enterable into the user-editable section when the keyboard is configured for a first language, the first determined counterpart character is a character enterable into the user-editable section when the keyboard is configured for a second language, and the first language is different from the second language; and replacing, by the processor, the identified contiguously entered characters entered into the user-editable section with at least the first determined counterpart character.
19. The method of claim 18, further comprising searching a subset of a database for a resultant word, the subset of the database having words comprising the first determined counterpart character.
20. The method of claim 18, further comprising providing the keyboard, the keyboard having a plurality of character keys, wherein at least one of the character keys includes:
a visual indication of a character in the first language, and
a visual indication of another character in the second language.
21. The method of claim 18, wherein the first character key and the second character key are the same physical keys.
22. The method of claim 18, wherein the first character key and the second character key are different virtual keys.
23. A method for processing multi-language data entry, the method comprising:
receiving a user selection of contiguously entered characters, the contiguously entered characters being characters displayed in a user-editable section;
identifying the user-selected contiguously entered characters;
identifying a language of the user-selected contiguously entered characters;
determining counterpart characters of the user-selected contiguously entered characters, the determined counterpart characters being characters in a second language different from the identified language of the user-selected contiguously entered characters, the determined counterpart characters being characters that would be entered in the user-editable section if an active language of a keyboard is configured for the second language and keys of the keyboard corresponding to the identified user-selected contiguously entered characters are pressed; and replacing the user-selected contiguously entered characters displayed in the user-editable section with one or more of the determined counterpart characters.
24. A method of processing multi-language data entry, the method comprising:
receiving a sequence of user actions performed on a keyboard, the keyboard configured to have an active language to be a first language and an active language mode to be a first language mode, wherein the first language mode includes one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language; responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the first language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the first language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that was prevented from displaying a character in the first language in the user-editable section based on the rules;
responsive to the identifying the first user action, determining a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determining a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
returning the first and second counterpart characters.
25. A system for processing multi-language data entry using a processor, the system comprising:
a graphical display;
a keyboard; and
a processor in communication with the graphical display and the keyboard, the processor operable to:
receive a sequence of user actions performed on the keyboard, the keyboard configured to have an active language to be a first language and an active language mode to be a first language mode, wherein the first language mode includes one or more rules preventing certain characters in the first language from being displayed contiguously with certain other characters in the first language; responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters in the first language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the first language being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions;
identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that was prevented from displaying a character in the first language in the user-editable section based on the rules;
responsive to the identifying the first user action, determine a first counterpart character by:
determining the first counterpart character as a character in a second language different from the first language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determine a second counterpart character by:
determining the second counterpart character as a character in the second language that is enterable into the user-editable section when the active language of the keyboard is set as the second language and the second user action is performed on the keyboard; and
return the first and second counterpart characters.
26. A method of processing multi-language data entry, the method comprising:
receiving a sequence of user actions performed on a keyboard, the keyboard having an active language set as a Thai language;
responsive to the receiving of all user actions in the sequence of user actions, identifying contiguously entered characters in the Thai language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identifying a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the Thai language being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
identifying a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
responsive to the identifying the first user action, determining a first counterpart character by:
determining the first counterpart character as a character in an English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determining a second counterpart character by:
determining the second counterpart character as a character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the second user action is performed on the keyboard; and
returning the first and second counterpart characters.
27. A system for processing multi-language data entry using a processor, the system comprising:
a graphical display;
a keyboard; and
a processor in communication with the graphical display and the keyboard, the processor operable to:
receive a sequence of user actions performed on the keyboard, the keyboard having an active language set as a Thai language;
responsive to the receiving of all user actions in the sequence of user actions, identify contiguously entered characters in the Thai language displayed in a user-editable section collectively resulting from the receiving of the sequence of user actions;
identify a first user action from among the received sequence of user actions, the first user action being a user action performed on the keyboard that resulted in one of the identified contiguously entered characters in the Thai language being displayed in the user- editable section after the receiving of all of the user actions in the sequence of user actions;
identify a second user action from among the received sequence of user actions, the second user action being a user action performed on the keyboard that did not result in one of the identified contiguously entered characters being displayed in the user-editable section after the receiving of all of the user actions in the sequence of user actions;
responsive to the identifying the first user action, determine a first counterpart character by: determining the first counterpart character as a character in an English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the first user action is performed on the keyboard;
responsive to the identifying the second user action, determine a second counterpart character by:
determining the second counterpart character as a character in the English language that is enterable into the user-editable section when the active language of the keyboard is set as the English language and the second user action is performed on the keyboard; and return the first and second counterpart characters.
PCT/TH2015/000041 2015-07-01 2015-07-01 Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry WO2017003384A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SG11201704826YA SG11201704826YA (en) 2015-07-01 2015-07-01 Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry
PCT/TH2015/000041 WO2017003384A1 (en) 2015-07-01 2015-07-01 Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/TH2015/000041 WO2017003384A1 (en) 2015-07-01 2015-07-01 Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry

Publications (1)

Publication Number Publication Date
WO2017003384A1 true WO2017003384A1 (en) 2017-01-05

Family

ID=57608862

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/TH2015/000041 WO2017003384A1 (en) 2015-07-01 2015-07-01 Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry

Country Status (2)

Country Link
SG (1) SG11201704826YA (en)
WO (1) WO2017003384A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038456A1 (en) * 2005-08-12 2007-02-15 Delta Electronics, Inc. Text inputting device and method employing combination of associated character input method and automatic speech recognition method
US20080270118A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Recognition architecture for generating Asian characters
CN101976173A (en) * 2010-11-24 2011-02-16 广州市久邦数码科技有限公司 Multi-language hybrid input method used on embedded touch screen virtual keyboard
WO2014158101A1 (en) * 2013-03-28 2014-10-02 Sun Vasan Methods, systems and devices for interacting with a computing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038456A1 (en) * 2005-08-12 2007-02-15 Delta Electronics, Inc. Text inputting device and method employing combination of associated character input method and automatic speech recognition method
US20080270118A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Recognition architecture for generating Asian characters
CN101976173A (en) * 2010-11-24 2011-02-16 广州市久邦数码科技有限公司 Multi-language hybrid input method used on embedded touch screen virtual keyboard
WO2014158101A1 (en) * 2013-03-28 2014-10-02 Sun Vasan Methods, systems and devices for interacting with a computing device

Also Published As

Publication number Publication date
SG11201704826YA (en) 2017-07-28

Similar Documents

Publication Publication Date Title
US11720744B2 (en) Inputting images to electronic devices
US11106349B2 (en) Data entry systems
CN103038728B (en) Such as use the multi-mode text input system of touch-screen on a cellular telephone
US9977779B2 (en) Automatic supplementation of word correction dictionaries
KR102310648B1 (en) Contextual information lookup and navigation
US20240143165A1 (en) Content control system
KR101633842B1 (en) Multiple graphical keyboards for continuous gesture input
JP6599127B2 (en) Information retrieval system and method
CN105659194B (en) Fast worktodo for on-screen keyboard
WO2015050910A1 (en) Emoji for text predictions
US9292203B2 (en) Providing a vertical candidate bar with an on-screen keyboard
KR20120006503A (en) Improved text input
JP6182636B2 (en) Terminal, server and method for searching for keywords through interaction
US20170270092A1 (en) System and method for predictive text entry using n-gram language model
US20230100964A1 (en) Data input system/example generator
US20160092104A1 (en) Methods, systems and devices for interacting with a computing device
US11899904B2 (en) Text input system with correction facility
US10572497B2 (en) Parsing and executing commands on a user interface running two applications simultaneously for selecting an object in a first application and then executing an action in a second application to manipulate the selected object in the first application
WO2017003384A1 (en) Methods for multi-language data entry using a processor, and systems and devices for multi-language data entry
US20150347004A1 (en) Indic language keyboard interface
Tanaka et al. One-handed character input method for smart glasses
Heo et al. Korean grapheme recognition immersive scheme with gesture on smartphone
KR20140103430A (en) Method for providing virtual keypad

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15897294

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 11201704826Y

Country of ref document: SG

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15897294

Country of ref document: EP

Kind code of ref document: A1