On 08/18/07 13:10, Matthias Schwarzott wrote: > On Samstag, 18. August 2007, Klaus Schmidinger wrote: >> On 08/18/07 12:55, Matthias Schwarzott wrote: >>> On Freitag, 17. August 2007, Klaus Schmidinger wrote: >>>> On 08/15/07 15:07, Matthias Schwarzott wrote: >>>>> On Mittwoch, 15. August 2007, Klaus Schmidinger wrote: >>>>> >>>>> This will work, but only if the locale de_AT you set does exist (being >>>>> in output of locale -a). >>>>> >>>>>> but it came up with the default English texts. Then I renamed >>>>>> "de" to "de_AT" and did the same again, and I got the German texts. >>>>>> >>>>>> I was hoping that gettext would be a little more intelligent and >>>>>> look for >>>>>> >>>>>> - an exact match ("de_AT") >>>>>> - a default ("de") >>>>>> - any suitable language ("de_DE") >>>>> I think it does this but not doing "any suitable language". >>>>> ... >>>> Could you please try the attached patch and see whether this >>>> works for you? >>>> >>>> This should, e.g., select any "de*" locale in case there is no fully >>>> matching one. >>> Not yet tested, but code looks promising. >>> >>> Another way to get list of usable locales is this: >>> Checking the subdirs of /usr/lib/locale/ >>> And then using all, that have associated mo file under vdr's LOCALEDIR. >>> Sadly I don't know if there is a better way than hardcoding that >>> directory. >>> >>> But "locale -a" command will give the same result - maybe analyzing its >>> code will help (or just calling this external command). >> Currently VDR has its own directory with all its supported locales. >> It can quickly collect all locales by going through the entries >> in that directory. I can even compile my VDR so that it searches >> for the locales in "./locale" inside the source directory. >> >> I like the simplicity of this, and wouldn't want to make it any >> more complex. >> > The directory /usr/lib/locale does NOT contain any translations, but rather a > directory for every locale you can set via setlocale. > Its meant as a replacement of the setlocale loop. I'm afraid I don't see what you mean. I know that the "locale" directory doesn't contain translations directly, but rather subdirectories. VDR gathers the names of these subdirectories and does a setlocale() for each of them. Then it tries to get the translation of "LanguageName$English" in order to build a list of all available languages. How else do you suggest that could be done? > Btw. arent these two calls identical > setlocale(LC_MESSAGES, oldLocale); > setlocale(LC_MESSAGES, ""); I guess so. Klaus _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr