Fixes, support more feeds, display parse errors ...
Note : ATOM feeds do NOT work for the moment ! Please report to ooookiwi@gmail.com if you have RSS feeds that doesnt not work If you have feeds that you want to see in the default configuration, you can send me an email too. I want News to have many feeds, in many different languages by default. * [parse] handle feeds with no title / no date / no link / no description * [parse] fix parse with rss version 0.91 * [dialog] feed: fix select default language * [viewer] better display of feeds with no date / no description * [viewer] simple click on content opens browser, and show a message 'click here to open in browser' * [viewer] display if there where errors during parse, and where to report, or if the feed is ATOM and not supported yet SVN revision: 30009
This commit is contained in:
parent
480a7c0a6e
commit
7f90441a22
768
ABOUT-NLS
768
ABOUT-NLS
|
@ -0,0 +1,768 @@
|
||||||
|
Notes on the Free Translation Project
|
||||||
|
*************************************
|
||||||
|
|
||||||
|
Free software is going international! The Free Translation Project is
|
||||||
|
a way to get maintainers of free software, translators, and users all
|
||||||
|
together, so that will gradually become able to speak many languages.
|
||||||
|
A few packages already provide translations for their messages.
|
||||||
|
|
||||||
|
If you found this `ABOUT-NLS' file inside a distribution, you may
|
||||||
|
assume that the distributed package does use GNU `gettext' internally,
|
||||||
|
itself available at your nearest GNU archive site. But you do _not_
|
||||||
|
need to install GNU `gettext' prior to configuring, installing or using
|
||||||
|
this package with messages translated.
|
||||||
|
|
||||||
|
Installers will find here some useful hints. These notes also
|
||||||
|
explain how users should proceed for getting the programs to use the
|
||||||
|
available translations. They tell how people wanting to contribute and
|
||||||
|
work at translations should contact the appropriate team.
|
||||||
|
|
||||||
|
When reporting bugs in the `intl/' directory or bugs which may be
|
||||||
|
related to internationalization, you should tell about the version of
|
||||||
|
`gettext' which is used. The information can be found in the
|
||||||
|
`intl/VERSION' file, in internationalized packages.
|
||||||
|
|
||||||
|
Quick configuration advice
|
||||||
|
==========================
|
||||||
|
|
||||||
|
If you want to exploit the full power of internationalization, you
|
||||||
|
should configure it using
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
|
||||||
|
to force usage of internationalizing routines provided within this
|
||||||
|
package, despite the existence of internationalizing capabilities in the
|
||||||
|
operating system where this package is being installed. So far, only
|
||||||
|
the `gettext' implementation in the GNU C library version 2 provides as
|
||||||
|
many features (such as locale alias, message inheritance, automatic
|
||||||
|
charset conversion or plural form handling) as the implementation here.
|
||||||
|
It is also not possible to offer this additional functionality on top
|
||||||
|
of a `catgets' implementation. Future versions of GNU `gettext' will
|
||||||
|
very likely convey even more functionality. So it might be a good idea
|
||||||
|
to change to GNU `gettext' as soon as possible.
|
||||||
|
|
||||||
|
So you need _not_ provide this option if you are using GNU libc 2 or
|
||||||
|
you have installed a recent copy of the GNU gettext package with the
|
||||||
|
included `libintl'.
|
||||||
|
|
||||||
|
INSTALL Matters
|
||||||
|
===============
|
||||||
|
|
||||||
|
Some packages are "localizable" when properly installed; the programs
|
||||||
|
they contain can be made to speak your own native language. Most such
|
||||||
|
packages use GNU `gettext'. Other packages have their own ways to
|
||||||
|
internationalization, predating GNU `gettext'.
|
||||||
|
|
||||||
|
By default, this package will be installed to allow translation of
|
||||||
|
messages. It will automatically detect whether the system already
|
||||||
|
provides the GNU `gettext' functions. If not, the GNU `gettext' own
|
||||||
|
library will be used. This library is wholly contained within this
|
||||||
|
package, usually in the `intl/' subdirectory, so prior installation of
|
||||||
|
the GNU `gettext' package is _not_ required. Installers may use
|
||||||
|
special options at configuration time for changing the default
|
||||||
|
behaviour. The commands:
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
./configure --disable-nls
|
||||||
|
|
||||||
|
will respectively bypass any pre-existing `gettext' to use the
|
||||||
|
internationalizing routines provided within this package, or else,
|
||||||
|
_totally_ disable translation of messages.
|
||||||
|
|
||||||
|
When you already have GNU `gettext' installed on your system and run
|
||||||
|
configure without an option for your new package, `configure' will
|
||||||
|
probably detect the previously built and installed `libintl.a' file and
|
||||||
|
will decide to use this. This might be not what is desirable. You
|
||||||
|
should use the more recent version of the GNU `gettext' library. I.e.
|
||||||
|
if the file `intl/VERSION' shows that the library which comes with this
|
||||||
|
package is more recent, you should use
|
||||||
|
|
||||||
|
./configure --with-included-gettext
|
||||||
|
|
||||||
|
to prevent auto-detection.
|
||||||
|
|
||||||
|
The configuration process will not test for the `catgets' function
|
||||||
|
and therefore it will not be used. The reason is that even an
|
||||||
|
emulation of `gettext' on top of `catgets' could not provide all the
|
||||||
|
extensions of the GNU `gettext' library.
|
||||||
|
|
||||||
|
Internationalized packages have usually many `po/LL.po' files, where
|
||||||
|
LL gives an ISO 639 two-letter code identifying the language. Unless
|
||||||
|
translations have been forbidden at `configure' time by using the
|
||||||
|
`--disable-nls' switch, all available translations are installed
|
||||||
|
together with the package. However, the environment variable `LINGUAS'
|
||||||
|
may be set, prior to configuration, to limit the installed set.
|
||||||
|
`LINGUAS' should then contain a space separated list of two-letter
|
||||||
|
codes, stating which languages are allowed.
|
||||||
|
|
||||||
|
Using This Package
|
||||||
|
==================
|
||||||
|
|
||||||
|
As a user, if your language has been installed for this package, you
|
||||||
|
only have to set the `LANG' environment variable to the appropriate
|
||||||
|
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
|
||||||
|
and `CC' is an ISO 3166 two-letter country code. For example, let's
|
||||||
|
suppose that you speak German and live in Germany. At the shell
|
||||||
|
prompt, merely execute `setenv LANG de_DE' (in `csh'),
|
||||||
|
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
|
||||||
|
This can be done from your `.login' or `.profile' file, once and for
|
||||||
|
all.
|
||||||
|
|
||||||
|
You might think that the country code specification is redundant.
|
||||||
|
But in fact, some languages have dialects in different countries. For
|
||||||
|
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
|
||||||
|
country code serves to distinguish the dialects.
|
||||||
|
|
||||||
|
The locale naming convention of `LL_CC', with `LL' denoting the
|
||||||
|
language and `CC' denoting the country, is the one use on systems based
|
||||||
|
on GNU libc. On other systems, some variations of this scheme are
|
||||||
|
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
|
||||||
|
locales supported by your system for your country by running the command
|
||||||
|
`locale -a | grep '^LL''.
|
||||||
|
|
||||||
|
Not all programs have translations for all languages. By default, an
|
||||||
|
English message is shown in place of a nonexistent translation. If you
|
||||||
|
understand other languages, you can set up a priority list of languages.
|
||||||
|
This is done through a different environment variable, called
|
||||||
|
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
|
||||||
|
for the purpose of message handling, but you still need to have `LANG'
|
||||||
|
set to the primary language; this is required by other parts of the
|
||||||
|
system libraries. For example, some Swedish users who would rather
|
||||||
|
read translations in German than English for when Swedish is not
|
||||||
|
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
|
||||||
|
|
||||||
|
Special advice for Norwegian users: The language code for Norwegian
|
||||||
|
bokma*l changed from `no' to `nb' recently (in 2003). During the
|
||||||
|
transition period, while some message catalogs for this language are
|
||||||
|
installed under `nb' and some older ones under `no', it's recommended
|
||||||
|
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
|
||||||
|
older translations are used.
|
||||||
|
|
||||||
|
In the `LANGUAGE' environment variable, but not in the `LANG'
|
||||||
|
environment variable, `LL_CC' combinations can be abbreviated as `LL'
|
||||||
|
to denote the language's main dialect. For example, `de' is equivalent
|
||||||
|
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
|
||||||
|
(Portuguese as spoken in Portugal) in this context.
|
||||||
|
|
||||||
|
Translating Teams
|
||||||
|
=================
|
||||||
|
|
||||||
|
For the Free Translation Project to be a success, we need interested
|
||||||
|
people who like their own language and write it well, and who are also
|
||||||
|
able to synergize with other translators speaking the same language.
|
||||||
|
Each translation team has its own mailing list. The up-to-date list of
|
||||||
|
teams can be found at the Free Translation Project's homepage,
|
||||||
|
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
|
||||||
|
area.
|
||||||
|
|
||||||
|
If you'd like to volunteer to _work_ at translating messages, you
|
||||||
|
should become a member of the translating team for your own language.
|
||||||
|
The subscribing address is _not_ the same as the list itself, it has
|
||||||
|
`-request' appended. For example, speakers of Swedish can send a
|
||||||
|
message to `sv-request@li.org', having this message body:
|
||||||
|
|
||||||
|
subscribe
|
||||||
|
|
||||||
|
Keep in mind that team members are expected to participate
|
||||||
|
_actively_ in translations, or at solving translational difficulties,
|
||||||
|
rather than merely lurking around. If your team does not exist yet and
|
||||||
|
you want to start one, or if you are unsure about what to do or how to
|
||||||
|
get started, please write to `translation@iro.umontreal.ca' to reach the
|
||||||
|
coordinator for all translator teams.
|
||||||
|
|
||||||
|
The English team is special. It works at improving and uniformizing
|
||||||
|
the terminology in use. Proven linguistic skill are praised more than
|
||||||
|
programming skill, here.
|
||||||
|
|
||||||
|
Available Packages
|
||||||
|
==================
|
||||||
|
|
||||||
|
Languages are not equally supported in all packages. The following
|
||||||
|
matrix shows the current state of internationalization, as of January
|
||||||
|
2004. The matrix shows, in regard of each package, for which languages
|
||||||
|
PO files have been submitted to translation coordination, with a
|
||||||
|
translation percentage of at least 50%.
|
||||||
|
|
||||||
|
Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
|
||||||
|
+----------------------------------------------------+
|
||||||
|
a2ps | [] [] [] [] |
|
||||||
|
aegis | () |
|
||||||
|
ant-phone | () |
|
||||||
|
anubis | |
|
||||||
|
ap-utils | |
|
||||||
|
aspell | [] |
|
||||||
|
bash | [] [] [] [] |
|
||||||
|
batchelor | |
|
||||||
|
bfd | [] [] |
|
||||||
|
binutils | [] [] |
|
||||||
|
bison | [] [] [] |
|
||||||
|
bluez-pin | [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] [] [] |
|
||||||
|
console-tools | [] [] |
|
||||||
|
coreutils | [] [] [] [] |
|
||||||
|
cpio | [] [] [] |
|
||||||
|
darkstat | [] () [] |
|
||||||
|
diffutils | [] [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | [] [] [] |
|
||||||
|
enscript | [] [] [] [] |
|
||||||
|
error | [] [] [] [] [] |
|
||||||
|
fetchmail | [] () [] [] [] [] |
|
||||||
|
fileutils | [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] [] [] |
|
||||||
|
flex | [] [] [] [] |
|
||||||
|
fslint | |
|
||||||
|
gas | [] |
|
||||||
|
gawk | [] [] [] [] |
|
||||||
|
gbiff | [] |
|
||||||
|
gcal | [] |
|
||||||
|
gcc | [] [] |
|
||||||
|
gettext | [] [] [] [] [] |
|
||||||
|
gettext-examples | [] [] [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] [] |
|
||||||
|
gettext-tools | [] [] [] |
|
||||||
|
gimp-print | [] [] [] [] [] |
|
||||||
|
gliv | |
|
||||||
|
glunarclock | [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | [] () [] [] |
|
||||||
|
gnucash-glossary | [] () [] |
|
||||||
|
gnupg | [] () [] [] [] [] |
|
||||||
|
gpe-aerial | [] |
|
||||||
|
gpe-beam | [] [] |
|
||||||
|
gpe-calendar | [] [] |
|
||||||
|
gpe-clock | [] [] |
|
||||||
|
gpe-conf | [] [] |
|
||||||
|
gpe-contacts | [] [] |
|
||||||
|
gpe-edit | [] |
|
||||||
|
gpe-go | [] |
|
||||||
|
gpe-login | [] [] |
|
||||||
|
gpe-ownerinfo | [] [] |
|
||||||
|
gpe-sketchbook | [] [] |
|
||||||
|
gpe-su | [] [] |
|
||||||
|
gpe-taskmanager | [] [] |
|
||||||
|
gpe-timesheet | [] |
|
||||||
|
gpe-today | [] [] |
|
||||||
|
gpe-todo | [] [] |
|
||||||
|
gphoto2 | [] [] [] [] |
|
||||||
|
gprof | [] [] [] |
|
||||||
|
gpsdrive | () () () |
|
||||||
|
gramadoir | [] |
|
||||||
|
grep | [] [] [] [] [] [] |
|
||||||
|
gretl | [] |
|
||||||
|
gtick | [] () |
|
||||||
|
hello | [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] |
|
||||||
|
indent | [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
iso_3166_1 | [] [] [] [] [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | [] |
|
||||||
|
iso_4217 | [] [] [] [] |
|
||||||
|
iso_639 | |
|
||||||
|
jpilot | [] [] [] |
|
||||||
|
jtag | |
|
||||||
|
jwhois | [] |
|
||||||
|
kbd | [] [] [] [] [] |
|
||||||
|
latrine | () |
|
||||||
|
ld | [] [] |
|
||||||
|
libc | [] [] [] [] [] [] |
|
||||||
|
libgpewidget | [] [] |
|
||||||
|
libiconv | [] [] [] [] [] |
|
||||||
|
lifelines | [] () |
|
||||||
|
lilypond | [] |
|
||||||
|
lingoteach | |
|
||||||
|
lingoteach_lessons | () () |
|
||||||
|
lynx | [] [] [] [] |
|
||||||
|
m4 | [] [] [] [] |
|
||||||
|
mailutils | [] [] |
|
||||||
|
make | [] [] [] |
|
||||||
|
man-db | [] () [] [] () |
|
||||||
|
minicom | [] [] [] |
|
||||||
|
mysecretdiary | [] [] [] |
|
||||||
|
nano | [] () [] [] [] |
|
||||||
|
nano_1_0 | [] () [] [] [] |
|
||||||
|
opcodes | [] |
|
||||||
|
parted | [] [] [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] |
|
||||||
|
recode | [] [] [] [] [] [] [] |
|
||||||
|
rpm | [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] [] [] [] [] [] |
|
||||||
|
sed | [] [] [] [] [] [] |
|
||||||
|
sh-utils | [] [] [] |
|
||||||
|
shared-mime-info | |
|
||||||
|
sharutils | [] [] [] [] [] [] |
|
||||||
|
silky | () |
|
||||||
|
skencil | [] () [] |
|
||||||
|
sketch | [] () [] |
|
||||||
|
soundtracker | [] [] [] |
|
||||||
|
sp | [] |
|
||||||
|
tar | [] [] [] [] |
|
||||||
|
texinfo | [] [] [] |
|
||||||
|
textutils | [] [] [] [] |
|
||||||
|
tin | () () |
|
||||||
|
tp-robot | |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | |
|
||||||
|
util-linux | [] [] [] [] [] |
|
||||||
|
vorbis-tools | [] [] [] [] |
|
||||||
|
wastesedge | () |
|
||||||
|
wdiff | [] [] [] [] |
|
||||||
|
wget | [] [] [] [] [] [] |
|
||||||
|
xchat | [] [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] |
|
||||||
|
+----------------------------------------------------+
|
||||||
|
af am ar az be bg bs ca cs da de el en en_GB eo es
|
||||||
|
4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
|
||||||
|
|
||||||
|
et eu fa fi fr ga gl he hr hu id is it ja ko lg
|
||||||
|
+-------------------------------------------------+
|
||||||
|
a2ps | [] [] [] () () |
|
||||||
|
aegis | |
|
||||||
|
ant-phone | [] |
|
||||||
|
anubis | [] |
|
||||||
|
ap-utils | [] |
|
||||||
|
aspell | [] [] |
|
||||||
|
bash | [] [] |
|
||||||
|
batchelor | [] [] |
|
||||||
|
bfd | [] |
|
||||||
|
binutils | [] [] |
|
||||||
|
bison | [] [] [] [] |
|
||||||
|
bluez-pin | [] [] [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] |
|
||||||
|
console-tools | |
|
||||||
|
coreutils | [] [] [] [] [] [] |
|
||||||
|
cpio | [] [] [] [] |
|
||||||
|
darkstat | () [] [] [] |
|
||||||
|
diffutils | [] [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | |
|
||||||
|
enscript | [] [] |
|
||||||
|
error | [] [] [] [] |
|
||||||
|
fetchmail | [] |
|
||||||
|
fileutils | [] [] [] [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
flex | [] [] [] |
|
||||||
|
fslint | [] |
|
||||||
|
gas | [] |
|
||||||
|
gawk | [] [] [] |
|
||||||
|
gbiff | [] |
|
||||||
|
gcal | [] |
|
||||||
|
gcc | [] |
|
||||||
|
gettext | [] [] [] |
|
||||||
|
gettext-examples | [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] [] |
|
||||||
|
gettext-tools | [] [] [] |
|
||||||
|
gimp-print | [] [] |
|
||||||
|
gliv | () |
|
||||||
|
glunarclock | [] [] [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | () [] |
|
||||||
|
gnucash-glossary | [] |
|
||||||
|
gnupg | [] [] [] [] [] [] [] |
|
||||||
|
gpe-aerial | [] |
|
||||||
|
gpe-beam | [] |
|
||||||
|
gpe-calendar | [] [] [] |
|
||||||
|
gpe-clock | [] |
|
||||||
|
gpe-conf | [] |
|
||||||
|
gpe-contacts | [] [] |
|
||||||
|
gpe-edit | [] [] |
|
||||||
|
gpe-go | [] |
|
||||||
|
gpe-login | [] [] |
|
||||||
|
gpe-ownerinfo | [] [] [] |
|
||||||
|
gpe-sketchbook | [] |
|
||||||
|
gpe-su | [] |
|
||||||
|
gpe-taskmanager | [] |
|
||||||
|
gpe-timesheet | [] [] [] |
|
||||||
|
gpe-today | [] [] |
|
||||||
|
gpe-todo | [] [] |
|
||||||
|
gphoto2 | [] [] [] |
|
||||||
|
gprof | [] [] |
|
||||||
|
gpsdrive | () () () |
|
||||||
|
gramadoir | [] [] |
|
||||||
|
grep | [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
gretl | [] [] |
|
||||||
|
gtick | [] [] [] |
|
||||||
|
hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] [] [] |
|
||||||
|
indent | [] [] [] [] [] [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] |
|
||||||
|
iso_3166_1 | [] [] [] [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | |
|
||||||
|
iso_4217 | [] [] [] [] [] [] |
|
||||||
|
iso_639 | |
|
||||||
|
jpilot | [] () |
|
||||||
|
jtag | [] |
|
||||||
|
jwhois | [] [] [] [] |
|
||||||
|
kbd | [] |
|
||||||
|
latrine | [] |
|
||||||
|
ld | [] |
|
||||||
|
libc | [] [] [] [] [] [] |
|
||||||
|
libgpewidget | [] [] [] [] |
|
||||||
|
libiconv | [] [] [] [] [] [] [] [] [] |
|
||||||
|
lifelines | () |
|
||||||
|
lilypond | [] |
|
||||||
|
lingoteach | [] [] |
|
||||||
|
lingoteach_lessons | |
|
||||||
|
lynx | [] [] [] [] |
|
||||||
|
m4 | [] [] [] [] |
|
||||||
|
mailutils | |
|
||||||
|
make | [] [] [] [] [] [] |
|
||||||
|
man-db | () () |
|
||||||
|
minicom | [] [] [] [] |
|
||||||
|
mysecretdiary | [] [] |
|
||||||
|
nano | [] [] [] [] |
|
||||||
|
nano_1_0 | [] [] [] [] |
|
||||||
|
opcodes | [] |
|
||||||
|
parted | [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] |
|
||||||
|
recode | [] [] [] [] [] [] |
|
||||||
|
rpm | [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] |
|
||||||
|
sed | [] [] [] [] [] [] [] [] [] |
|
||||||
|
sh-utils | [] [] [] [] [] [] [] |
|
||||||
|
shared-mime-info | [] [] [] |
|
||||||
|
sharutils | [] [] [] [] [] |
|
||||||
|
silky | () [] () () |
|
||||||
|
skencil | [] |
|
||||||
|
sketch | [] |
|
||||||
|
soundtracker | [] [] |
|
||||||
|
sp | [] () |
|
||||||
|
tar | [] [] [] [] [] [] [] [] [] |
|
||||||
|
texinfo | [] [] [] [] |
|
||||||
|
textutils | [] [] [] [] [] [] |
|
||||||
|
tin | [] () |
|
||||||
|
tp-robot | [] |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | [] [] |
|
||||||
|
util-linux | [] [] [] [] () [] |
|
||||||
|
vorbis-tools | [] |
|
||||||
|
wastesedge | () |
|
||||||
|
wdiff | [] [] [] [] [] [] |
|
||||||
|
wget | [] [] [] [] [] [] [] |
|
||||||
|
xchat | [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] [] |
|
||||||
|
+-------------------------------------------------+
|
||||||
|
et eu fa fi fr ga gl he hr hu id is it ja ko lg
|
||||||
|
22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
|
||||||
|
|
||||||
|
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
a2ps | [] [] () () [] [] [] |
|
||||||
|
aegis | () () () |
|
||||||
|
ant-phone | [] [] |
|
||||||
|
anubis | [] [] [] [] [] [] |
|
||||||
|
ap-utils | [] () [] |
|
||||||
|
aspell | [] |
|
||||||
|
bash | [] [] [] |
|
||||||
|
batchelor | [] |
|
||||||
|
bfd | [] |
|
||||||
|
binutils | [] |
|
||||||
|
bison | [] [] [] [] [] |
|
||||||
|
bluez-pin | [] [] [] |
|
||||||
|
clisp | |
|
||||||
|
clisp | [] |
|
||||||
|
console-tools | [] |
|
||||||
|
coreutils | [] [] |
|
||||||
|
cpio | [] [] [] [] [] |
|
||||||
|
darkstat | [] [] [] [] |
|
||||||
|
diffutils | [] [] [] [] [] [] |
|
||||||
|
e2fsprogs | [] |
|
||||||
|
enscript | [] [] [] [] |
|
||||||
|
error | [] [] [] |
|
||||||
|
fetchmail | [] [] () [] |
|
||||||
|
fileutils | [] [] [] |
|
||||||
|
findutils | [] [] [] [] [] |
|
||||||
|
flex | [] [] [] [] |
|
||||||
|
fslint | [] [] |
|
||||||
|
gas | |
|
||||||
|
gawk | [] [] [] |
|
||||||
|
gbiff | [] [] |
|
||||||
|
gcal | |
|
||||||
|
gcc | |
|
||||||
|
gettext | [] [] [] |
|
||||||
|
gettext-examples | [] [] [] |
|
||||||
|
gettext-runtime | [] [] [] [] |
|
||||||
|
gettext-tools | [] [] |
|
||||||
|
gimp-print | [] |
|
||||||
|
gliv | [] [] [] |
|
||||||
|
glunarclock | [] [] [] [] |
|
||||||
|
gnubiff | [] |
|
||||||
|
gnucash | [] [] () [] |
|
||||||
|
gnucash-glossary | [] [] |
|
||||||
|
gnupg | [] |
|
||||||
|
gpe-aerial | [] [] [] [] |
|
||||||
|
gpe-beam | [] [] [] [] |
|
||||||
|
gpe-calendar | [] [] [] [] |
|
||||||
|
gpe-clock | [] [] [] [] |
|
||||||
|
gpe-conf | [] [] [] [] |
|
||||||
|
gpe-contacts | [] [] [] [] |
|
||||||
|
gpe-edit | [] [] [] [] |
|
||||||
|
gpe-go | [] [] [] |
|
||||||
|
gpe-login | [] [] [] [] |
|
||||||
|
gpe-ownerinfo | [] [] [] [] |
|
||||||
|
gpe-sketchbook | [] [] [] [] |
|
||||||
|
gpe-su | [] [] [] [] |
|
||||||
|
gpe-taskmanager | [] [] [] [] |
|
||||||
|
gpe-timesheet | [] [] [] [] |
|
||||||
|
gpe-today | [] [] [] [] |
|
||||||
|
gpe-todo | [] [] [] [] |
|
||||||
|
gphoto2 | [] |
|
||||||
|
gprof | [] [] |
|
||||||
|
gpsdrive | () () [] |
|
||||||
|
gramadoir | () [] |
|
||||||
|
grep | [] [] [] [] [] |
|
||||||
|
gretl | |
|
||||||
|
gtick | [] [] [] |
|
||||||
|
hello | [] [] [] [] [] [] [] [] [] [] |
|
||||||
|
id-utils | [] [] [] [] |
|
||||||
|
indent | [] [] [] [] |
|
||||||
|
iso_3166 | [] [] [] |
|
||||||
|
iso_3166_1 | [] [] |
|
||||||
|
iso_3166_2 | |
|
||||||
|
iso_3166_3 | [] |
|
||||||
|
iso_4217 | [] [] [] [] [] [] [] [] |
|
||||||
|
iso_639 | [] |
|
||||||
|
jpilot | () () |
|
||||||
|
jtag | |
|
||||||
|
jwhois | [] [] [] [] () |
|
||||||
|
kbd | [] [] [] |
|
||||||
|
latrine | [] |
|
||||||
|
ld | |
|
||||||
|
libc | [] [] [] [] |
|
||||||
|
libgpewidget | [] [] [] |
|
||||||
|
libiconv | [] [] [] [] [] |
|
||||||
|
lifelines | |
|
||||||
|
lilypond | |
|
||||||
|
lingoteach | |
|
||||||
|
lingoteach_lessons | |
|
||||||
|
lynx | [] [] [] |
|
||||||
|
m4 | [] [] [] [] [] |
|
||||||
|
mailutils | [] [] [] |
|
||||||
|
make | [] [] [] [] |
|
||||||
|
man-db | [] |
|
||||||
|
minicom | [] [] [] [] |
|
||||||
|
mysecretdiary | [] [] [] |
|
||||||
|
nano | [] [] [] [] [] |
|
||||||
|
nano_1_0 | [] [] [] [] [] [] |
|
||||||
|
opcodes | [] [] |
|
||||||
|
parted | [] [] [] [] |
|
||||||
|
ptx | [] [] [] [] [] [] [] [] |
|
||||||
|
python | |
|
||||||
|
radius | [] [] |
|
||||||
|
recode | [] [] [] [] |
|
||||||
|
rpm | [] [] [] |
|
||||||
|
screem | |
|
||||||
|
scrollkeeper | [] [] [] [] [] |
|
||||||
|
sed | [] [] [] |
|
||||||
|
sh-utils | [] [] |
|
||||||
|
shared-mime-info | [] [] |
|
||||||
|
sharutils | [] [] |
|
||||||
|
silky | () |
|
||||||
|
skencil | [] [] |
|
||||||
|
sketch | [] [] |
|
||||||
|
soundtracker | |
|
||||||
|
sp | |
|
||||||
|
tar | [] [] [] [] [] [] |
|
||||||
|
texinfo | [] [] [] [] |
|
||||||
|
textutils | [] [] |
|
||||||
|
tin | |
|
||||||
|
tp-robot | [] |
|
||||||
|
tuxpaint | [] [] [] [] [] [] [] [] |
|
||||||
|
unicode-han-tra... | |
|
||||||
|
unicode-transla... | |
|
||||||
|
util-linux | [] [] [] |
|
||||||
|
vorbis-tools | [] [] [] |
|
||||||
|
wastesedge | |
|
||||||
|
wdiff | [] [] [] [] [] |
|
||||||
|
wget | [] [] [] |
|
||||||
|
xchat | [] [] [] |
|
||||||
|
xfree86_xkb_xml | [] [] |
|
||||||
|
xpad | [] [] |
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
|
||||||
|
1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
|
||||||
|
|
||||||
|
sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
a2ps | [] [] [] [] | 16
|
||||||
|
aegis | | 0
|
||||||
|
ant-phone | | 3
|
||||||
|
anubis | [] [] | 9
|
||||||
|
ap-utils | () | 3
|
||||||
|
aspell | | 4
|
||||||
|
bash | | 9
|
||||||
|
batchelor | | 3
|
||||||
|
bfd | [] [] | 6
|
||||||
|
binutils | [] [] [] | 8
|
||||||
|
bison | [] [] | 14
|
||||||
|
bluez-pin | [] [] [] | 14
|
||||||
|
clisp | | 0
|
||||||
|
clisp | | 5
|
||||||
|
console-tools | | 3
|
||||||
|
coreutils | [] [] [] [] | 16
|
||||||
|
cpio | [] [] | 14
|
||||||
|
darkstat | [] [] [] () () | 12
|
||||||
|
diffutils | [] [] [] | 23
|
||||||
|
e2fsprogs | [] [] | 6
|
||||||
|
enscript | [] [] | 12
|
||||||
|
error | [] [] [] | 15
|
||||||
|
fetchmail | [] [] | 11
|
||||||
|
fileutils | [] [] [] [] [] | 17
|
||||||
|
findutils | [] [] [] [] [] [] | 29
|
||||||
|
flex | [] [] | 13
|
||||||
|
fslint | | 3
|
||||||
|
gas | [] | 3
|
||||||
|
gawk | [] [] | 12
|
||||||
|
gbiff | | 4
|
||||||
|
gcal | [] [] | 4
|
||||||
|
gcc | [] | 4
|
||||||
|
gettext | [] [] [] [] [] | 16
|
||||||
|
gettext-examples | [] [] [] [] [] | 14
|
||||||
|
gettext-runtime | [] [] [] [] [] [] [] [] | 22
|
||||||
|
gettext-tools | [] [] [] [] [] [] | 14
|
||||||
|
gimp-print | [] [] | 10
|
||||||
|
gliv | | 3
|
||||||
|
glunarclock | [] [] [] | 13
|
||||||
|
gnubiff | | 3
|
||||||
|
gnucash | [] [] | 9
|
||||||
|
gnucash-glossary | [] [] [] | 8
|
||||||
|
gnupg | [] [] [] [] | 17
|
||||||
|
gpe-aerial | [] | 7
|
||||||
|
gpe-beam | [] | 8
|
||||||
|
gpe-calendar | [] [] [] [] | 13
|
||||||
|
gpe-clock | [] [] [] | 10
|
||||||
|
gpe-conf | [] [] | 9
|
||||||
|
gpe-contacts | [] [] [] | 11
|
||||||
|
gpe-edit | [] [] [] [] [] | 12
|
||||||
|
gpe-go | | 5
|
||||||
|
gpe-login | [] [] [] [] [] | 13
|
||||||
|
gpe-ownerinfo | [] [] [] [] | 13
|
||||||
|
gpe-sketchbook | [] [] | 9
|
||||||
|
gpe-su | [] [] [] | 10
|
||||||
|
gpe-taskmanager | [] [] [] | 10
|
||||||
|
gpe-timesheet | [] [] [] [] | 12
|
||||||
|
gpe-today | [] [] [] [] [] | 13
|
||||||
|
gpe-todo | [] [] [] [] | 12
|
||||||
|
gphoto2 | [] [] [] | 11
|
||||||
|
gprof | [] [] | 9
|
||||||
|
gpsdrive | [] [] | 3
|
||||||
|
gramadoir | [] | 5
|
||||||
|
grep | [] [] [] [] | 26
|
||||||
|
gretl | | 3
|
||||||
|
gtick | | 7
|
||||||
|
hello | [] [] [] [] [] | 34
|
||||||
|
id-utils | [] [] | 12
|
||||||
|
indent | [] [] [] [] | 21
|
||||||
|
iso_3166 | [] [] [] [] [] [] [] | 27
|
||||||
|
iso_3166_1 | [] [] [] | 16
|
||||||
|
iso_3166_2 | | 0
|
||||||
|
iso_3166_3 | | 2
|
||||||
|
iso_4217 | [] [] [] [] [] [] | 24
|
||||||
|
iso_639 | | 1
|
||||||
|
jpilot | [] [] [] [] [] | 9
|
||||||
|
jtag | [] | 2
|
||||||
|
jwhois | () [] [] | 11
|
||||||
|
kbd | [] [] | 11
|
||||||
|
latrine | | 2
|
||||||
|
ld | [] [] | 5
|
||||||
|
libc | [] [] [] [] | 20
|
||||||
|
libgpewidget | [] [] [] [] | 13
|
||||||
|
libiconv | [] [] [] [] [] [] [] [] | 27
|
||||||
|
lifelines | [] | 2
|
||||||
|
lilypond | [] | 3
|
||||||
|
lingoteach | | 2
|
||||||
|
lingoteach_lessons | () | 0
|
||||||
|
lynx | [] [] [] | 14
|
||||||
|
m4 | [] [] | 15
|
||||||
|
mailutils | | 5
|
||||||
|
make | [] [] [] | 16
|
||||||
|
man-db | [] | 5
|
||||||
|
minicom | | 11
|
||||||
|
mysecretdiary | [] [] | 10
|
||||||
|
nano | [] [] [] [] | 17
|
||||||
|
nano_1_0 | [] [] [] | 17
|
||||||
|
opcodes | [] [] | 6
|
||||||
|
parted | [] [] [] | 15
|
||||||
|
ptx | [] [] | 22
|
||||||
|
python | | 0
|
||||||
|
radius | | 4
|
||||||
|
recode | [] [] [] | 20
|
||||||
|
rpm | [] [] | 9
|
||||||
|
screem | [] [] | 2
|
||||||
|
scrollkeeper | [] [] [] | 15
|
||||||
|
sed | [] [] [] [] [] [] | 24
|
||||||
|
sh-utils | [] [] | 14
|
||||||
|
shared-mime-info | [] [] | 7
|
||||||
|
sharutils | [] [] [] [] | 17
|
||||||
|
silky | () | 3
|
||||||
|
skencil | [] | 6
|
||||||
|
sketch | [] | 6
|
||||||
|
soundtracker | [] [] | 7
|
||||||
|
sp | [] | 3
|
||||||
|
tar | [] [] [] [] [] | 24
|
||||||
|
texinfo | [] [] [] | 14
|
||||||
|
textutils | [] [] [] [] | 16
|
||||||
|
tin | | 1
|
||||||
|
tp-robot | | 2
|
||||||
|
tuxpaint | [] [] [] [] [] | 29
|
||||||
|
unicode-han-tra... | | 0
|
||||||
|
unicode-transla... | | 2
|
||||||
|
util-linux | [] [] | 15
|
||||||
|
vorbis-tools | | 8
|
||||||
|
wastesedge | | 0
|
||||||
|
wdiff | [] [] [] | 18
|
||||||
|
wget | [] [] [] [] [] [] [] [] | 24
|
||||||
|
xchat | [] [] [] [] [] | 15
|
||||||
|
xfree86_xkb_xml | [] [] [] [] [] | 11
|
||||||
|
xpad | | 5
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
|
||||||
|
131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
|
||||||
|
|
||||||
|
Some counters in the preceding matrix are higher than the number of
|
||||||
|
visible blocks let us expect. This is because a few extra PO files are
|
||||||
|
used for implementing regional variants of languages, or language
|
||||||
|
dialects.
|
||||||
|
|
||||||
|
For a PO file in the matrix above to be effective, the package to
|
||||||
|
which it applies should also have been internationalized and
|
||||||
|
distributed as such by its maintainer. There might be an observable
|
||||||
|
lag between the mere existence a PO file and its wide availability in a
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
If January 2004 seems to be old, you may fetch a more recent copy of
|
||||||
|
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
|
||||||
|
matrix with full percentage details can be found at
|
||||||
|
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
|
||||||
|
|
||||||
|
Using `gettext' in new packages
|
||||||
|
===============================
|
||||||
|
|
||||||
|
If you are writing a freely available program and want to
|
||||||
|
internationalize it you are welcome to use GNU `gettext' in your
|
||||||
|
package. Of course you have to respect the GNU Library General Public
|
||||||
|
License which covers the use of the GNU `gettext' library. This means
|
||||||
|
in particular that even non-free programs can use `libintl' as a shared
|
||||||
|
library, whereas only free software can use `libintl' as a static
|
||||||
|
library or use modified versions of `libintl'.
|
||||||
|
|
||||||
|
Once the sources are changed appropriately and the setup can handle
|
||||||
|
the use of `gettext' the only thing missing are the translations. The
|
||||||
|
Free Translation Project is also available for packages which are not
|
||||||
|
developed inside the GNU project. Therefore the information given above
|
||||||
|
applies also for every other Free Software Project. Contact
|
||||||
|
`translation@iro.umontreal.ca' to make the `.pot' files available to
|
||||||
|
the translation teams.
|
||||||
|
|
2
README
2
README
|
@ -1,6 +1,6 @@
|
||||||
Enlightenment News Module
|
Enlightenment News Module
|
||||||
|
|
||||||
Module to display information feeds like Rss or Atom
|
Module to display information feeds like Rss (and soon Atom)
|
||||||
on youre Enlightenment desktop
|
on youre Enlightenment desktop
|
||||||
|
|
||||||
enjoy =)
|
enjoy =)
|
5
TODO
5
TODO
|
@ -8,6 +8,9 @@ BUGS
|
||||||
NEEDED (to do more or less in this order)
|
NEEDED (to do more or less in this order)
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
|
- parse html chars (in _item_clean ?)
|
||||||
|
- atom feeds
|
||||||
|
|
||||||
- feed icons (new file ?)
|
- feed icons (new file ?)
|
||||||
Evas_Object *news_feed_icon_add(News_Feed *feed)
|
Evas_Object *news_feed_icon_add(News_Feed *feed)
|
||||||
void news_feed_icon_del(Evas_Object *obj)
|
void news_feed_icon_del(Evas_Object *obj)
|
||||||
|
@ -42,9 +45,9 @@ to avoid refresh the ilist
|
||||||
---
|
---
|
||||||
|
|
||||||
[Parse]
|
[Parse]
|
||||||
- parse html chars (in _item_clean ?)
|
|
||||||
- reparse infos every time, if changes ... ?
|
- reparse infos every time, if changes ... ?
|
||||||
- handle the fact that sometimes we loose feeds (connection timeout ...) so sometimes, keep feeds that are READ, to avoid having feeds marked as unread, but wich where read before
|
- handle the fact that sometimes we loose feeds (connection timeout ...) so sometimes, keep feeds that are READ, to avoid having feeds marked as unread, but wich where read before
|
||||||
|
detect when there are less articles then the time before ? if its the case, keep read articles ?
|
||||||
-> compare description of feed just parsed with suspect precedent one
|
-> compare description of feed just parsed with suspect precedent one
|
||||||
its not that slow (use memcmp, keep description_size)
|
its not that slow (use memcmp, keep description_size)
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ rm -Rf aclocal.m4 autom4te.cache/ ltmain.sh config.log config.status config.cac
|
||||||
src/Makefile src/Makefile.in \
|
src/Makefile src/Makefile.in \
|
||||||
src/module/Makefile src/module/Makefile.in
|
src/module/Makefile src/module/Makefile.in
|
||||||
|
|
||||||
|
echo "Running autopoint..." ; autopoint -f || :
|
||||||
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
|
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
|
||||||
echo "Running autoheader..." ; autoheader || exit 1
|
echo "Running autoheader..." ; autoheader || exit 1
|
||||||
echo "Running autoconf..." ; autoconf || exit 1
|
echo "Running autoconf..." ; autoconf || exit 1
|
||||||
|
|
|
@ -104,7 +104,7 @@ EAPI int
|
||||||
e_modapi_about(E_Module *m)
|
e_modapi_about(E_Module *m)
|
||||||
{
|
{
|
||||||
news_util_message_show(_("Module to display information feeds<br>"
|
news_util_message_show(_("Module to display information feeds<br>"
|
||||||
"like Rss or Atom, on youre desktop<br><br>"
|
"like Rss (and soon Atom), on youre desktop<br><br>"
|
||||||
"ooookiwi@gmail.com<br>"
|
"ooookiwi@gmail.com<br>"
|
||||||
"http://oooo.zapto.org"));
|
"http://oooo.zapto.org"));
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -204,6 +204,8 @@ news_config_dialog_feed_refresh_langs(News_Feed *feed)
|
||||||
e_widget_ilist_selected_set(ilist, pos_to_select);
|
e_widget_ilist_selected_set(ilist, pos_to_select);
|
||||||
else
|
else
|
||||||
e_widget_ilist_selected_set(ilist, 0);
|
e_widget_ilist_selected_set(ilist, 0);
|
||||||
|
_cb_lang_change(cfdata, NULL);
|
||||||
|
|
||||||
|
|
||||||
e_widget_min_size_get(ilist, &w, NULL);
|
e_widget_min_size_get(ilist, &w, NULL);
|
||||||
e_widget_min_size_set(ilist, w, 110);
|
e_widget_min_size_set(ilist, w, 110);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#include "News.h"
|
#include "News.h"
|
||||||
|
|
||||||
|
#define DIALOG_CLASS "_e_mod_news_config_dialog_langs"
|
||||||
|
|
||||||
struct _Lang_Choice
|
struct _Lang_Choice
|
||||||
{
|
{
|
||||||
News_Feed_Lang *lang;
|
News_Feed_Lang *lang;
|
||||||
|
@ -30,6 +32,9 @@ news_config_dialog_langs_show(void)
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
E_Config_Dialog_View *v;
|
E_Config_Dialog_View *v;
|
||||||
|
|
||||||
|
if (e_config_dialog_find("E", DIALOG_CLASS))
|
||||||
|
return 0;
|
||||||
|
|
||||||
v = E_NEW(E_Config_Dialog_View, 1);
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
|
|
||||||
v->create_cfdata = _create_data;
|
v->create_cfdata = _create_data;
|
||||||
|
@ -38,7 +43,7 @@ news_config_dialog_langs_show(void)
|
||||||
|
|
||||||
cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()),
|
cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()),
|
||||||
_("News Feeds Language Configuration"),
|
_("News Feeds Language Configuration"),
|
||||||
"E", "_e_mod_news_config_dialog_langs",
|
"E", DIALOG_CLASS,
|
||||||
news->theme, 0, v, NULL);
|
news->theme, 0, v, NULL);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,10 +300,10 @@ news_feed_edit(News_Feed *f, char *name, int name_ovrw, char *language, int lang
|
||||||
if ( f2 && (f != f2) )
|
if ( f2 && (f != f2) )
|
||||||
{
|
{
|
||||||
news_util_message_error_show(_("A feed with the <hilight>name</hilight> %s <hilight>already exists</hilight><br>"
|
news_util_message_error_show(_("A feed with the <hilight>name</hilight> %s <hilight>already exists</hilight><br>"
|
||||||
"in the %s category<br/><br/>"
|
"in the %s category<br><br>"
|
||||||
"Its not possible to have feeds with the same name<br/>"
|
"Its not possible to have feeds with the same name<br>"
|
||||||
"in one category."),
|
"in one category."),
|
||||||
f->name, f->category->name);
|
name, category->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!language || !language[0])
|
if (!language || !language[0])
|
||||||
|
@ -1081,21 +1081,15 @@ _feed_category_find(char *name)
|
||||||
static char *
|
static char *
|
||||||
_get_host_from_url(const char *url)
|
_get_host_from_url(const char *url)
|
||||||
{
|
{
|
||||||
char *host;
|
char *host, *p;
|
||||||
char *tmp, *p;
|
char buf[4096];
|
||||||
|
|
||||||
if (strncmp(url, "http://", 7))
|
strncpy(buf, url, sizeof(buf));
|
||||||
|
if (strncmp(buf, "http://", 7))
|
||||||
return NULL;
|
return NULL;
|
||||||
tmp = strdup(url + 7);
|
p = strchr(buf+7, '/');
|
||||||
p = strchr(tmp, '/');
|
if (p) *p = '\0';
|
||||||
if (!p)
|
host = strdup(buf+7);
|
||||||
{
|
|
||||||
free(tmp);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
*p = '\0';
|
|
||||||
host = strdup(tmp);
|
|
||||||
free(tmp);
|
|
||||||
|
|
||||||
return host;
|
return host;
|
||||||
}
|
}
|
||||||
|
@ -1103,8 +1097,7 @@ _get_host_from_url(const char *url)
|
||||||
static char *
|
static char *
|
||||||
_get_file_from_url(const char *url)
|
_get_file_from_url(const char *url)
|
||||||
{
|
{
|
||||||
char *file;
|
char *file, *p;
|
||||||
char *p;
|
|
||||||
|
|
||||||
p = strstr(url, "://");
|
p = strstr(url, "://");
|
||||||
if (!p)
|
if (!p)
|
||||||
|
@ -1112,8 +1105,8 @@ _get_file_from_url(const char *url)
|
||||||
p += 3;
|
p += 3;
|
||||||
p = strstr(p, "/");
|
p = strstr(p, "/");
|
||||||
if (!p)
|
if (!p)
|
||||||
return NULL;
|
file = strdup("/");
|
||||||
|
else
|
||||||
file = strdup(p);
|
file = strdup(p);
|
||||||
|
|
||||||
return file;
|
return file;
|
||||||
|
@ -1307,6 +1300,7 @@ _cb_feed_parse(News_Feed_Document *doc, News_Parse_Error error, int changes)
|
||||||
doc->parse.last_time = ecore_time_get();
|
doc->parse.last_time = ecore_time_get();
|
||||||
|
|
||||||
//TODO with popups
|
//TODO with popups
|
||||||
|
doc->parse.error = error;
|
||||||
switch(error)
|
switch(error)
|
||||||
{
|
{
|
||||||
case NEWS_PARSE_ERROR_NO:
|
case NEWS_PARSE_ERROR_NO:
|
||||||
|
|
|
@ -282,6 +282,7 @@ struct _News_Feed_Document
|
||||||
News_Parse *parser;
|
News_Parse *parser;
|
||||||
int got_infos : 1;
|
int got_infos : 1;
|
||||||
time_t last_time;
|
time_t last_time;
|
||||||
|
News_Parse_Error error;
|
||||||
} parse;
|
} parse;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -207,7 +207,6 @@ static void
|
||||||
_cb_configure_main(void *data, E_Menu *m, E_Menu_Item *mi)
|
_cb_configure_main(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
{
|
{
|
||||||
if (!news) return;
|
if (!news) return;
|
||||||
if (news->config_dialog) return;
|
|
||||||
|
|
||||||
news_config_dialog_show();
|
news_config_dialog_show();
|
||||||
}
|
}
|
||||||
|
@ -216,7 +215,6 @@ static void
|
||||||
_cb_configure_feeds(void *data, E_Menu *m, E_Menu_Item *mi)
|
_cb_configure_feeds(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
{
|
{
|
||||||
if (!news) return;
|
if (!news) return;
|
||||||
if (news->config_dialog_feeds) return;
|
|
||||||
|
|
||||||
news_config_dialog_feeds_show();
|
news_config_dialog_feeds_show();
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,6 +284,7 @@ _parse_type(News_Feed_Document *doc)
|
||||||
{
|
{
|
||||||
doc->parse.type = NEWS_FEED_TYPE_ATOM;
|
doc->parse.type = NEWS_FEED_TYPE_ATOM;
|
||||||
doc->parse.version = 1.0;
|
doc->parse.version = 1.0;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
doc->parse.type = NEWS_FEED_TYPE_UNKNOWN;
|
doc->parse.type = NEWS_FEED_TYPE_UNKNOWN;
|
||||||
|
|
|
@ -42,6 +42,8 @@ _idler(void *data)
|
||||||
|
|
||||||
parser = data;
|
parser = data;
|
||||||
|
|
||||||
|
//DD(("%d", parser->oc.action));
|
||||||
|
|
||||||
switch(parser->oc.action)
|
switch(parser->oc.action)
|
||||||
{
|
{
|
||||||
case NEWS_PARSE_OC_DETECT_METAS:
|
case NEWS_PARSE_OC_DETECT_METAS:
|
||||||
|
@ -101,7 +103,7 @@ _idler(void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* error returned */
|
/* error returned */
|
||||||
if (err)
|
if (err) //FIXME: != NEWS_PARSE_ERROR_TYPE_NO
|
||||||
{
|
{
|
||||||
parser->error = err;
|
parser->error = err;
|
||||||
parser->oc.action = NEWS_PARSE_OC_END;
|
parser->oc.action = NEWS_PARSE_OC_END;
|
||||||
|
@ -142,7 +144,7 @@ _parse_detect_metas(News_Parse *parser)
|
||||||
{
|
{
|
||||||
News_Feed *feed;
|
News_Feed *feed;
|
||||||
News_Feed_Document *doc;
|
News_Feed_Document *doc;
|
||||||
int ver;
|
float ver;
|
||||||
|
|
||||||
doc = parser->doc;
|
doc = parser->doc;
|
||||||
feed = doc->feed;
|
feed = doc->feed;
|
||||||
|
@ -334,20 +336,18 @@ _parse_item_title(News_Parse *parser)
|
||||||
pos = parser->buffer_pos;
|
pos = parser->buffer_pos;
|
||||||
|
|
||||||
p1 = strstr(pos, "<title");
|
p1 = strstr(pos, "<title");
|
||||||
p2 = news_parse_meta_block_find(&p1);
|
if (p1 && (p1 < art->pos_end))
|
||||||
if (!p2) return NEWS_PARSE_ERROR_BROKEN_FEED;
|
|
||||||
|
|
||||||
if (p2 < art->pos_end)
|
|
||||||
{
|
{
|
||||||
|
p2 = news_parse_meta_block_find(&p1);
|
||||||
|
if (!p2 || (p2 > art->pos_end))
|
||||||
|
return NEWS_PARSE_ERROR_BROKEN_FEED;
|
||||||
len = p2 - p1;
|
len = p2 - p1;
|
||||||
art->title = E_NEW(char, len+1);
|
art->title = E_NEW(char, len+1);
|
||||||
memcpy(art->title, p1, len);
|
memcpy(art->title, p1, len);
|
||||||
art->title[len] = '\0';
|
art->title[len] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
art->title = strdup("No title");
|
art->title = strdup("No title");
|
||||||
}
|
|
||||||
|
|
||||||
return NEWS_PARSE_ERROR_NO;
|
return NEWS_PARSE_ERROR_NO;
|
||||||
}
|
}
|
||||||
|
@ -365,14 +365,15 @@ _parse_item_date(News_Parse *parser)
|
||||||
pos = parser->buffer_pos;
|
pos = parser->buffer_pos;
|
||||||
|
|
||||||
p1 = strstr(pos, parser->doc->parse.meta_date);
|
p1 = strstr(pos, parser->doc->parse.meta_date);
|
||||||
|
if (p1 && (p1 < art->pos_end))
|
||||||
|
{
|
||||||
p2 = news_parse_meta_block_find(&p1);
|
p2 = news_parse_meta_block_find(&p1);
|
||||||
if (!p2) return NEWS_PARSE_ERROR_BROKEN_FEED;
|
if (!p2 || p2 > art->pos_end)
|
||||||
if (p2 >= art->pos_end) return NEWS_PARSE_ERROR_BROKEN_FEED;
|
return NEWS_PARSE_ERROR_BROKEN_FEED;
|
||||||
|
|
||||||
len = p2 - p1;
|
len = p2 - p1;
|
||||||
date = p1;
|
date = p1;
|
||||||
tm = &art->date;
|
tm = &art->date;
|
||||||
DD(("DATE LEN %d", len));
|
|
||||||
|
|
||||||
if ((parser->doc->parse.version == 1.0) &&
|
if ((parser->doc->parse.version == 1.0) &&
|
||||||
(len >= 22))
|
(len >= 22))
|
||||||
|
@ -388,7 +389,6 @@ _parse_item_date(News_Parse *parser)
|
||||||
sscanf(date+17, "%2d", &tm->tm_sec);
|
sscanf(date+17, "%2d", &tm->tm_sec);
|
||||||
else
|
else
|
||||||
tm->tm_sec = 0;
|
tm->tm_sec = 0;
|
||||||
DD(("DATE seconds %d", tm->tm_sec));
|
|
||||||
}
|
}
|
||||||
else if (len >= 25)
|
else if (len >= 25)
|
||||||
{
|
{
|
||||||
|
@ -412,6 +412,7 @@ _parse_item_date(News_Parse *parser)
|
||||||
sscanf(date+20, "%2d", &tm->tm_min);
|
sscanf(date+20, "%2d", &tm->tm_min);
|
||||||
sscanf(date+23, "%2d", &tm->tm_sec);
|
sscanf(date+23, "%2d", &tm->tm_sec);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return NEWS_PARSE_ERROR_NO;
|
return NEWS_PARSE_ERROR_NO;
|
||||||
}
|
}
|
||||||
|
@ -436,20 +437,16 @@ _parse_item_link(News_Parse *parser)
|
||||||
pos = parser->buffer_pos;
|
pos = parser->buffer_pos;
|
||||||
|
|
||||||
p1 = strstr(pos, "<link");
|
p1 = strstr(pos, "<link");
|
||||||
p2 = news_parse_meta_block_find(&p1);
|
if (p1 && (p1 < art->pos_end))
|
||||||
if (!p2) return NEWS_PARSE_ERROR_BROKEN_FEED;
|
|
||||||
|
|
||||||
if (p2 < art->pos_end)
|
|
||||||
{
|
{
|
||||||
|
p2 = news_parse_meta_block_find(&p1);
|
||||||
|
if (!p2 || (p2 > art->pos_end))
|
||||||
|
return NEWS_PARSE_ERROR_BROKEN_FEED;
|
||||||
len = p2 - p1;
|
len = p2 - p1;
|
||||||
art->url = E_NEW(char, len+1);
|
art->url = E_NEW(char, len+1);
|
||||||
memcpy(art->url, p1, len);
|
memcpy(art->url, p1, len);
|
||||||
art->url[len] = '\0';
|
art->url[len] = '\0';
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
art->url = strdup("No link");
|
|
||||||
}
|
|
||||||
|
|
||||||
return NEWS_PARSE_ERROR_NO;
|
return NEWS_PARSE_ERROR_NO;
|
||||||
}
|
}
|
||||||
|
@ -466,20 +463,16 @@ _parse_item_description(News_Parse *parser)
|
||||||
pos = parser->buffer_pos;
|
pos = parser->buffer_pos;
|
||||||
|
|
||||||
p1 = strstr(pos, "<description");
|
p1 = strstr(pos, "<description");
|
||||||
p2 = news_parse_meta_block_find(&p1);
|
if (p1 && (p1 < art->pos_end))
|
||||||
if (!p2) return NEWS_PARSE_ERROR_BROKEN_FEED;
|
|
||||||
|
|
||||||
if (p2 < art->pos_end)
|
|
||||||
{
|
{
|
||||||
|
p2 = news_parse_meta_block_find(&p1);
|
||||||
|
if (!p2 || (p2 > art->pos_end))
|
||||||
|
return NEWS_PARSE_ERROR_BROKEN_FEED;
|
||||||
len = p2 - p1;
|
len = p2 - p1;
|
||||||
art->description = E_NEW(char, len+1);
|
art->description = E_NEW(char, len+1);
|
||||||
memcpy(art->description, p1, len);
|
memcpy(art->description, p1, len);
|
||||||
art->description[len] = '\0';
|
art->description[len] = '\0';
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
art->description = strdup("No content");
|
|
||||||
}
|
|
||||||
|
|
||||||
return NEWS_PARSE_ERROR_NO;
|
return NEWS_PARSE_ERROR_NO;
|
||||||
}
|
}
|
||||||
|
|
|
@ -591,15 +591,18 @@ _dialog_cb_article_selected(void *data)
|
||||||
DD(("TRIGGERED cb article ilist (%s)", art->title));
|
DD(("TRIGGERED cb article ilist (%s)", art->title));
|
||||||
nv->varticles.selected = art;
|
nv->varticles.selected = art;
|
||||||
|
|
||||||
|
if (art->date.tm_year != 0)
|
||||||
strftime(buf_date, sizeof(buf_date), "%Y-%m-%d %H:%M:%S", &art->date);
|
strftime(buf_date, sizeof(buf_date), "%Y-%m-%d %H:%M:%S", &art->date);
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
"<underline=on underline_color=%s>%s</><br>"
|
"<underline=on underline_color=%s>%s</><br>"
|
||||||
"%s<br><br>"
|
"%s<br><br>"
|
||||||
"%s<br><br>",
|
"%s<br><br>"
|
||||||
|
"%s",
|
||||||
news->config->viewer.vcontent.font_color,
|
news->config->viewer.vcontent.font_color,
|
||||||
(art->title && art->title[0]) ? art->title : "No title",
|
(art->title && art->title[0]) ? art->title : "No title",
|
||||||
buf_date,
|
buf_date,
|
||||||
(art->description && art->description[0])? art->description : "No description text");
|
(art->description && art->description[0])? art->description : "No description text",
|
||||||
|
(art->url) ? "||click here to open article in a browser||" : "");
|
||||||
_vcontent_text_set(nv, buf);
|
_vcontent_text_set(nv, buf);
|
||||||
|
|
||||||
if (art->unread)
|
if (art->unread)
|
||||||
|
@ -747,10 +750,11 @@ _varticles_refresh(News_Viewer *nv)
|
||||||
{
|
{
|
||||||
News_Feed_Article *art;
|
News_Feed_Article *art;
|
||||||
char label[4096];
|
char label[4096];
|
||||||
char buf_date[4096] = "-- --:--";
|
char buf_date[4096] = "";
|
||||||
|
|
||||||
art = l->data;
|
art = l->data;
|
||||||
/* append the article to the article ilist */
|
/* append the article to the article ilist */
|
||||||
|
if (art->date.tm_year)
|
||||||
strftime(buf_date, sizeof(buf_date), "%d %H:%M", &art->date);
|
strftime(buf_date, sizeof(buf_date), "%d %H:%M", &art->date);
|
||||||
snprintf(label, sizeof(label), "%s %s", buf_date, art->title);
|
snprintf(label, sizeof(label), "%s %s", buf_date, art->title);
|
||||||
e_widget_ilist_append(ilist,
|
e_widget_ilist_append(ilist,
|
||||||
|
@ -810,6 +814,7 @@ static void
|
||||||
_vcontent_feed_infos_set(News_Viewer *nv)
|
_vcontent_feed_infos_set(News_Viewer *nv)
|
||||||
{
|
{
|
||||||
News_Feed *f;
|
News_Feed *f;
|
||||||
|
char buf_error[1024] = "";
|
||||||
char buf_infos[1024] = "";
|
char buf_infos[1024] = "";
|
||||||
char buf_conn[200] = "";
|
char buf_conn[200] = "";
|
||||||
char buf_unread[1024] = "No unread articles";
|
char buf_unread[1024] = "No unread articles";
|
||||||
|
@ -821,6 +826,18 @@ _vcontent_feed_infos_set(News_Viewer *nv)
|
||||||
|
|
||||||
if (f->doc)
|
if (f->doc)
|
||||||
{
|
{
|
||||||
|
switch(f->doc->parse.error)
|
||||||
|
{
|
||||||
|
case NEWS_PARSE_ERROR_NO:
|
||||||
|
case NEWS_PARSE_ERROR_NOT_IMPLEMENTED:
|
||||||
|
break;
|
||||||
|
case NEWS_PARSE_ERROR_BROKEN_FEED:
|
||||||
|
case NEWS_PARSE_ERROR_TYPE_UNKNOWN:
|
||||||
|
snprintf(buf_error, sizeof(buf_error),
|
||||||
|
"<br><color=#ff0000>An error happend during the parse of this feed !<br>"
|
||||||
|
"You can report error at ooookiwi@gmail.com to get it fixed</><br><br>");
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (f->doc->parse.last_time)
|
if (f->doc->parse.last_time)
|
||||||
{
|
{
|
||||||
char buf_mtime[200];
|
char buf_mtime[200];
|
||||||
|
@ -831,7 +848,7 @@ _vcontent_feed_infos_set(News_Viewer *nv)
|
||||||
case NEWS_FEED_TYPE_RSS:
|
case NEWS_FEED_TYPE_RSS:
|
||||||
type = "RSS"; break;
|
type = "RSS"; break;
|
||||||
case NEWS_FEED_TYPE_ATOM:
|
case NEWS_FEED_TYPE_ATOM:
|
||||||
type = "ATOM"; break;
|
type = "ATOM <color=#ff0000>(not supported for now)</>"; break;
|
||||||
default:
|
default:
|
||||||
type = "UNKNOWN";
|
type = "UNKNOWN";
|
||||||
}
|
}
|
||||||
|
@ -865,12 +882,14 @@ _vcontent_feed_infos_set(News_Viewer *nv)
|
||||||
}
|
}
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
"<underline=on underline_color=%s>%s</> <i>in %s</i><br>"
|
"<underline=on underline_color=%s>%s</> <i>in %s</i><br>"
|
||||||
|
"%s"
|
||||||
"%s<br><br>"
|
"%s<br><br>"
|
||||||
"%s%s<br>"
|
"%s%s<br>"
|
||||||
"%s",
|
"%s",
|
||||||
news->config->viewer.vcontent.font_color,
|
news->config->viewer.vcontent.font_color,
|
||||||
f->name,
|
f->name,
|
||||||
f->category->name,
|
f->category->name,
|
||||||
|
buf_error,
|
||||||
(f->description && f->description[0]) ? f->description : "No description for this feed",
|
(f->description && f->description[0]) ? f->description : "No description for this feed",
|
||||||
buf_infos, buf_conn,
|
buf_infos, buf_conn,
|
||||||
buf_unread);
|
buf_unread);
|
||||||
|
@ -886,8 +905,6 @@ _vcontent_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
nv = data;
|
nv = data;
|
||||||
ev = event_info;
|
ev = event_info;
|
||||||
|
|
||||||
if (ev->flags == EVAS_BUTTON_DOUBLE_CLICK)
|
|
||||||
{
|
|
||||||
if (nv->varticles.selected)
|
if (nv->varticles.selected)
|
||||||
{
|
{
|
||||||
if (nv->varticles.selected->url)
|
if (nv->varticles.selected->url)
|
||||||
|
@ -898,8 +915,6 @@ _vcontent_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
if (nv->vfeeds.selected->url_home)
|
if (nv->vfeeds.selected->url_home)
|
||||||
news_util_browser_open(nv->vfeeds.selected->url_home);
|
news_util_browser_open(nv->vfeeds.selected->url_home);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
|
|
Loading…
Reference in New Issue