[devel] Re: Q: ispell-en and russian words

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Июн 17 21:59:09 MSD 2004


On Tue, Jun 15, 2004 at 09:42:53PM +0400, Alexey Tourbin wrote:
> У меня ispell из Мастра 2.2 стоял на холде из-за одной неприятной
> особенности.  Теперь при тестировании epa7 я вижу, что эта особенность
> осталась.
> 
> $ echo айспелл | ispell -a
> @(#) International Ispell Version 3.1.20 10/10/95
> 
> $ rpm -Uvh ...
> $ echo айспелл | ispell -a
> @(#) International Ispell Version 3.2.06 08/01/01
> # айспелл 0
> 
> $
> 
> Т.е. в более новых версиях при использовании английского словаря все
> русские слова отмечаются как ошибочные.  Почему так происходит, я пока
> не знаю.  Никто не сталкивался?

Дело, кажется, в следующем: 

--- ispell-3.1.20-ipl18mdk/ispell-3.1/languages/english/english.aff     1995-01-23 18:28:30 +0000
+++ ispell-3.2.06-alt2/ispell-3.2.06/languages/english/english.aff      2001-07-25 21:51:47 +0000
<...>

-# First we declare the character set.  Since it's English, it's easy.
-# The only special character is the apostrophe, so that possessives can
+# First we declare the character set.  Since it's English, it would be
+# easy, except that English likes to borrow accents (notably
+# acute/grave) from other languages.  To be safe, we'll declare a majority
+# of ISO Latin-1.  However, we do not declare the German "ess-zed" in
+# capitalized form, because doing so would cause troubles with certain
+# other misspellings; see the German affix files for more information.
+#
+# In keeping with the march of progress, ISO Latin-1 is the default
+# encoding.  This helps us avoid some of the more obviously difficult
+# problems involving encoding acute and grave accents as apostrophes.
+#
+# We also declare the apostrophe, so that possessives can
 # be handled.  We declare it as a boundary character, so that quoting with

<...>

 boundarychars '
-wordchars [a-z] [A-Z]

-altstringtype "tex" "tex" ".tex" ".bib"
+wordchars      a       A
+stringchar     \xE0    \xC0    # аА Latin letter A with grave
+stringchar     \xE1    \xC1    # бБ Latin letter A with acute
+stringchar     \xE2    \xC2    # вВ Latin letter A with circumflex
+stringchar     \xE3    \xC3    # гГ Latin letter A with tilde
+stringchar     \xE4    \xC4    # дД Latin letter A with diaeresis
+stringchar     \xE5    \xC5    # еЕ Latin letter A with ring above
+stringchar     \xE6    \xC6    # жЖ Latin letter AE
+wordchars      [bc]    [BC]
<...>


Т.е. вместо [a-zA-Z] стали перечислять всё подряд, включая acute, grave
и т.д.  В результате невозможно работать с (частично)английским текстом,
который содержит русские слова (по крайней мере в кодировке cp1251).
Т.е. все русские слова считаются у меня ошибочными.

Что с этим можно сделать?

PS: перевожу тему в devel на .
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20040617/342b1801/attachment-0001.bin>


Подробная информация о списке рассылки Devel