[prev in list] [next in list] [prev in thread] [next in thread] 

List:       koffice-devel
Subject:    [PATCH] KoSpell wrong language assignment.
From:       "ismail (cartman) donmez" <voidcartman () yahoo ! com>
Date:       2003-02-05 11:51:55
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

There is a problem in koSpell.cpp in  KOSpell::initConfig() function . It 
wrongly assigns dictionary name to language variable in aspell config.

And this breaks many languages but works for Laurent because he uses French. 
Here is why :

If you use French ( or German ) , your dictionary file looks like 
french-foo.alias. and when you set this to be language aspell only takes 
first two character in this case "fr" and set it as language which will 
surely work for French language.

But in case you use English your aspell dictionary is named 
american-w-accents.alias so aspell takes "am" as language and gives an error 
because there are no language abbreviated as "am".

To fix this one have to guess language name from *.alias file and the attached 
patch does this. Please review and apply.

P.S : Patch fixes 3 bugs see  http://bugs.kde.org/show_bug.cgi?id=53579 

Regards,
/ismail


- -- 
It's clever, but is it art? 


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+QPrglE1Oa9O15h8RAnH9AKCTx/Wt08EupWaJ78U4QE0ACY9BwQCfW6n6
DuiQsjCDiRwNy8kcRP1z0M8=
=Slbe
-----END PGP SIGNATURE-----

["kospell.patch" (text/x-diff)]

--- kospell.old/koSpell.cpp	2003-02-03 21:44:37.000000000 +0200
+++ kospell/koSpell.cpp	2003-02-03 21:45:48.000000000 +0200
@@ -188,9 +188,77 @@
 {
     config = new_aspell_config();
     kdDebug()<<" ksconfig->dictionary() :"<<ksconfig->dictionary()<<endl;
+    QString langname = ksconfig->dictionary() ;
 
-    aspell_config_replace(config, "lang", ksconfig->dictionary().isEmpty() ? "fr": \
                ksconfig->dictionary().latin1());
-    kdDebug()<<" ksconfig->dictionary() :"<<ksconfig->dictionary()<<endl;
+     // Get language name from *.alias file idea/code taken from interpret
+    // function in koSconfig.cpp
+  if (langname.contains("english") || langname.contains("american") ||
+      langname.contains("british") || langname.contains("canadian") ){
+   langname="en";
+  }
+  else if (langname.contains("espa~nol") || langname.contains("espanol") ){
+   langname="es";
+  }
+  else if (langname.contains("dansk") ){
+   langname="da";
+  }
+  else if (langname.contains("deutsch") ){
+   langname="de";
+  }
+  else if (langname.contains("german")) {
+   langname="de";
+  }
+  else if (langname.contains("portuguesb") || langname.contains("br") ) {
+   langname="br";
+  }
+  else if (langname.contains("portugues") ){
+   langname="pt";
+  }
+  else if (langname.contains("esperanto") ){
+   langname="eo";
+  }
+  else if (langname.contains("norsk") ){
+   langname="no";
+  }
+  else if (langname.contains("polish") ){
+     langname="pl";
+  }
+  else if (langname.contains("russian") ){
+   langname="ru";
+  }
+  else if (langname.contains("slovensko") ){
+     langname="si";
+  }
+  else if (langname.contains("slovak")){
+     langname="sk";
+  }
+  else if (langname.contains("czech") ){
+     langname="cs";
+  }
+  else if (langname.contains("svenska") ){
+   langname="sv";
+  }
+  else if (langname.contains("swiss") ){
+   langname="de";
+  }
+  else if (langname.contains("ukrainian") ){
+   langname="uk";
+  }
+  else if (langname.contains("lietuviu") || langname.contains("lithuanian") ){
+    langname="lt";
+  }
+  else if (langname.contains("francais" )|| langname.contains("french") ){
+   langname="fr";
+  }
+  else if (langname.contains("belarusian")) {
+   langname="be";
+  }
+  else if( langname.contains("magyar") ) {
+   langname="hu";
+  }
+
+    aspell_config_replace(config, "lang",langname.isEmpty() ? \
"fr":langname.latin1()); +    kdDebug()<<" ksconfig->dictionary() :"<< \
langname.latin1() <<endl;  AspellCanHaveError * ret;
     ret = new_aspell_speller(config);
     if (aspell_error(ret) != 0) {


_______________________________________________
koffice-devel mailing list
koffice-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/koffice-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic