Re: German translation

On, Thu Jan 26, 2006, Ronny Steiner wrote:

> Hi!
> 
> Thank you for your quick reply!
> I checked all you said --> o.k.
> ..searched the internet a while and found my problem:
> 
> I don't know why but if I change LC_CTYPE from de_DE to de_DE.UTF-8 it 
> works fine!

Sounds like emelfm does not set the locale here correctly in my opinion.
I did not recheck it in detail for now, but usually something like 

     setlocale (LC_ALL, "");
     bindtextdomain (PACKAGENAME, LOCALEDIR);
     textdomain (PACKAGENAME);
     bind_textdomain_codeset (PACKAGE, "UTF-8");

does the right thing (if the translations are in UTF-8). If I see that
correctly in e2_main.c, the last call for setting the encoding of the
translations does not exist. 

Assumption:
Because of this your translations are converted using a
latin-1/15 -> utf-8 conversion, which breaks them (as they are already in
utf-8, but your encoding suffix in the LC_* is not set).

If I am right with that (I am no gettext guru), it would make more sense
to fix it within the program (trying to enforce UTF-8, if not set in the
locale) rather than in your translations (Tom, your opinion here? :-).

> So I go on the german translation of emelFM2 0.1.5
> 
> Maybe anyone can tell me why I have to change LC_CTYPE. I cant 
> understand that because all the other linux-programs with german local 
> file don't need that?

See above. I attached a minor patch for the e2_main.c, which you might
give a try to see, if it works for you afterwards. You can easily apply
it by changing in the (freshly extracted) sources directory and running 

   patch < path/to/locale.diff

Regards
Marcus
--- src/e2_main.c.orig  Thu Jan 26 23:05:49 2006
+++ src/e2_main.c       Thu Jan 26 23:06:28 2006
@@ -278,6 +278,7 @@
        printd (DEBUG, "setting locale dir to '%s'", LOCALE_DIR);
        bindtextdomain (BINNAME, LOCALE_DIR);
        textdomain (BINNAME);
+        bind_textdomain_codeset (BINNAME, "UTF-8");
 #endif
 
 }

Other related posts: