V3.0 — ??.???.2018
© 2013-2018 Marco A.G.Pinto and Community Contributors.
Freely distributable and modifiable under the
Apache License v2.0.
SEMI-FINISHED MANUAL — REQUIRES A
FULL REVISION WHEN I HAVE THE TIME!
LAST UPDATE: 2018-08-30
Index
1 — Introduction
2 — Copyright & DISCLAIMER
3 — Contacts
4 — Thanks
5 — How it works
5.1a — Using
UTF-8
5.1b — EOL Windows VS Linux VS Mac
5.1c — Packing the files
into Extensions
5.1d — Shortcut keys
5.1e — Preferences
5.1f — Find
5.2 — Dictionary
5.2.1 — Creating
a Dictionary
5.2.2 — Editing
a Dictionary
5.2.3 — How
Suffixes/Prefixes work
5.2.4 — What is code position and rule
5.2.5 — Menus
5.2.5.1 —
AFF Validate
5.2.5.2 —
Extract wordlist
5.2.5.2.1 — All .txt
5.2.5.2.2 — All .csv
5.2.5.2.3 — Compounds .txt
5.2.5.2.4 — Compounds .txt
(LanguageTool)
5.2.5.3 —
Count wordlist
5.2.5.4 —
Show duplicates
5.2.5.5 —
Statistics
5.2.5.6 —
Fix invalid spaces
5.3 — Thesaurus
5.3.1 — Creating
a Thesaurus
5.3.2 — Editing a
Thesaurus
5.3.3 — Menus
5.3.3.1 — Extract
synonyms
5.3.3.2 — Clean
up symbols
5.3.3.3 — Show/Merge
duplicates
5.3.3.4 — Fix
invalid spaces
5.3.3.5 —
Combine/Sort/Unduplicate simple meanings
5.3.3.5.1 — Combine
5.3.3.5.2
— Unduplicate
5.3.3.5.3 — Sort
5.4 — Hyphenation
5.4.1 — Creating a
Hyphenation
5.4.2 — Editing a
Hyphenation
5.4.3 — Menus
5.4.3.1 — HYP
Validate
5.4.3.2 — Fix invalid spaces
5.5 — Autocorrect
5.5.1 — Creating
an Autocorrect
5.5.2 — Editing an
Autocorrect
5.5.3 — Menus
5.5.3.1 — Extract
autocorrects
5.5.3.2 — Clean
up hex symbols
5.5.3.3 —
Show/Delete/XDelete duplicates
5.5.3.4 — Fix
invalid spaces
6 — History
7 —
Apache License
1 — Introduction
An
open-source linguistic tool coded in PureBasic for editing the
Dictionary/Thesaurus/Hyphenation/Autocorrect files of
OpenOffice/LibreOffice, Firefox, Thunderbird and SeaMonkey,
provided they are in UTF-8 format.
This program was originally developed
to easily edit the synonyms of OpenOffice and LibreOffice.
I had this idea after asking to the
persons in charge of the pt_PT project, from Minho University
in Portugal, what I should do to suggest synonyms since only
suggested words for the Portuguese speller were added.
I was told that they didn't know how
to add synonyms since the guy in charge of that project left
it long-ago (2006).
Later, I wanted to make it compatible
with Firefox and Thunderbird, after it became possible to edit
dictionaries. I hoped that in the future someone would use it
in Thunderbird and fix the en_GB speller which was full of
typos and missing words. Since no one volunteered, I took this
task myself.
This is where my idea came from:
develop something easy to use since I tried some official
tools for the tasks and I didn't understand anything on them,
not even how to use them.
My tool is so intuitive that even a
child can use it.
On
25.Aug.2013 I released a
"forked" en_GB speller V2.00. The speller has
been made available to OpenOffice/LibreOffice, Firefox,
Thunderbird and SeaMonkey. So far, I have added 70 997 words (as of V2.64).
2 — Copyright & DISCLAIMER
This program is copyrighted to Marco
A.G.Pinto and Community Contributors.
It
is freely distributable and modifiable under the Apache
License v2.0.
3 — Contacts
(coder)
S.Mail: |
Marco A.G.Pinto
Apartado 3083
2746-501 Queluz
(Portugal )
|
E.Mail: |
marcoagpinto@sapo.pt |
4 — Thanks
Some special thanks go to:
Groups/Organisations:
— Apache Community;
— LanguageTool Community;
— LibreOffice Community;
— Mozilla Community;
— PureBasic Community.
Persons:
— Alberto Simões (Minho
University);
— Alexandro Colorado (Apache
OpenOffice);
— Andrea Pescetti (Apache
OpenOffice);
— Andreas Mantke (LibreOffice);
— Andrew Ferguson (PureBasic);
— António Manuel Dias (former
pt_PT maintainer);
— Áron Budea (LibreOffice);
— Ashley Scott (PureBasic);
— Bernd Krüger-Knauber (PureBasic);
— Chris Saxon (PureBasic);
— Daniel Naber (LanguageTool);
— Dennis Roczek (LibreOffice);
— Filiep Spyckerelle (European Parliament);
— Frédéric Laboureur (PureBasic);
— Gervase Markham (Mozilla);
— Guy Waterval (Apache
OpenOffice);
— Heinz Urban (PureBasic);
— Ian Neal (Mozilla);
— Jeroen Ooms (LibreOffice);
— Jonathan Kew (Mozilla);
— José Almeida (Minho
University);
— Kruno (LibreOffice);
— Kevin Scannell (Mozilla);
— Martin Srebotnjak (LanguageTool);
— Martin
Tlustos (LibreOffice);
— Matthias Mailänder (LanguageTool);
— Mauro
Trevisan (LibreOffice)(Mozilla);
— Mykhailo Oliinyk
— Pedro Marques (IADE —
Creative University);
— Peter Chamberlin (Mozilla);
— Ricardo Palomares Martínez (Apache OpenOffice);
— Shantanu Oak (LibreOffice);
— srod (PureBasic);
— Stuart Swales (Apache OpenOffice);
— Thomas Schulz (PureBasic);
— Tiago Santos (LibreOffice)(LanguageTool).
5 — How it works
5.1a — Using UTF-8
This tool was made to work with UTF-8
encoding.
A good trick to convert the old encoding
formats to UTF-8 is to use, for example, the Notepad++ editor for
Windows.
Simply open the files with it, change the
encoding to UTF-8 using the menu: Encoding
→ Convert to UTF-8 without BOM, so that accents
appear well.
Then, use the Save As
option and select "Normal text file (*.txt)" and
it is done.
Please don't forget to change by hand in
the header of the files, the word that has the old format, with
the new one.
The headers with the font encoding are
inside the files. See for example Version 2.4 (01/09/2007) of the
Italian files:
— The Dictionary (.DIC + .AFF):
The .DIC has no keyword.
The .AFF has the following keyword:
SET ISO8859-15 → Replace
with SET UTF-8
— The Thesaurus (.DAT):
It has in the first line:
ISO8859-15 → Replace
with UTF-8
— The
Hyphenator (.DIC):
It has in the first line:
ISO8859-15 → Replace
with UTF-8
5.1b — EOL Windows VS Linux VS Mac
I have done some tests saving in
Windows and Linux and the Windows files become bigger.
This happens because the End of Line characters is different in
Windows and in Linux.
Windows uses #CRLF$, Linux #LF$
and Mac #CR$.
Linux is the open-source standard, so it is better to use its
format.
5.1c — Packing the files into
Extensions
To create extensions you will have to use
other package which I don't know yet.
The simplest way though, is just to replace the files of an
existing extension with yours.
You should use the SORT button before you can
consider your Dictionary/Thesaurus/Autocorrect ready for being
packed into an extension.
Making extensions for Mozilla seems easier than making for
OpenOffice/LibreOffice, since for them it is more complex due to
the fact that they can have multiple languages in one archive.
Compress in a .ZIP
archive and then change the file extension to the target software.
5.1d
— Shortcut keys
TAB SWITCH RIGHT — CTR+TAB
TAB SWITCH LEFT — SHIFT+CTR+TAB
OPEN — CTR+O
SAVE — CTR+S
SAVE AS — SHIFT+CTR+S
FIND — CTR+F
ADD — CTR+A
GOTO — CTR+G
DELETE — DEL
EXIT A WINDOW & ABORT OPEN/SAVE/SAVE AS — <ESC>
EXIT — CTR+Q
5.1e — Preferences
Tools → Preferences
This window allows to select the global
settings of PTG.
If PTG doesn't find the file ptg3.prefs, or if
it from a different version, it will open this window
automatically at the start and you will need to save it.
Number of lines visible for each ListIconGadget in the
tabs:
Double-click in the last line that fits in the gadget,
the last line visible, and watch for number in visible
line textbox changes to what's selected. More space can be gained
by changing the window resolution in
this preference dialogue.
You may want to use the "Plus Pixels"
to set the accuracy between -10 and +10 pixels.
This will make it work with all OSes.
Resolution:
Set your preferred window resolution.
There is also the possibility of using a
window that will fit your desktop entirely.
The GUI will fit to the chosen resolution.
LanguageTool:
This will set the minimum number of blank lines between each chunk
in a LanguageTool grammar.xml file for parsing.
The idea is to edit/create rules using PTG.
Not working yet.
.AFF Aid Language:
It is possible to have external files with a list of each code, so
that while working in the dictionary edit/add window, it is easier
to find specific rules.
The GB Aid is hard-coded into PTG.
How .AFF Aid works:
The first line of
the .txt uses the 3 letter
ISO standard for the language, followed by the language in the
language itself separated by e.g. a colon. vec:Vèneto
You then still could make separate versions of the file, if you
want to make a more specialised version (indicating the country of
dialect): vec-IT (for Italian version) or vec-BR.
The standard list of codes can be found at:
http://www-01.sil.org/iso639-3/
You can consult the list also directly on the Web at
http://www-01.sil.org/iso639-3/codes.asp
There is the possibility to have
a third field with the name of the language in English, to suit
people who do not know the code, neither the language e.g.
nld:Nederlands:Dutch .
So, for Veneto, see the example:
custom_aff_aid.vec.png ;16x16
PNG locale for the ComboBox.
custom_aff_aid.vec.txt
;Veneto Rules. See the ".vec"
before the ".txt".
In the .txt file we followed the lines logic:
vec:vèneto:Veneto
a0/a1/a2: common verbs (first
conjugation verbs, second conjugation arrhizotonic verbs)
b0/b1/b2: second conjugation
rhizotonic verbs
So, the first line is what appears in the PTG ComboBox, and the
rest are the rules.
Then place both files inside the folder:
"custom_aff_aid"
Number Separator Character:
To separate thousands in the number of items by any character,
while displaying numbers.
For example: 1,000,000 or 1 000 000, etc.
5.1f — Find
It is possible to search for items in
each tab by pressing CTR+F or the "Find"
button.
It is also possible to directly Edit/Delete items from the results
by a right-click over the fount items.
The options are very simple:
1) Left match text, searches for items that match from the left
the search expression;
2) Match case allows case sensitive search;
3) Match extra information allows to search for text in all
columns of the items and not just in the first.

5.2 — Dictionary
PTG supports
the following Dictionaries features:
1) FLAG chr, number and long;
2) AF Compression;
3) Two fold recursivity;
4) NOSUGGEST flag;
5) NEEDAFFIX flag;
6) FORBIDDENWORD flag.
5.2.1
— Creating a Dictionary
If you have a
Dictionary in memory, use ERASE
to delete all entries.
To create a Dictionary from zero you just have to press the button
ADD to add words.
Use EDIT or double-click to change information
regarding the words.
Use DELETE or <DEL> to
remove entries.
The format of the Dictionary is two UTF-8 format
files with the extension .DIC and .AFF
.
Even though the tool reads the .AFF file, I
still haven't read documentation about how it works. This means
that creating a Dictionary from scratch will require some previous
knowledge.
Now-and-then remember to SAVE/SAVE AS to play
safe.
5.2.2 — Editing a Dictionary
First download the extension of
the language you intend to use, from the official pages.
You should have an .OXT
or .XPI file which you rename to .ZIP
in order to extract its contents to HDD.
Press OPEN and select
the .DIC file of the Dictionary and my tool
will also open the associated .AFF file.
Now just ADD/EDIT/DELETE
the current entries.
Now-and-then remember to SAVE/SAVE
AS to play safe.
5.2.3 — How Suffixes/Prefixes work
A small explanation how to make suffixes/prefixes work, based on
the e-mail written by Ricardo Palomares Martínez:
While editing dictionaries, you can add one or more identifiers
in front of a word, after a "/".
For example, the en_GB .AFF uses the
identifier "S" to create
plural:
party/S
This will look in the .AFF file and find:
SFX S Y 9
SFX S y ies
[^aeiou]y
SFX S 0 s [aeiou]y
SFX S 0 es [sxz]
SFX S 0 es [cs]h
SFX S 0 s [^cs]h
SFX S 0 s [ae]u
SFX S 0 x [ae]u
SFX S 0 s [^ae]u
SFX S 0 s [^hsuxyz]
SFX
S Y 9
SFX → It is a suffix (PFX would
mean a prefix).
S → The suffix identifier.
Y → Y for YES. It means the rule
can be cross-used with other prefixes and suffixes.
If N the rule can't be
applied together with other affixes the word might have.
9 → The number of lines related
to this rule.
SFX S y ies [^aeiou]y
SFX → It is a suffix (PFX would
mean a prefix).
S → It is the suffix/prefix
identifier.
y → For a suffix it is the
letter(s) to be removed from the end of the word.
For a prefix, from the
beginning of the word.
ies → For a suffix, it is the
letter(s) to be added at the end of a word.
For a prefix, from the
beginning of the word.
[^aeiou]y
→ Condition in regexp notation. Here, the rule is applied to
words ending with
a "y"
and the letter next to the last is NOT a,
e, i, o or
u.
Yes, the ^
means that the letters mustn't match.
So, party/S would
produce: parties
And, boy/S would
produce: boys, triggering the following rule
which has a 0 saying that no letters are
replaced, just added. It applies to words ending with a "y".
There is no ^ which means that the second letter from the right
must be a, e, i,
o or u.
SFX S 0 s [aeiou]y
Also notice that if words have capitalised letters, the Hunspell
in the used software will only accept them with capitalised
letters exactly like in the .DIC (it suggests a
typo if different).
5.2.4
— What is code position and rule
The derived words ListIconGadget has the fields: "Code
Position" and "Rule".
"Code Position" is the
characters position of the first line (header) of each rule used.
For example:
SFX S Y 9
(It is a Suffix with identifier "S",
"Yes" and "9"
rules in it)
Then, inside the dictionary editor, you now have a column with the
rule number after the header. Double-clicking in a ListIconGadget
line will jump to the header, then you will just have to scroll a
few lines down to the rule number.
Please notice that the editor gadget in the add/edit word window
has a "clean" version of the .AFF
with space repetitions removed in order to be faster finding the
codes (less characters to process).
Regarding the rules:
[^abc]de[fghi]
[fghi]
means the current character must be one of f,g,h,i.
de means it must have the word de
on the left of the last character check
above, if it matched the condition.
[^abc] means the current character in the word
must not be a,b,c
(all different).
See the example above for "party".
The rules may either be check from right to left (suffix) or left
to right (prefix).
Prefixes are run against the primary word and
suffixes. This means that if you have in the en_GB speller:
party/S
You will get:
party (primary)
parties (suffix)
If you had:
party/SU
You would run the "U" code
(prefix) against the two words above:
party (primary)
parties (suffix)
unparty (prefix)
unparties (prefix)
5.2.5 — Menus
5.2.5.1 — AFF Validate
After it is coded it will allow to search for
missing UTF-8 flags or duplicates of it,
duplicate rules or missing rules, showing the problematic lines
where the errors occur.
5.2.5.2 — Extract wordlist
Decodes and extracts the wordlist into a .txt file.
5.2.5.3 —
Count
wordlist
Decodes and counts the total number of words in the wordlist.
5.2.5.4 —
Show duplicates
The menu
to search for duplicates in the dictionary will match two
identical words, unless they have morphological information that
differentiates them.
See the example of the Portuguese speller where each word has
information in front:
celeste/p [CAT=adj,N=s,G=_]
Celeste [CAT=np,G=f,SEM=p]
5.2.5.5 —
Statistics
Decodes and counts the total number of words in the wordlist
showing also statistical information.
Now we can know the number of new words added to the speller
at any time based on a reference value (good for release
notes).
5.2.5.6 —
Fix
invalid spaces
5.3
— Thesaurus
5.3.1
— Creating a Thesaurus
If you have a Thesaurus
in memory, use ERASE
to delete all entries.
To create a Thesaurus from zero you just have to press the button
ADD to add synonyms.
Use EDIT or double-click to change information
regarding the synonyms.
Use DELETE or <DEL> to
remove entries.
The format of the Thesaurus is a UTF-8 format
file with the extension .DAT .
Now-and-then remember to SAVE/SAVE AS to play
safe.
5.3.2 — Editing a Thesaurus
First download the extension of the
language you intend to use, from the official pages.
You should have an .OXT
file which you rename to .ZIP in order to
extract its contents to HDD.
Press OPEN and select
the .DAT file of the Thesaurus.
Now just ADD/EDIT/DELETE
the current entries.
Now-and-then remember to SAVE/SAVE
AS to play safe.
In build 82 (14.Aug.2015) I improved the
Thesaurus part. It is now possible to use DEL to
delete synonyms and added a menu "Thesaurus
Tools" with options being the most important one the "Combine" which combines all
meanings but only works with simple lines:
x|2
a
b
would generate:
a|2
x
b
and:
b|2
a
x
PTG creates .idx files
for the Thesaurus.
5.3.3 — Menus
5.3.3.1 —
Extract
synonyms
5.3.3.2 —
Clean
up symbols
5.3.3.3 —
Show/Merge
duplicates
5.3.3.4 —
Fix
invalid spaces
5.3.3.5
— Combine/Sort/Unduplicate
simple meanings
5.3.3.6 —
Unduplicate
simple meanings
What is the definition of a "duplicate"
meaning?
It means for example:
apple|3
one
two
one
It means that it would remove the "one"
once becoming:
apple|2
one
two
It checks line by line and not column by
column:
apple|1
-|one|two|one
This wouldn't change the meanings.
2) "Sort
simple meanings" will work also line by line in the
Thesaurus meanings.
5.4 — Hyphenation
.AFF files are open in the first tab "Dictionary".
When you open a .DIC in "Dictionary",
it opens also the .AFF. Then, after opening a dictionary, you can
go to the "Hyphenation" tab and
open an Hyphenation .DIC file.
The joining of both will allow you to derivate words in
hyphenation or even type words by hand.

5.4.1 — Creating a
Hyphenation
Simply add the rules to the
EditorGadget or open an existing one.
5.4.2 — Editing a Hyphenation
Open the hyphenation .dic of the language
you intend to use or add new rules.
One can open a speller and then check hyphenation from its
wordlist, or just use an hyphenation file for words without codes.
Thanks to Mauro Trevisan for explaining to me how the rules work.
Results can always be checked with:
https://www.ushuaia.pl/hyphen/?ln=en
The "Rule" field in the
ListIconGadget is for developers to debug while they create rules.
Example of rules, taken from Németh László PDF:
. a l g o r i t h m .
4l1g4
l g o3
1g o
2i
t h
4h1m
-----------------
4 1 4 3 2 0 4 1
a l-g o-r i t h-m = al-go-rith-m
In simple words, if you have the word
"algorithm", it will add a space (internally) to each
letter and a "." on each
side:
". a l g o r i t h m . "
Then you may create the rules above in the EditorGadget without
spaces:
4l1g4
lgo3
1go
2ith
4h1m
If you use a dot:
.1go ; It means the rule matches the left of
the word
4h1m. ; It means the rule
matches the right of the word
.a4l1g4o3r2it4h1m. ;Using a dot on each side
means that the word must match the whole rule.
Only the odd numbers are converted to hyphens.
If several rules match the words, the highest number in a column
will be kept. This is probably used for priorities with higher
numbers being taken into consideration first
Remember that the first word in the Hyphenator EditorGadget must
be: UTF-8
On build 127, thanks to Mauro Trevisan, I
improved the parsing of rules, to accept repeated rules per
word:
For the word "ultrateren":
. u l t r a t e r e n .
1l
2l t
1t
1t
t2r
1t
1r 1r
1n
2n
.
-----------------------
2 1 2 1 1 2
u l-t r a-t e-r e n = ul-tra-te-ren
Rules:
1l
2lt
1t
t2r
1t
1r
1n
2n.
Mauro also told me about another type of rules that already have
an hyphen.
For the word "inportar":
. i n p o r t a r .
p o-r
t a r
i n1
-------------------
1 -
i n-p o-r t a r = in-po-rtar
Rules:
po-rtar
in1
Press OPEN and select the hyphenation .DIC file.
Now-and-then remember to SAVE/SAVE
AS to play safe.
5.4.3
— Menus
5.4.3.1 — HYP Validate
After
it is coded it will allow to search for missing UTF-8
flags or duplicates of it, duplicate rules or rules without
numbers, showing the problematic lines where the errors occur.
5.5
— Autocorrect

5.5.1 — Creating an Autocorrect
5.5.2 — Editing an Autocorrect
First download the DocumentList.xml of the language you intend to
use, from the official AOO/LO pages.
The
autocorrect files in AOO/LO are stored in the path:
$instdir/share/autocorr/acor_*.dat
which are actually zipped files containing the XML
files.
Rename the .DAT files
to .ZIP and extract the contents.
Using Notepad++
or other tool, format the DocumentList.xml so
that it is in UTF-8 and it uses the structure
(you can copy/paste this first line over the XML
entry):
<?xml version="1.0"
encoding="UTF-8" ?> <block-list:block-list
xmlns:block-list="http://openoffice.org/2001/block-list">
<block-list:block
block-list:abbreviated-name="incorrect1" block-list:name="correct1"/>
<block-list:block
block-list:abbreviated-name="incorrect2" block-list:name="correct2"/>
<block-list:block
block-list:abbreviated-name="incorrect3" block-list:name="correct3"/>
<block-list:block
block-list:abbreviated-name="incorrect4" block-list:name="correct4"/>
etc. (use lines
like the previous)
</block-list:block-list> |
Have in mind that you must have per
line only one pair of incorrect/correct. I noticed that the .XML
I edited had all the text in one single line, so use Notepad++
to create a return at the end of each line:
Press OPEN and
select the DocumentList.xml file.
Now just ADD/EDIT/DELETE
the current entries.
Now-and-then remember to SAVE/SAVE
AS to play safe.
5.5.3
— Menus
5.5.3.1 — Extract
autocorrects
It will extract to
a .txt file the list of autocorrect entries, with the
structure:
diden't → didn't
speeking → speaking
5.5.3.2 — Clean up hex symbols
5.5.3.3 —
Show/Delete/XDelete
duplicates
It allows you to
show, delete and eXclusive Delete entries in the autocorrect
list.
For example, Delete will keep one of the duplicates found:
word1
word1
word1
word2
word2
word3
It will keep:
word1
word2
word3
eXclusive Delete will remove all entries if they have at
least one duplicate:
word1
word1
word1
word2
word2
word3
It will only keep:
word3
This is useful if you have appended
your list (merged) into an existing autocorrect file and want
only to commit to Gerrit (LibreOffice) the words not found on
your list and on Gerrit's.
5.5.3.4 — Fix invalid spaces
6 — History
V3.0 — ??.???.2018
Compiled with PureBasic 5.XX.
a) General
— The manual has been rewritten;
— Supports more window resolutions
— Several new options and gadgets;
— It uses dynamic arrays making all load/save operations
ultrafast;
— Shortcut keys;
— Enhanced pop-up menu which can be used on the
ListIconGadgets items with options for smart/faster use;
— Invalid characters, such as
spaces, while inserting data, turns the gadgets background to
red;
— Created a menu
"Prefs"
with settings that loads and
saves in a file named
"ptg3.prefs";
(Prefs allowing to select a dynamic
number of lines. This makes it compatible with all
OSes).
— It
saves Dictionary + Thesaurus + Hyphenation + Autocorrect
with #LF$ instead of #CRLF$
for Linux mode;
— Speeded up several operations;
— Better UTF-8
warnings;
— GUI improvements and fixes;
—
Modern menus look for Windows;
— Pop-up menu has an extra
option "Clone"
(very useful);
— Added "Not coded yet!"
to tabs not coded yet;
— New About PureBasic menu icon;
— Renamed "Quit" menu
item to "Exit";
— Created a colour constant #GreenDark
that is better seen on a grey background;
— Coded undo/redo;
— New button to move to the bottom of the ListIconGadget;
— Help menu item now shows
"F1" in it;
— F1 (help) now works in the edit/new items windows;
— Formats the total number of items (numbers) to be better
seen;
— There is a "Recent Files:"
entry in the "File"
menu;
— It is possible to Edit/Delete from the
"Advanced Find" window;
— Cleaned the code.
— HTML Help menu item;
— Added images to pop-up menus;
— Message Requesters now have a sign;
— About window now shows
www.proofingtoolgui.org
as the project's page;
— The default separator chr for numbers is now a comma;
— New pop-up menu option
"Invert Selection";
— Changed the e-mail address in
"About" window to Sapo;
— Improved the check for updates code;
b) Linux
—
GTK3 support;
— Now there is an icon while
running;
— Apache License link now works.
— Fix: Get maximum window on PREFS now
works (still doesn't work with Ubuntu 16.04, only with
17.10 and maybe 17.04);
— Fix: Highlighted item during a CURS UP at
the top seems to only be removed after the scroll.
— Fix: Highlighted item during a CURS DOWN
at the bottom seems to only be removed after the scroll.
c) Dictionary
—
Pop-up menu to copy the selected
line word into the clipboard;
— Taboo
warning if the NOSUGGEST flag is used;
— It
is possible to have a custom
"AFF Aid" files with 16x16
PNGs flags;
— Replaced the ListIconGadget field
"Position"
with "Code Position".
— Added recursivity to dictionary word decoding
(twofold);
— Support
for FLAG NUM and LONG;
— Improved: If a code isn't found
in the .aff it no longer exits the decoding function;
— Major speed gain in the .AFF
optimising code (gl_ES);
— It accepts: \/ are escaped
"/"
in dictionary words;
— It combines PREFIXES against
PRIMARY+SUFFIXES.
—
Support for extracting wordlist compounds for LanguageTool
and check for duplicates makes use of morphological
information;
— The check for duplicates in dictionary, also shows the
lines numbers;
— Added "Missing Codes:"
to the Dictionary editor;
— Window enlarges according to window size definition;
— Major speed gain in
"Optimising .AFF decode cache" — up to ~30%
faster;
— Fix: Check for duplicates improved
(morphologic data);
— Fix: Decoding of rules with a 0 (pt_PT);
d) Autocorrect
— Added
Exclusive Delete;
— Allow to try to open a file with a non-valid header;
e) Hyphenation
—
Coded the hyphenator.
f) Thesaurus
—
Sorting
synonyms naturally by replacing | with chr(9) and after
sorting with |;
—
Update number of meaning while
editing synonyms supports Mac OS line endings;
— Saving
the Thesaurus creates an .idx file.
— It
is possible to extract a thesaurus in book format (can be
later converted to PDF);
— EditorGadget has a grey tip on it;
—
Window enlarges according to window size definition;
On build 130:
— Fix:
In Hyphenation tab it was not possible to use CURS UP/DOWN
in the Hyphenation ListIconGadget;
— New pop-up menu option:
"Move" for LanguageTool;
— Coding of "Check for
Updates";
— Fix:
Coded "SFX N" rules,
by not applying prefixes to it (Mykhailo Oliinyk);
— Cleaned the code a bit.
On build 129:
— Hyphenation: Fixed/Improved the display of rules (Mauro
Trevisan):
1) No spaces;
2) Dots.
On build 127–128:
— Hyphenation:
1) Pop-up menu: "Copy
word","Copy rule","Copy word & rule";
2) Support for "-"
in hyphenation rules;
3) Support for "%"
in hyphenation rules;
4) Fix:
Hyphenation now supports repeated rules per word.
— Major Speed up of hyphenation;
— Major Speed up of dictionary processing.
On build 124–126:
— Improved the manual a lot;
— The tab "Dictionary"
now has "*.dic + *.aff"
to make it easier to understand;
— Apache License is now built-in in the manual;
— Support for compressed AF;
— NEEDAFFIX support;
— Hyphenation:
1) While hyphenating words it shows the current
count+total;
2) Adds "UTF-8" to
hyphenator if EditorGadget is blank;
3) Hyphenation only works if the EditorGadget starts
with the word "UTF-8";
4) Fix:
Didn't skip the word "UTF-8";
5) Fix:
defaults MIN LEFT/RIGHT before checking for new values;
6) Now it detects if rules don't end with a
<RETURN>;
7) Better detection of no rules;
8) Added a "Clear"
button;
9) Added label: "#
Hyphenations:";
10) Hyphenation now respects the flags: LEFTHYPHENMIN
and RIGHTHYPHENMIN;
11) Fix:
Would skip the 5 lines header (if no standard header, it
would skip the first five rules);
12) Fix:
Changing resolution in the Preferences would reset each
tab filename to "n/a"
and erase the Hyphenation rules.
|