Re: find_lang
Jeffrey Johnson <[email protected]> Mon, 23 Jan 2012 08:16:48 -0500
| Newsgroups | gmane.linux.mandrake.cooker.devel |
|---|---|
| Message-ID | <[email protected]> |
On Jan 23, 2012, at 7:43 AM, Dmitry Mikhirev wrote: > On Mon, 23 Jan 2012 13:24:41 +0100 > Per Øyvind Karlsen <[email protected]> wrote: > >> Den 11:46 23. januar 2012 skrev Dmitry Mikhirev >> <[email protected]> følgende: >>> On Mon, 23 Jan 2012 11:14:04 +0100 >>> Per Øyvind Karlsen <[email protected]> wrote: >>> >>>> Den 10:55 23. januar 2012 skrev Dmitry Mikhirev >>>> <[email protected]> følgende: >>>>> On Mon, 28 Nov 2011 20:59:24 +0100 >>>>> Per Øyvind Karlsen <[email protected]> wrote: >>>>> >>>>>> Den 20:23 28. november 2011 skrev Tomasz Paweł Gajc >>>>>> <[email protected]> følgende: >>>>>>> >>>>>>> Does this macro still work ? >>>>>> Yes, but /usr/lib/rpm/mandriva/find-lang.pl has been replaced by >>>>>> rpm's own /usr/lib/rpm/find-lang.sh. >>>>>> >>>>>> It has two important behaviour changes: >>>>>> * If specifying multiple names, they need to be specified first, >>>>>> while the last argument needs to >>>>>> be the output filename, ie. the following: >>>>>> >>>>>> %find_lang foo foo bar >>>>>> >>>>>> Needs to be changed to: >>>>>> %find_lang foo bar foo.lang >>>>>> >>>>>> * If no files are found, the script will exit with an error >>>>>> status rather than creating an empty .lang file >>>>>> This will break build of packages which incorrectly uses >>>>>> %find_lang where there are no language files >>>>>> to find since the 'foo.lang' file used with '%files -f foo.lang' >>>>>> won't be created. >>>>>> find-lang.sh will report there being no language files found >>>>>> when exiting with error, so should be easy to >>>>>> understand and fix. :) >>>>>> >>>>>> -- >>>>>> Regards, >>>>>> Per Øyvind >>>>>> >>>>> >>>>> I have a problem with finding localization files in qupzilla >>>>> package. They are located in %{_datadir}/%{name}/locale/*.qm, but >>>>> macro >>>> Locale files probably not found in the expected location, should >>>> likely be %{_datadir}/locale rather than >>>> %{_datadir}/%{name}/locale..? >>> >>> It is common for Qt apps to keep locale files in >>> %{_datadir}/%{name}/locale or %{_datadir}/%{name}/translations. You >>> can check >>> urpmq -l arora | grep '\.qm$' >>> or >>> urpmq -l smplayer | grep '\.qm$' >>> to ensure. >>> >>>>> >>>>> %find_lang %{name} --with-qt >>>>> >>>>> fails... Is it my mistake or find_lang error? >>>> Your! :p >>>> >>> I'm still not sure. :-) >> Yupp, seems like I was a bit too quick on this one, was looking at >> the wrong lines of find-lang.sh.. :p >> >> The reason for the breakage is that it looks for translation files >> with '%{name}' >> in it, and it also seems as there's some inconsistencies in the >> naming of these translation files as well.. :| >> One can workaround this by passing --all-name so that it'll pick up >> all translations. >> >> I've commited fixes for qupzilla to svn resolving this. :) >> > > Thank you! But wouldn't it be better not to search %{name} in filename > if --with-qt specified? AFAIK it is very common not to include program > name to *.qm file names. > What is needed is regularity in how various applications handle i18n. Without regularity, the find_lang script breaks repeatedly. The find_lang script has broken at least 3 times this fall with various discussions about how to best fix. But the realities are essentially this: Applications have many ad hoc techniques for handling i18n. The expectation with %find_lang usage in *.spec recipes is Just Works. The conclusion (and prediction) is that %find_lang will break again within weeks. Note that the >300 locales being carried around in linux distros who have no market which needs most of the locales is a pleasantly inclusive "community" lie. How many people -- besides Alan Cox -- can read Welsh? hth 73 de Jeff hth 73 de Jeff > -- > Best regards, > Dmitry Mikhirev > > http://gnu.linuxcenter.ru >