Program Sparx Enterprise Architect dzięki modułowi do generowania raportów może posłużyć za narzędzie do opracowania kompleksowej dokumentacji projektowej. Przy użyciu możliwości generowania raportów RTF można tworzyć dokumentację wprost w Enterprise Architect zamiast przy użyciu MS Word lub Open Office. Takie rozwiązanie w warunkach polskich jest niestety obarczone poważną wadą. Enterprise Architect nie został wyposażony w polski słownik do sprawdzania poprawności pisowni.
Na forum Sparxa pojawiają się prośby o dodanie polskiego słownika do programu. Ja długo żyłem nadzieją, że producent zlituje się nad polskimi użytkownikami, bo mam wrażenie, że program Sparx Enterprise Architect cieszy się w Polsce dużą popularnością i już dawno wiedzie prym w kategorii narzędzi typu CASE.
Rozpocząłem własne badanie w jaki sposób możliwe byłoby samodzielne dodanie takiego słownika. Najpierw udało mi się ustalić, że słownik jest zdefiniowany w plikach z rozszerzeniem .clx oraz .tlx. Na przykład słownik dla języka angielskiego (amerykańskiego) znajduje się w plikach
ssceam2.clx oraz
ssceam.tlx. Pierwszy z tych plików zawiera słownik w wersji skompilowanej, dzięki czemu sprawdzanie pisowni jest znacząco szybsze od sprawdzania w oparciu o plik tekstowy
ssceam.tlx.
Sprawdzanie pisowni w oparciu o plik tekstowy .tlx przebiega sprawnie, jeśli ilość słów nie przekracza kilku tysięcy.
Dodatkowo słowa dodawane do słownika przez użytkownika umieszczane są w pliku
%AppData%\Roaming\Sparx Systems\EAuserdic.tlx.
Pliki te są obsługiwane przez program WSpell oferowany przez firmę
Wintertree software. Zatem Sparx korzysta z silnika
Sentry Spelling Checker Engine firmy
Wintertree software.
Na stronie producenta znajduje się szczegółowa dokumentacja przeznaczona dla developerów, w której jest opisane dokładnie, w jaki sposób działa ich produkt.
Znalazłem doskonały słownik języka polskiego w formacie .txt pozbawiony jakichkolwiek dodatkowych znaczników, które są wykorzystywane przez alternatywny program do sprawdzania pisowni Aspell. Słownik ten zawiera blisko 120 000 słów (od "AA" do "żyźnie") i sprawdziłby się idealnie jako słownik do sprawdzania pisowni. Przy pomocy programu Gżegżółka przekonwertowałem ten słownik ze strony kodowej Windows 1250 na ISO 8859-2 (Europa Środkowa).
Znalazłem w sieci również program WL2Dic, który umożliwia konwersję z pliku tekstowego do pliku .clx. Program ten działa poprawnie, umożliwia wskazanie pliku źródłowego, pliku docelowego oraz kodu języka. Możliwe jest wybranie kodu dla języka polskiego, jednak w takim przypadku program uprzejmie informuje, że w takim wypadku należy wybrać opcję tworzenia słownika w formacie Unicode.
Cannot create non-unicode dictionary for this language.
Please specify -u switch
Niestety program WL2Dic wykorzystuje wersję biblioteki
Sentry Spelling Checker Engine w wersji 5.14.
A niestety
Sentry Spelling Checker Engine do wersji 5.14 nie umożliwiał skorzystania z kodowania znaków w ISO-8859-2 (czyli środkowoeuropejski).
Na stronie
SSCE Revision History widnieje informacja:
The Sentry engine can now support Unicode through a build option.
Currently, this support is limited to the SSCE Source SDK. As part of
this support, SSCE can now process single-byte characters from the
Latin 1 (ISO-8859-1) character set or Unicode. Character sets
ISO-8859-2 through ISO-8859-10 are no longer supported (use Unicode
instead). The lexicon-compression API (SSCE_CompressLex*) creates a
Latin 1 or Unicode compressed lexicon depending on how the engine was
built. The Unicode engine can read both Unicode and Latin 1
compressed lexicons, but the Latin 1 engine cannot read Unicode
compressed lexicons.
W historii wersji 5.15 zapisano:
The Sentry engine now supports all ISO-8859 character sets. Two new
functions, SSCE_GetCharSet and SSCE_SetCharSet have been defined for
this purpose. The default character set is ISO-8859-1, which was the
only ISO-8859 character set supported previously. The character set
is a "global" setting, meaning a change to the character
set affects all sessions. A set of language-id constants for each
major language covered by ISO-8859 character sets has been defined.
A w rejestrze systemowym (
HKEY_CURRENT_USER\Software\Wintertree\SSCE) dodano klucz
CharSet, który służy do zmiany strony kodowej od ISO-8859-1 do ISO-8859-10. Wartość tego klucza mogłaby się zmieniać automatycznie po wyborze polskiego słownika.
Enterprise Architect korzysta z wersji 5.16, która umożliwia teoretycznie obsługę polskiego słownika. Przypuszczam, że przygotować poprawnie działający polski słownik może tylko Sparx Systems lub inna firma, która zakupiła pełną wersję SDK od firmy
Wintertree software. Testowa wersja tego SDK pozwala tylko na generowanie słownika zawierającego nie więcej niż 1000 słów.
Istnieje również możliwość skorzystania z kodowania unicode, jednak jest on obsługiwany tylko w przypadku korzystania z silnika
Sentry Spelling Checker Engine dla Javy, a nie dla Windows (czyli w programach napisanych w C/C++, Delphi, Visual Basic, VB.NET, C# lub ASP).
Co zatem można zrobić?
Próbowałem obejść ten problem oszukując moduł sprawdzania pisowni, twierdząc że kompilowany przeze mnie słownik dotyczy języka angielskiego. Plik docelowy o nazwie
ssceam2.clx wygenerował się poprawnie i osiągnął wielkość 509 kB. Słownik ten jest poprawnie interpretowany w Enterprise Architect, ale niestety nie w pełnym zakresie. Efekt jest połowiczny - nie są obsługiwane słowa zawierające polskie znaki.
Podobny efekt udało się uzyskać Michałowi Wolskiemu, który udostępnia taki słownik na swojej stronie:
http://www.michalwolski.pl/2009/06/sprawdzanie-pisowni-w-enterprise-architect-polski-slownik/
Ja jednak uznałem, że rozwiązanie częściowe mnie nie satysfakcjonuje. Oznaczałoby to, że i tak mniej więcej połowa wyrazów byłaby podkreślana na czerwono.
Podsumowanie
Nie mam dobrych wieści w temacie sprawdzania pisowni w języku polskim w
Enterprise Architect. Dopóki
Sparx Systems nie zmieni silnika do sprawdzania pisowni niemożliwe jest wykorzystanie słownika języka polskiego.
Obecnie mamy dwie alternatywy:
- korzystanie ze słownika bez poprawnej obsługi polskich znaków diakrytycznych,
- wyłączenie opcji sprawdzania pisowni (menu Tools --> Options --> Objects --> Disable spelling).