16. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform: recognizing a logogram from at least part of a written logogram drawn by a user or a typed logogram; determining whether homonyms of the logogram are to be made available to the user; determining a plurality of logograms having a pronunciation that matches the pronunciation of the logogram if the homonyms of the logogram are to be made available to the user; and displaying the plurality of logograms on a display device to enable selection of one of the plurality of logograms by the user in response to the user drawing the written logogram or inputting the typed logogram.
16. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor, the executable code comprising code to perform: recognizing a logogram from at least part of a written logogram drawn by a user or a typed logogram; determining whether homonyms of the logogram are to be made available to the user; determining a plurality of logograms having a pronunciation that matches the pronunciation of the logogram if the homonyms of the logogram are to be made available to the user; and displaying the plurality of logograms on a display device to enable selection of one of the plurality of logograms by the user in response to the user drawing the written logogram or inputting the typed logogram. 18. The program product of claim 16 , wherein the code further performs ranking the plurality of logograms based on one or more of a context in which each logogram of the plurality of logograms is to be used, a structure of each logogram of the plurality of logograms, and a number of strokes of each logogram of the plurality of logograms.