Beta 12 Release Notes

Multi-word search: you can now search for a phrase or words near each other. To search for a phrase, put double quotes around the words. If you enter multiple words without quotes, you will see a “Word distance” number below the “Search For:” box. This is the number of words before and after the first word in which the other words can occur.

Fonts are now installed by the program at startup

Fixed bug: Tipitaka editions (e.g. Thai, PTS) that don’t have page break markers in a particular book should be disabled in the GoTo dialog

Fixed bug: Opening the Dictionary with ctrl-D when a word is selected in a book, the word is not populated in the dialog.

Fixed bug: Namo tassa has dots around it in Roman script.

Fixed typo in name of AN8 mula. Aṭṭhakādinipāta -> Aṭṭhakanipāta

Fixed bug where clicking on a book window in the browser area would not bring the window in front of other windows.

Enabled ctrl-W keystroke for Word Search. If a single word is highlighted, the word will be populated in the Search For box and the search will be executed.

Tipitaka data: Removed spaces between words and punctuation when there is a page break marker, i.e. “word <pb/>,”

11 Responses to “Beta 12 Release Notes”

  • Hi Frank;

    1) I see that you are using the mshtml.dll – are you planning on adding the dictionary popup on mouse hover like I see in Pali Text Reader?

    2) I suggest that this is *very important* for making future development easier. It’s a basic design issue. I would make the main screen area (under the first top toolbar) a tabbed dialog so that you can add other tabs later. CST is a reference product but it will eventually add learning and other functions. After all, the goal is to help people learn Pali, not just reference it!

    3) You’ve probably noticed that drag and drop doesn’t work (at least I can’t get it to work in my software!) when a person drags text from the browser window into a text box in a menu bar. See below for a possible work-around.

    4) I like the install and start screen. It looks very nice.

    5) I like the fact that the interface language and script are in the top toolbar. I’m doing the same thing in my program. What I would add is another selection menu for later – when a Pali Text-to-speech voice available. I don’t know of any work on a voice right now but it is really easy to add the TTS support into the program now so that the program is ready for the future.

    6) screen real estate. Most screens are wider now (and they will continue to get wider over the next few years). It would be nice if you put a panel on the right-hand side of the screen where the dictionary definitions could be shown while a person is working. Even if you have popup definitions the dictionary toolbar would be useful because it would give more information. You could reformat the dictionary dialog so that it is vertical instead of horizontal (it is nice to see what other words match – like you do now).

    I do this in my software as follows:
    – the main area is a tabbed dialog
    – into the tab I put a SplitView (vertical)
    – on one side of the SplitView I put the browser window and its toolbar
    – on the other side of the browser window (in your case) I would put the dictionary organized vertically instead of horizontally (like the dialog box right now).
    (the splitview makes it easy for people to resize the two areas)

    7) The only way I got drag and drop to work (easily for users) is to use a small RichTextBox (looking like a little square with a nice background color). The user drags selected text onto the RichTextBox and when it is dropped into the little square it is 1. added to the RTB 2. SelectAll() 3. Cut() and 4. Paste into another component.

    8) Do you plan on adding transliteration? It would be easy to add two buttons that appear beside the language choice in the Toolbar when the default language is, for instance, English. One button is ‘Show Codes’ popup dialog box ‘always on top’ and the other button is a Transliteration on/off toggle button. I find transliteration much easier than installing keyboards.

    9) Who is creating the dictionary entries? I would like to see a grammar note in the dictionary entry. The logic is as follows
    – I look up a word
    – I see the definition and a grammar note (ex. nominative first-person singular)
    – I also see automatically an explanation of the grammar note (ex. explaining what that means.

    So, you have your dictionary entries and you append a grammar explanation to the bottom of it out of a little grammar database.

    This allows learning words and grammar ‘in context’. It might prove to be unbelievably efficient.

    I could put up a bulletin board just for people creating dictionary entries for CST if you wish. That way, you would get the information formatted the way you want it.

    10) I would like a way to tag words that I look up so that I can go back and review them quickly later. What I have in mind is a new tab in your program called Vocabulary where a person has a list of tagged words on the left-hand side of the screen and the definition with grammar on the right hand side of the screen. I can just use the cursor to move down my list to quickly review words that I have previously researched.

    11) Installation – I figure that you are going to improve the installation program but here’s another note. It would seem that the following can happen:
    – a different program is open and using a font
    – you try to install the same font
    – your installation program will stop and give an annoying message
    – the font may not work right with your program
    So, I would add a note to close all other programs when installing.

    12) Perhaps you could add a little pre-installation program that simply reports to a user what version of NET they are using (and, of course, explains where to go if they don’t have NET 2.0 or better)?

    13) Another useful tab in the program would be FontFinder. I wrote a program for myself in Java that would scan all the fonts on a computer to see what fonts support all of the Pali Romanized characters (English, Pali and punctuation). I think a lot of people would find it handy. Is there a way to do this with C# that is easy? In Java, all I had to do was define the characters, get a list of all the fonts (a couple of lines) and then loop through the character codes to inspect the fonts by asking for the characters and checking the return code. So, I could produce a list of fonts very easily and it took a split second (despite all the many fonts on my computer).

    Summary of main ideas:
    – tabbed main work area
    – top level button toolbar with a button or combobox for TTS already wired up and ready to go as soon as a voice is available
    – browser/dictionary in a SplitView on Tab1
    – Vocabulary review tool on Tab2
    – FontFinder on Tab3
    – a RichTextBox on Tab4 where anything I drag and drop from the texts is appended automatically (so I can add notes, copy and paste it into other programs).


    That sounds like a lot but some of it is fairly basic and bug-safe programming.

    a) If you need help with the TTS stuff or the transliteration then please let me know.

    b) If you need a BBS for the dictionary I can quickly set it up

    c) If you want me to send you some screen shots let me know. I would add notes onto the screen shots.

    d) If you are interested in the dnd support let me know.

    I can’t tell you how delighted I am about CST4. Your program already offers a lot! I hope you don’t mind all the input.

    peace from


  • Hi Frank;

    I forgot a couple of very important questions.
    1)Is CST4 under the GNU GPL so that all programmers who wish to create new Pali resources can benefit from the work?
    2) If so, are you planning on putting the source code into the distribution or making it available from your future home page for the software?

    peace from


  • Hi Andy,
    Thanks for all the suggestions. Responses to some of your points:

    1) Not at this time.

    2) and 6) The CST application uses a multiple document interface (MDI) design, like the CSCD. I considered various options, including a tabbed document interface (TDI) like Firefox, a hybrid TDI/MDI design like UltraEdit or sidebars like in IDEs or the Firefox history sidebar. For now, I think the MDI design is most flexible, although I intend to eventually allow the windows to be undocked and dragged outside the main window.

    Using tabs or sidebars rather than floating windows does not make it any easier to add new functionality to the program.

    3) You can drag and drop from a CST book into another application, such as Word. How did you test drag and drop?

    8) No plan to add any Pali typing support into the program. This is best handled by keyboard drivers.

    9) The dictionaries are the same as were included in CSCD3. I agree that it would be helpful to have full declensions and conjugations included in the dictionary to help those who are less familiar with Pali grammar.

    11) Did you have a problem with the font installation?

    12) Good idea.

    Re: open source. We have no plan to release the source code at this time.

  • Hi Frank;

    Thanks for the answers. Answers to your questions:

    1) Yes about font installation but not necessarily CST. I had CST4 open when I reinstalled Pali Text Reader. PTR seemed to find a conflict with the one of the fonts (which I assume CST had active). You might have the problem the other way around (ie somebody has Open Office or a different program open while you are installing).

    Google has a neat new feature in Google Office where you can make a little slide show and plug it into a web page (it’s just a piece of javascript). Perhaps a little slide show on the future CST4 home page would help to avoid installation issues? You could put it on the page where people download the NET version tester?

    2) About tabs vs other options – only time will tell… ;-)

    3) DdD – It works for everything except from a browser window into a text box on a menu bar. I’ve noticed that a lot of language software (like dictionaries) also have this issue. It is annoying that a person can’t select a word and dnd it into the search box on many programs (when the search box is a text box in a menu bar).

    4) TTS is coming. If CST4 has a shelf-life of several years it might be good to add TTS now. Adding the COM Interop.SpeechLib.dll would only add about 160K to your distro and the TTS programming is trivial and bug-safe.

    5) If you do want get the dictionary popup working then PTR has the code in Subversion on sourceforge. You can look at the code without registering. Since you already have mshtml working, it might be pretty easy to get the popup dictionary defs working (I really like that feature – a lot less mouse clicks and keystrokes – important when dealing with 950,000+ words).

    Another implementation might be : hover will grab the word and send it to the dictionary window for lookup (like Ctrl-D does now). That would be superb. With the dictionary on the right-hand side of the screen and hover-lookup – it would save thousands of clicks and keystrokes per user and there would be no popup blocking the reading area.

    peace from


  • Hi Frank;

    About the dictionary.

    Your current dictionary format is word (one line) definition (one line).

    You brilliantly use <see> tags for creating hyperlinks on the fly.

    The dictionary is a Unicode text file that is easy to edit.

    After release of CST4 it is still possible to continue updating the dictionary – adding and editing entries. People would only have to download the new file to benefit from the work of others.

    1) Question – Can you add something to the one-line definitions? Could you Replace /r/ with a return character? This way, it is possible to add definitions on more than one line.

    2) Note: The Grammar. The hardest thing in Pali. Because you use <see> tags, you (or anybody else) could easily add grammar to the dictionary. Example below. This would be a huge time-saver for Pali students.

    3) Note: Compound words. Your <see> would also be perfect for this.

    This is not a “real” Pali example. It’s just to show what is possible.

    <see>masculine noun</see> <see>accusative case</see>/rr/1. the doctrine/r/2. the teachings of the Buddha/r/3. a tiny event
    <see>masculine noun</see>/rr/<see>dhamma</see>+<see>vinaya</see>/rr/1. The teachings of the Buddha/r/2. a lovely thought, indeed!
    masculine noun
    In Pali, nouns have a gender – <see>masculine</see>, <see>feminine</see> or <see>neuter</see>. The gender changes the way that the noun is inflected./rr/Example 1. whatever/r/Example 2. whatever2
    used by nouns with examples
    used by nouns with examples
    used by nouns with examples

    So, I think you can see how handy this would be for helping people learn grammar in context, building better definitions and also for helping people understand the components of compound words.

    All that with only a few grammar entries, adding information to the words and a Replace for return characters.

    4) Question: does CST4 generate an index for the dictionary when it is being installed? In other words, if someone just replaced the dictionary file with a new file (having the same name) would the new file work in CST4?

    peace from


  • Hi Frank;

    I was just testing a bit more.

    1) It would be nice if you could put a Back button in the dictionary. Right now, all the links have to be reciprocal which is very fragile and time-consuming. It would be nice if the Back button would allow a person to keep going back to their first search of the current session.

    The ability to go Back at least once would already be a big help.

    peace from


  • The “Back to word” link *is* the back button. Those links are not in the definitions. They’re appended to the definition when you click a linked word. Multiple levels of “Back” are supported.

  • Answers to questions in Andy’s comment on Jan 9th, 2008 at 10:21 am:

    1) To make a multi-paragraph definition, use </p><p> as the separator.
    2) In the current design, grammatical notes cannot be added to the dictionary as separate entries because all words must be Pali words. This is because the words in the “Words” list on the left are converted to the current global script preference.
    4) The whole dictionary is read into memory whenever it is used, so changes in the dictionary file would show up as soon as the program is restarted.

  • Hi Frank;

    If I understand correctly, the dictionary window and dictionary definitions support HTML markup tags?

    That would be neat. It would allow bold and other markup to make the dictionary entries more readable.

    In any case, support for paragraph tage is still very useful!

    1) Is it also possible to use the line break tag ?

    peace from


  • The definitions window is a WebBrowser control, the managed .NET wrapper around MSHTML/IE.

    When a word is selected, the meaning string is put inside a skeleton HTML document like so:

    <style> some CSS, different for English and Hindi </style>

    the definition


    Hence the paragraph separator I gave earlier, </p><p>. The definition is already surrounded by one set of p tags.

    So any HTML tags can be used in the definitions as long as they produce valid HTML when embedded in the above document.

  • Hi Andy, Frank!

    Interesting discussion, unfortunately i did not find it earlier.

    Andy, if you like, have a look at this posting…i was playing around with the dictionary files:

    Your idea of adding real-time grammar information is superb! Now, if Frank would only use my instant-dictionary lookup code from the PTR, that would be cool!

    Some things i would like to see:

    1.) Bookmarks, bookmarks, bookmarks…
    2.) in connection with 1.) the ability to write (contextual) notes and save them.
    3.) Compound analysis
    4.) Andy’s suggestions of a TTS: YES! Andy, are you working on a voice? I did some programming with .NETs speech engine. It is very simple to use and easy to implement in .NET –

    with metta,


Comments are currently closed.