Restoring spell-check dictionaries in WeSay when FLEx is installed

Author chris.hirt | 21.03.2011 | Category OurWord, Linux, FLEx, Chorus, Palaso Library, Spelling, Typesetting, Solid, Blogroll, WeSay, Developers, Dictionary, Uncategorized

viagra 3viagra ukviagra mexicoviagra vsviagraviagra blogviagra gelviagra kaufenviagra q&aviagra samplesviagra rxviagra quickviagra timeviagra useviagra priceviagra jetviagra young ageviagra 150 mgviagra movieviagra kidsviagra by mailviagra toleranceviagra grapefruitviagra in canadaviagra useviagra paypalviagra zurichviagra mgviagra and foodviagra 25 mg onlineviagra jellyviagra musicviagra like drugsviagra indicationsviagra headacheviagra pillsviagra buyviagra adviagra fallsviagra pfizerviagra effectsviagra gumviagra usaviagra lastviagra dosesviagra 200mgviagra red faceviagra ukviagra questionsviagra patentviagra buyviagra wikiviagra womenviagra for saleviagra empty stomachviagra last longerviagra indiaviagra jetviagra las vegasviagra mexicoviagra and alcoholviagra zonder receptviagra with alcoholviagra and womenviagra kopenviagra videoviagra onlineviagra naturalviagra risksviagra zantacviagra alternativeviagra condomviagra otcviagra testimonialsviagra 10mgviagra canadaviagra erowidviagra 30 minutesviagra blindnessviagra menviagra best priceviagra professionalviagra kick in timeviagra levitra cialisviagra mgviagra off patentviagra historyviagra jingleviagra kenyaviagra 3000mgviagra kidneyviagra zoloftviagra triangle barsviagra to last longerviagra without edviagra blood pressureviagra jokes emailviagra za muskarceviagra zagrebviagra newsviagra cheapviagra erectionviagra fallsviagra couponviagra kenyaviagra jellyviagra 150viagra by mailviagra nitratesviagra original useviagra urban dicviagra zurichviagra virus emailviagra nitric oxideviagra in the waterviagra directionsviagra songviagra triangleviagra gumviagra vs genericviagra genericviagra grapefruitviagra 100mg reviewviagra los angelesviagra without edviagra substituteviagra super forceviagra email virusviagra triangle barsviagra ringviagra voucherviagra blogviagra directionsviagra videoviagra jingleviagra and womenviagra in the waterviagra next day deliveryviagra quick tabsviagra goldviagra vsviagra us pharmacyviagra definitionviagra manufacturerviagra erowidviagra usaviagra quick deliveryviagra costviagra and alcoholviagra release date

Recently we discovered that spell-check dictionaries were not showing up in the WeSay config tool when FLEx was also installed.  FLEx’s bundles Enchant (spell checker service) in its installer while WeSay requires you to install Enchant separately.  The problem actually occurs on machines where FLEx was installed before WeSay, because of the way Enchant looks for installed dictionaries: Enchant looks for dictionaries in the same directory as the libenchant.dll , which is in the PATH.  Eventually, we will include a solution in the WeSay installer, but until that is fixed, this .reg file will tell Enchant where the common installed dictionaries are located.  Note: change the downloaded file to the extention .reg and double click it to add the registry value to Windows.

Buy Designer Replica Celine Handbags
Buy Discounted Replica Burberry Online
Buy Replica Yves Saint Laurent Handbag Online
Buy Designer Replica Ysl Shoes Online
Buy Replica Chanel Handbag Online
Buy Cheap Fake Miu Miu Shoes
Buy Cheap Replica Dg Handbag Online
Buy Discounted Hermes Handbag
Discounted Designer Replica Jimmy Choo
Buy Fake 3.1 Phillip Lim Handbag Online
Cheap Designer Replica Dg Handbag
Buy Cheap Thomas Wylde Handbag
Discounted Designer Replica Dolce Gabbana Shoes
Buy Discounted Fake Miu Miu Handbags Online
Buy Discounted Alexander Mcqueen Handbag
Buy Discounted Jimmy Choo Shoes
Discounted Miu Miu Shoes Online
Buy Cheap Hermes Handbags
Buy Discounted Replica Bottega Veneta Handbags Online
Cheap Replica Dolce Gabbana Shoes
Discounted Replica Cartier Handbags
Buy Discounted Fake Alexander Wang Handbags
Discounted Fake Christian Dior Handbags
Buy Discounted Lancel Handbag Online
Cheap Fake Tory Burch Shoes
Cheap Prada Handbag
Buy Designer Replica Bottega Veneta Handbags
Buy Discounted Fake Giuseppe Zanotti Shoes
Buy Designer Replica Marc Jacobs Handbag
Cheap Dior Shoes Online
Buy Cheap Replica Ysl Handbags
Replica Cartier
Buy Replica Coach Handbag Online
Buy Fake Shoes
Replica Christian Dior Handbag
Discounted Dolce Gabbana Handbag
Buy Cheap Replica Loewe Handbags
Buy Cheap Replica Burberry Handbag
Buy Cheap Replica Mulberry Handbags Online
Buy Designer Replica Tory Burch Shoes
Buy Cheap Designer Replica Miu Miu Online
Buy Prada Shoes Online
Buy Fake Mulberry Handbag
Fake Christian Louboutin
Cheap Alexander Mcqueen Handbag Online
Cheap Designer Replica Bottega Veneta Handbags Online
Buy Discounted Replica Bottega Veneta Handbags
Buy Discounted Anya Hindmarch Handbags Online
Buy 3.1 Phillip Lim Handbag
Discounted Designer Replica Loewe
Cheap Lv Handbags
Discounted Prada Shoes Online
Buy Cartier Online
Buy Cheap Marc Jacobs Handbags Online
Buy Discounted Replica Salvatore Ferragamo Online
Buy Cheap Shoes
Buy Cheap Designer Replica Marc Jacobs Handbags Online
Buy Fake Loewe Online
Cheap Fake Versace Handbag
Buy Cheap Designer Replica Dg Online
Discounted Balenciaga Handbag
Buy Discounted Fake Dg Shoes
Cheap Replica Gucci Handbag Online
Cheap Christian Louboutin
Buy Cheap Ysl Online
Buy Cheap Burberry
Cheap Anya Hindmarch Handbag Online
Buy Discounted Fake Hermes Handbag Online
Cheap Fake 3.1 Phillip Lim Handbags
Burberry Handbag
Cheap Fake Thomas Wylde Handbag Online
Discounted Designer Replica Givenchy Handbag Online
Buy Discounted Designer Replica Yves Saint Laurent Shoes
Buy Cheap Replica Vivienne Westwood
Buy Designer Replica Thomas Wylde Handbags Online
Buy Fake Yves Saint Laurent
Cheap Fake Dolce Gabbana Handbags
Fake Alexander Mcqueen Shoes
Discounted Designer Replica Alexander Wang Handbag
Discounted Replica Thomas Wylde Handbag Online
Buy Fake Celine Handbags
Cheap Giuseppe Zanotti
Cheap Replica Versace Handbag
Fake Manolo Blahnik
Buy Cheap Designer Replica Lancel Handbag
Discounted Replica Mulberry Handbag
Buy Discounted Designer Replica Christian Dior Handbag
Buy Discounted Designer Replica Jimmy Choo Shoes Online
Cheap Replica Hermes Handbag Online

More on xml pretty printing

Author Tim | 26.01.2011 | Category OurWord, Linux, FLEx, Chorus, Palaso Library, Spelling, Typesetting, Solid, Blogroll, WeSay, Developers, Dictionary, Uncategorized

Recently we had a problem with Chorus turning our pretty printed Xml LIFT files into a single line after a merge.

In trying to fix this we thought that the best strategy from a line-diff version control perspective was to maintain the formatting of the two parent files where entries are unchanged.

However we discovered that there is no easy way to read white space within an element node. This is a problem because WeSay writes LIFT with a new line for each attribute. So, on read:

<entry    id='alpha'>    <lexical-unit>		<form            lang='a'>            <text>form alpha</text>		</form	</lexical-unit></entry>

becomes:

<entry id='alpha'>    <lexical-unit>		<form lang='a'>            <text>form alpha</text>		</form	</lexical-unit></entry>

So the formatting within the element tag is lost.
As we thought about it some more we realized that WeSay at least reformats everything on the first Lift merge. So for the time being we will simply make that formatting the standard for Chorus as well.

Buy Fake Valentino Handbag
Buy Cheap Fake Loewe Handbag
Buy Cheap Fake Versace Online
Discounted Replica Dolce Gabbana Shoes
Designer Replica Chanel Handbags
Buy Designer Replica Louis Vuitton
Buy Dolce Gabbana Handbag
Cheap Fake Coach Handbags
Discounted Designer Replica Louis Vuitton Handbags
Discounted Replica Givenchy Online
Buy Fake Valentino Handbags Online
Buy Discounted Replica Louis Vuitton Handbags Online
Discounted Christian Louboutin
Cheap Mulberry Handbags
Cheap Designer Replica Fendi
Discounted Loewe Handbags
Cheap Jimmy Choo Handbag
Discounted Fake Yves Saint Laurent Handbags Online
Replica Dolce Gabbana Handbag Online
Discounted Ysl Handbags Online
Buy Fake Alexander Wang Handbag
Buy Discounted Replica Ysl Online
Cheap Chloe Handbags
Buy Cheap Fake Lv
Discounted Fake Jimmy Choo Handbag Online
Buy Cheap Designer Replica Coach
Buy Designer Replica Loewe
Cheap Louis Vuitton Shoes
Buy Discounted Fake Marc Jacobs Handbags
Discounted Replica Jimmy Choo Handbag Online
Designer Replica Miu Miu Shoes Online
Buy Discounted Designer Replica Dolce Gabbana Online
Buy Discounted Designer Replica Marni Handbags
Buy Cheap Alexander Mcqueen Shoes
Cartier Handbags
Buy Cheap Dg Handbag Online
Buy Fake Bottega Veneta Handbags
Designer Replica Hermes Handbag
Cheap Fake Loewe Handbag
Chanel Handbag Online
Buy Replica Louis Vuitton Handbags
Buy Cheap Fake Alexander Wang Online
Fake 3.1 Phillip Lim Handbags
Discounted Fake Miu Miu Handbag
Cheap Fake Alexander Wang
Buy Discounted Replica Lancel Handbag
Discounted Replica Balenciaga Online
Buy Replica Manolo Blahnik Shoes
Cheap Replica Valentino
Buy Cheap Fake Burberry Handbag
Designer Replica Bally
Buy Marni Handbag Online
Cheap Fake Givenchy Handbag Online
Buy Cheap Replica Christian Dior Handbags Online
Buy Cheap Fake Salvatore Ferragamo Handbag Online
Replica Jimmy Choo Shoes
Discounted Hermes Handbag
Buy Replica Thomas Wylde Handbags
Buy Discounted Fake Salvatore Ferragamo Handbags Online
Buy Discounted Fake Marni Handbags Online
Discounted Givenchy Handbags
Buy Designer Replica Prada Handbags Online
Discounted Replica Givenchy
Discounted Designer Replica Marni Handbags Online
Cheap Fake Coach Online
Cheap Replica Tory Burch Online
Buy Discounted Replica Lv Handbag Online
Buy Cheap Versace Handbags
Discounted Fake Thomas Wylde Online
Salvatore Ferragamo Handbag
Buy Fake Lancel Online
Fake Chloe Handbag Online
Fake Louis Vuitton Shoes Online
Buy Fake Dolce Gabbana
Buy Bally Handbags Online
Buy Anya Hindmarch
Cheap Replica Ysl Handbag
Buy Discounted Replica Marni Online
Discounted Replica Louis Vuitton Handbags
Buy Fake Burberry
Buy Cheap Designer Replica Bally Handbag Online
Discounted Designer Replica Fendi Handbags
Cheap Salvatore Ferragamo Shoes
Discounted Designer Replica Lancel
Buy Discounted Replica Tory Burch Shoes
Buy Discounted Designer Replica Coach Handbags Online
Buy Discounted Fake Lv Handbag Online
Buy Discounted Replica Marni Handbag Online
Buy Cheap Fake Dolce Gabbana Handbags Online

Configuring where Enchant looks for files

Author admin | 22.02.2008 | Category Spelling, Developers

So far, I have covered how to get started using Enchant and how to set up dictionaries. This post will cover more advanced concepts that let an application developer or a user take more control over Enchant.


Where Enchant looks for providers


Enchant looks for which providers are available when the enchant_broker_init function is called.


Providers can be installed on the machine for all users to use on the system or can be installed for only one user. If Enchant finds a particular provider as a system provider and as a user provider, the user provider is used.


Enchant looks for system providers in the following locations:



  1. The value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Config\Module_Dir, if any

  2. Otherwise, the value found in the registry at HKEY_LOCAL_MACHINE\Software\Enchant\Config\Module_Dir, if any

  3. Otherwise, in %enchant%\lib\enchant, where %enchant% is the location of libenchant.dll.


The provider location for the user is determined by:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Config\Data_Dir, if there is one.

  2. Otherwise, in %APPDATA%\enchant, where %APPDATA% is shorthand for the C:\Users\\AppData\Roaming\ folder (Windows Vista) or the C:\Documents and Settings\\Application Data\ folder (Windows XP/2000).


How Enchant decides which provider to load for a given language


The provider that is used for a given language is determined by the provider ordering. This can be set programatically by using the enchant_broker_set_ordering function. Enchant initializes the ordering by looking in the enchant.ordering file. There is a system ordering file as well as a user ordering file. A user entry overrides a system entry.


Enchant looks for the system enchant.ordering file in the following locations:



  1. The value found in the registry at HKEY_LOCAL_MACHINE\Software\Enchant\Config\Data_Dir, if any

  2. Otherwise, in %enchant%\share\enchant, where %enchant% is the location of libenchant.dll.


Enchant looks for the user enchant.ordering file in the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Config\Data_Dir, if there is one.

  2. Otherwise, in %APPDATA%\enchant, where %APPDATA% is shorthand for the C:\Users\\AppData\Roaming\ folder (Windows Vista) or the C:\Documents and Settings\\Application Data\ folder (Windows XP/2000).


If enchant doesn’t find any ordering files and the ordering is not overridden programmatically then the ordering is system dependent (but I think that means they will be ordered alphabetically by filename).


Where Enchant looks for Ispell dictionaries


Enchant looks for user Ispell dictionaries in the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Config\Data_Dir, if there is one.

  2. Otherwise, in %APPDATA%\enchant\ispell, where %APPDATA% is shorthand for the C:\Users\\AppData\Roaming\ folder (Windows Vista) or the C:\Documents and Settings\\Application Data\ folder (Windows XP/2000).


Enchant looks for system Ispell dictionaries in the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Ispell\Data_Dir, if there is one.

  2. Otherwise, using the value found in the registry at HKEY_LOCAL_MACHINE\Software\Enchant\Ispell\Data_Dir, if there is one.

  3. Otherwise, in %enchant%\share\enchant\ispell, where %enchant% is the location of libenchant.dll.


Where Enchant looks for MySpell dictionaries


Enchant looks for user MySpell dictionaries in the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Myspell\Data_Dir, if there is one.

  2. Otherwise, in %APPDATA%\enchant\myspell, where %APPDATA% is shorthand for the C:\Users\\AppData\Roaming\ folder (Windows Vista) or the C:\Documents and Settings\\Application Data\ folder (Windows XP/2000).


Enchant looks for system Ispell dictionaries in the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Myspell\Data_Dir, if there is one.

  2. Otherwise, using the value found in the registry at HKEY_LOCAL_MACHINE\Software\Enchant\Myspell\Data_Dir, if there is one.

  3. Otherwise, in %enchant%\share\enchant\myspell, where %enchant% is the location of libenchant.dll.


Where Enchant looks for the Aspell library


Enchant looks for the aspell-15.dll using the following locations:



  1. Using the value found in the registry at HKEY_CURRENT_USER\Software\Enchant\Aspell\Module, if there is one (this value should include the filename and not just the path).

  2. Otherwise, using the value found in the registry at HKEY_LOCAL_MACHINE\Software\Enchant\Aspell\Module, if there is one (this value should include the filename and not just the path).

  3. Otherwise, using the value found in the registry at HKEY_LOCAL_MACHINE\Software\Aspell\Path, if there is one, as the path to find aspell-15.dll (this is set by the Aspell installer for Windows).

  4. Otherwise, in the same directory as libenchant_aspell.dll.

  5. Otherwise, it uses the normal Windows search strategy, which includes looking in the path.

Setting up dictionaries for Enchant

Author admin | 21.02.2008 | Category Spelling, Developers

In my last post, I gave some tips for getting started with Enchant but you really can’t get anywhere until you have properly configured the providers and installed some dictionaries.


ASpell


The ASpell provider for Enchant requires aspell-15.dll. The easiest way to get started with ASpell is to use the installer for ASpell and for dictionaries.



  1. Be sure you have the ASpell provider (you can list it with enchant-lsmod) libenchant_aspell.dll

  2. Download the installer and run it to install ASpell.

  3. Download a dictionary installer from here and run the installer.

  4. Verify that it has been installed correctly by running enchant-lsmod.exe -list-dicts. You should see something like: en_US (aspell) but with the language code for the language you installed instead of en_US

  5. You can also test it using enchant -d en_US -a (again using the language code for the language you installed). Then you can type words which are or aren’t in the dictionary and see suggestions when they aren’t.



    It is possible to use ASpell by including the aspell-15.dll in the same directory as libenchant_aspell.dll or it can be somewhere in the path. If you install aspell using the Windows installer, it will write a registry entry that points to where it was installed and Enchant will use that to find the dependency.


    MySpell/Hunspell (OpenOffice format)


    Enchant doesn’t require any additional dependencies other than the MySpell provider for MySpell dictionaries but it does require you to copy the dictionary files to the right place.



    1. Be sure you have the MySpell provider (you can list it with enchant-lsmod) libenchant_myspell.dll

    2. Download a dictionary that you want: You can get any of the dictionaries from OpenOffice.org.

    3. Unzip (or otherwise uncompress the package) and copy the contents into %APPDATA%\enchant\myspell (you may need to create the enchant and myspell directories the first time).

      %APPDATA% is shorthand for the C:\Users\\AppData\Roaming\ folder (Windows Vista) or the C:\Documents and Settings\\Application Data\ folder (Windows XP/2000). But you can type %APPDATA% in the explorer’s address bar and it will go to the right place.



    4. Verify that it has been installed correctly by running enchant-lsmod.exe -list-dicts. You should see something like: en_US (myspell) but with the language code for the language you installed instead of en_US

    5. You can also test it using enchant -d en_US -a (again using the language code for the language you installed). Then you can type words which are or aren’t in the dictionary and see suggestions when they aren’t.


    Note: if you install MySpell and ASpell dictionaries for the same language, the ASpell dictionaries will be used instead of the MySpell dictionaries (this can be changed but I’ll leave that for another post)


    If you are feeling really adventurous and would like to create your own, you can see the directions here.


    ISpell


    Enchant’s Ispell provider also doesn’t have any dependencies (the dictionaries are read directly by Enchant).



    1. Be sure you have the ISpell provider (you can list it with enchant-lsmod) libenchant_ispell.dll

    2. Download a dictionary from here (at the bottom of the page).

    3. Unzip (or otherwise uncompress the package) and copy the contents into %APPDATA%\enchant\ispell (you may need to create the enchant and ispell directories the first time).

    4. Verify that it has been installed correctly by running enchant-lsmod.exe -list-dicts. You should see something like: en_US (ispell) but with the language code for the language you installed instead of en_US

    5. You can also test it using enchant -d en_US -a (again using the language code for the language you installed). Then you can type words which are or aren’t in the dictionary and see suggestions when they aren’t.


    Empty dictionaries


    An easy way to get spell checking for a language that doesn’t have a dictionary, is to create an empty MySpell dictionary. First, decide on the language code to be used. (You should use the iso639 code or the ietf language tag, for our example we will use qaa, the first of the private use language codes, as the language code). There are two files that are required, the affix file, qaa.aff, and the dictionary file, qaa.dic. They should both be put in %APPDATA%\enchant\myspell.


    The qaa.aff file should contain the following line:


    SET UTF-8


    The qaa.dic file should contain the following line (it’s a zero, the number of items in the dictionary):


    0


    Of course, you won’t have any items in your empty dictionary so all the words will be marked as misspelled. As you add items to the dictionary using Enchant, the words will be stored in %APPDATA%\enchant\qaa.dic.

    Using Enchant in a Windows App: Getting Started

    Author admin | 20.02.2008 | Category Spelling, Developers

    The following are notes toward getting started with incorporating Enchant into a Windows app.


    Enchant is a spell-checking framework that allows you to use many different spell-checking backends, including Aspell, Hunspell, and Ispell.


    You can get the source here.Building using MSVC is not difficult once all the dependencies are provided. The full build notes are here.


    If you don’t want to bother with building it yourself, you can get binaries here.


    libenchant.dll is the main library. It uses backend adapters for the providers: libenchant_aspell.dll, libenchant_ispell.dll, and libenchant_myspell.dll to proxy spell checking requests. (There are others available but if you want others, you will have to build it yourself.) There is also a .Net binding (Enchant.Net.dll) that can sit on top of libenchant.dll. libenchant_aspell.dll only works if you have aspell installed as well. If aspell-15.dll is not in your path, you must specify the dll file location in the registry key: HKCU or HKLM \Software\Enchant\Aspell\Module


    By default, the providers (the backend adapters) are put into the subdirectory lib\enchant underneath the location of libenchant.dll


    By default, you put dictionaries (like ispell and myspell) into the user’s appdata\enchant\[Provider Name] where [Provider Name] is MySpell or ISpell (But aspell get’s its dictionary from its installation location)


    You can check your setup by running enchant-lsmod.exe. It will list the providers it finds and the dictionaries as well.


    I’ll add more later.