Re: find_lang

Alexander Khryukin <[email protected]> Tue, 24 Jan 2012 23:55:00 +0300
Newsgroups gmane.linux.mandrake.cooker.devel
Message-ID <CABtOAfxkShohhDVxmbzNvDN2CN7dW7OaaTZc0O5LNdSC6nWMsQ@mail.gmail.com>
2012/1/24 Alexander Khryukin <[email protected]>

>
>
> 2012/1/23 Jeffrey Johnson <[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
>> >
>>
>>
>>
>
> thread bump.
>
> I have same error.
>
> Package: wesnoth
> In output i have a lot of *.mo files
> but macro
>
> %find_lang %{name} --all-name
>
> %files -f %{name}.lang
>
> not working.
> How to fix it?
>
> ........
-- Installing:
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot/usr/share/games/wesnoth/translations/zh_TW/LC_MESSAGES/wesnoth-utbs.mo
-- Installing:
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot/usr/share/games/wesnoth/translations/zh_TW/LC_MESSAGES/wesnoth-manpages.mo
-- Installing:
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot/usr/share/games/wesnoth/translations/zh_TW/LC_MESSAGES/wesnoth-manual.mo
-- Installing:
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot/usr/games/wesnoth
-- Installing:
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot/usr/games/wesnothd
make: Leaving directory `/home/user/wesnoth/BUILD/wesnoth-1.10/build'
+ /usr/lib/rpm/find-lang.sh
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot
wesnoth --all-name
No translations found for wesnoth in
/home/user/wesnoth/BUILDROOT/wesnoth-1.10-1-mdv2012.0.x86_64-buildroot
error: Bad exit status from /home/user/wesnoth/BUILDROOT/rpm-tmp.13804
(%install)